1
0
mirror of https://github.com/kalmarek/PropertyT.jl.git synced 2024-11-30 01:55:28 +01:00
Commit Graph

522 Commits

Author SHA1 Message Date
81e08eb857 migrate to AbstractAlgebra 2018-07-31 10:21:54 +02:00
75c249abb8 remove iterator for FinField 2018-07-31 10:19:06 +02:00
d3a228cfa7 rework sparsify! Remove rank check which becomes very expensive
We check that the sizes of projection matrices add-up anyway
2018-07-31 10:18:03 +02:00
1ca77f1f19 add (RG::GroupRing)(::Vector, ::Type; alt=false)
this was previously defined in GroupRings
2018-07-31 09:49:55 +02:00
16dc0c7591 move OrbitSelector to orbit_selector outside of function
to avoid potential closure
2018-07-31 09:48:24 +02:00
f5afcf4dfb migrate Projections to AbstractAlgebra 2018-07-31 09:44:12 +02:00
5d6c4f8290 we work over PermutationGroup{Int8} 2018-04-10 12:21:08 +02:00
58fa849df0 fastm in rankOne_projections doesnt' change much in terms of speed 2018-04-09 12:56:20 +02:00
9d2140b5a8 fix nature of idempotents 2018-04-09 11:55:38 +02:00
a0cc9d62c9 fix: PermCharacter is in Projections, not in PropertyT 2018-04-09 11:14:39 +02:00
27569c11d8 export PermCharacter, DirectProdCharacter, rankOne_projection
from Projections module
2018-04-09 11:13:39 +02:00
44e3c9c0b9 add generator of characters for PermGroup, DirectProductGroup 2018-04-09 11:10:57 +02:00
11365bf5b2 big overhaul of rankOne_projections for WreathProduct Group 2018-04-09 11:07:12 +02:00
094abd74b8 simplify rankOne_projections for PermGroup 2018-04-08 22:50:31 +02:00
50588bc792 streamline logic in rankOne_projection from a character 2018-04-08 22:49:45 +02:00
5bed58de2c fix hacks around DirectProdCharacter
It should work over different groups as well
2018-04-08 22:48:42 +02:00
589e1882cd fix indentation 2018-04-08 22:46:28 +02:00
2d89c38657 separate Projections into a module 2018-04-08 22:45:18 +02:00
e5b4b9220b make orbit decomposition slightly faster by allocating orbit only once 2018-03-22 10:52:53 +01:00
db455df852 replace missing sett.warmstart by simple warm 2018-03-21 14:20:48 +01:00
94fa72ae80 update to parametrised perms in Nemo 2018-01-26 13:20:56 +01:00
550d69d78e no need to prefix 2018-01-25 21:39:06 +01:00
7a56aad3dc add warmstarting 2018-01-25 21:38:38 +01:00
cb3c6a0ef5 better printing of lambda 2018-01-04 20:13:41 +01:00
46ac64a207 use the same directory structure as the orbit version 2018-01-02 03:53:01 +01:00
dc91735bfc logtime of sdp solution; print the reresentation of SDP to log 2018-01-02 03:52:24 +01:00
6affa6876f sparsify prints only to stdout 2018-01-02 03:32:24 +01:00
f7534c2b97 logtime of lambdaandP; use LOGGER everywere 2018-01-02 03:32:04 +01:00
ac4ef92ef0 no need to pass both Group and S as arguments 2018-01-02 03:28:34 +01:00
f478081d4e reduce code duplication 2018-01-02 03:22:46 +01:00
955c8fc49e remove init_orbit_data 2018-01-02 03:19:57 +01:00
a87b587c1a add logger field to sett 2018-01-02 03:19:29 +01:00
35615c34cf logged and clean version of Laplacian 2018-01-02 03:02:22 +01:00
fd88de171b get rid of global loggers 2018-01-02 02:59:43 +01:00
7d22e8dce0 another rework of filenames 2018-01-02 02:58:43 +01:00
0d17e4b877 rework lambdaandP && solve_SDP 2018-01-02 02:52:45 +01:00
13f49027dd rename Delta -> Laplacian, splaplacian -> spLaplacian 2018-01-02 00:07:05 +01:00
b43482325d check_distance_to_cone returns single float 2018-01-02 00:02:00 +01:00
e5366b7305 decouple obtaining Delta from constraints 2018-01-02 00:01:24 +01:00
523003cc2a move fillfrominternal! to SDPs.jl 2018-01-01 23:59:31 +01:00
d5a4f4957a rework filename logic 2018-01-01 23:59:00 +01:00
f48e8ba8d7 return the global logger for now 2018-01-01 23:55:07 +01:00
7ac194f98a fix logtime macro 2018-01-01 23:54:36 +01:00
3066046fdb move checking logic to check_distance_to_cone function 2018-01-01 23:50:36 +01:00
b2f4360ef4 distence_to_cone(...) where {T<:...} does all the logging 2018-01-01 23:49:27 +01:00
5918e20569 replace distance_to_cone by distances_to_cone without logging 2018-01-01 23:48:17 +01:00
923d892da0 fix indentation, again 2018-01-01 23:45:49 +01:00
47f6d3637e fix indentation to 4 spaces 2018-01-01 14:06:33 +01:00
fc54803b58 fix Memento deprecations; make clear when logger is global 2018-01-01 13:13:44 +01:00
7054fcffe2 remove old loging 2017-12-02 23:21:00 +01:00
29f347a228 only check the solution when not warmstarting 2017-12-01 18:28:48 +01:00
5e4b2203c3 Nemo.perm is a function in julia v0.6.0 2017-12-01 18:26:55 +01:00
53d413633b add warmstart to Settings 2017-12-01 18:26:08 +01:00
c849ead0ac look for warmstart in the solutions dir 2017-12-01 17:27:18 +01:00
e94662e615 fill the JuMP model variables from its internal model 2017-12-01 17:06:20 +01:00
659e5e03a1 grab warmstart, P, lambda from the solved model 2017-12-01 17:05:35 +01:00
bbcaec5bae build JuMP.Model first 2017-12-01 17:04:53 +01:00
56adccdfd1 using MathProgBase 2017-12-01 17:03:24 +01:00
e53486f394 since we warmstart internal model, optimize! it
JuMP.solve discards the internal one
2017-12-01 17:02:45 +01:00
10808583e3 Merge remote-tracking branch 'origin/enh/warmstart' into enh/warmstart-0.6
# Conflicts:
#	src/OrbitDecomposition.jl
2017-12-01 14:21:10 +01:00
02cdee0708 remove old check for the existence of solver.log 2017-12-01 14:13:19 +01:00
da6a2df814 save primal, dual solutions and slack for future warmstart 2017-12-01 14:12:52 +01:00
7ee7a30829 fix rankOne_projections for the new type of GroupRingElem 2017-11-17 15:29:09 +01:00
bdadac33f4 import Generic.perm 2017-11-17 15:28:11 +01:00
0d20df8207 add dim function for Characters 2017-11-16 20:01:12 +01:00
498a6700ec Merge branch 'master' into enh/julia-v0.6 2017-11-15 20:28:57 +01:00
39bef16aa7 filter Upis and dims at LOADTIME for only those which are non-zeros 2017-11-13 10:58:22 +01:00
04a13616c6 Allow different AbstractMathProgSolvers in Settings 2017-11-13 10:57:02 +01:00
a35122f8bb cosmetic 2017-11-08 15:40:38 +01:00
38ae1e0656 remove minimalprojections in favour of rankOne_projections 2017-11-08 15:40:22 +01:00
e746aaeeff rankOne_projections MUST be computed over exact field (e.g. Rational{Int}) 2017-11-08 15:39:51 +01:00
d7652c4e02 make AbstractCharacter just an abstract type 2017-11-08 15:38:51 +01:00
6f0087b8c7 indentation 2017-11-08 11:10:30 +01:00
ea6a6722be init model on number and size of SD blocks, not on Uπs 2017-11-08 10:02:38 +01:00
bcbf8a03c8 store the dense Uπs, sparsify at read-time 2017-11-08 10:01:45 +01:00
fe1e9ee37c let sparsify actually return sparse matrix 2017-11-08 10:00:34 +01:00
2aa82db1ac specify exact types for OrbitData 2017-11-08 09:58:37 +01:00
c1dc3850dd rename AutS -> autS 2017-11-08 09:57:51 +01:00
4ba2f54bb4 improve slightly orthSVD 2017-11-08 09:50:58 +01:00
3c51a463dc rename variables 2017-11-08 09:38:56 +01:00
ff14b33199 AutS_mreps -> reps 2017-11-08 09:37:39 +01:00
95e19e6f9d replace stray constraints_from_pm() -> constraints() 2017-11-08 09:36:34 +01:00
80deaebb9f remove matrix_reprs - we create them through perm_reprs 2017-11-08 09:35:26 +01:00
72261afdeb use preps_reprs instead of matrix_reprs
and save them in preps.jld
2017-11-08 09:33:00 +01:00
2d02c98947 faster & simpler Cstar_repr 2017-11-08 09:29:12 +01:00
e636c97738 unified marix_reps and perm_reps 2017-11-08 09:28:04 +01:00
0c9fb40e65 constraints_from_pm -> constraints
returns a vector of constraints, i.e. vectors of Tuple{Int, Int}
2017-11-08 09:25:40 +01:00
31715701cc de-thread Projections
to avoid UndefRefError: access to undefined reference in
rankOne_projections(::WreathProduct)
2017-11-07 09:44:10 +01:00
12c5c47ca8 add Nemo.isone(::GroupElem) 2017-11-06 11:31:15 +01:00
84813fedc4 indentation 2017-11-05 20:55:53 +01:00
093cced764 Merge branch 'enh/logtime' 2017-11-05 20:55:05 +01:00
bc8c28170e missing @logtime in orbit-check_property_T 2017-11-05 20:54:33 +01:00
cda741cc0c Merge branch 'enh/check_solution' 2017-11-05 19:30:58 +01:00
36e5979774 @logtime Q = sqrtm(P) 2017-11-05 19:30:11 +01:00
f7f9ceef07 pass only the i-th column in @parallel mode
this cuts on memory per worker drastically
2017-11-05 19:28:51 +01:00
c3ea80e6a9 replace remaining @time with '@logtime logger' 2017-11-05 16:38:51 +01:00
c0dc6937a5 cut on allocations in compute_SOS 2017-11-03 16:54:41 +01:00
fba2464a80 Specify concrete Interval types in augIdproj 2017-11-03 16:42:53 +01:00
a000290074 remove rationalization functions 2017-11-03 16:41:12 +01:00
79d5c7f933 rename parameter S -> T 2017-11-02 13:48:20 +01:00
1c67cdbcea remove timed_msg 2017-11-02 13:45:27 +01:00
3eab5b721a replace @timed by @logtime 2017-11-02 13:45:12 +01:00
7fa49756ba @logtime macro and time_string function 2017-11-02 13:44:08 +01:00
5bb311141d splaplacian doesn't have Id argument 2017-10-27 18:36:59 +02:00
ca18f75efd clean the main check_property_T in both cases 2017-10-27 18:36:32 +02:00
f206a13980 update function names 2017-10-27 18:35:50 +02:00
098a7ce948 check_distance_to... -> distance_to_...
and a lot of old code removal
2017-10-27 18:34:07 +02:00
4ae2c617cb Higher level compute_SOS 2017-10-27 18:33:18 +02:00
96ce02852f replace rationalise&project with interval&project 2017-10-27 18:32:58 +02:00
0225f38066 just two simple distance_to_cone functions
for Numbers and for Intervals
2017-10-27 18:30:59 +02:00
8defd71b59 new low-level compute_SOS function 2017-10-27 18:29:19 +02:00
d8b2f0ab30 increase sigfigs to 12; remove explicit precision setting
(it's 53 anyway);
2017-10-27 18:25:13 +02:00
b96b39e910 Revert "make initial P nullable"
This reverts commit 32c020fd88.
2017-10-27 18:20:28 +02:00
01e6625571 Revert "Allow for AbstractMathProfSolver in Settings"
This reverts commit 6cbf5e6944.
2017-10-27 18:19:53 +02:00
94c9a75a21 we don't need to pass id element -- it could be derived from S 2017-10-27 18:18:34 +02:00
32c020fd88 make initial P nullable 2017-10-27 18:18:34 +02:00
46a9150266 solver is not defined here 2017-10-27 18:18:34 +02:00
6cbf5e6944 Allow for AbstractMathProfSolver in Settings 2017-10-27 18:18:34 +02:00
bc2a827342 use prepath(sett)/fullpath(sett) instead of sett.name 2017-10-09 19:49:49 +02:00
b3f1961fbf use prepath/fullpath(::Settings) in OrbitData
and in create_SDP_problem generation
2017-10-09 19:49:01 +02:00
36a1151a73 add functions to produce prepath, fullpath out of Settings 2017-10-09 19:45:28 +02:00
6070bbf709 rename name -> prefix in filenames functions 2017-10-09 19:44:54 +02:00
4c777073a7 Merge branch 'master' of https://git.wmi.amu.edu.pl/kalmar/PropertyT.jl 2017-10-09 18:08:57 +02:00
d7bc94b64c @parallel compute_SOS 2017-10-09 18:08:22 +02:00
344e11a974 overwrite Q to allow gc 2017-10-09 18:06:29 +02:00
0fabd21e53 much faster Cstar_repr 2017-10-03 14:46:05 +02:00
dbca3945a8 call flush_cstdio() AFTER redirect_stdout
to fix SCS log buffering issue
2017-09-19 17:38:16 +02:00
154a66939f call flush_cstdio() AFTER redirect_stdout
to fix SCS log buffering issue
2017-09-19 17:37:35 +02:00
4e3bcbba6e update to the new Nemo.Generic module 2017-09-15 18:19:20 +02:00
5ac2876e31 update to julia v0.6.0 2017-09-15 18:16:31 +02:00
0693455656 Merge branch 'master' of https://git.wmi.amu.edu.pl/kalmar/PropertyT.jl 2017-09-10 13:39:52 +02:00
b46ed5ae96 Revert "ccall((:printf, "libc"), ...) produces segfault for large examples??"
This reverts commit 69a3ab8d87.
This should be commented on machine-basis
2017-09-09 20:47:12 +02:00
d8f04957b6 replace isfile by exists
which returns true also for symlinks
2017-09-06 16:02:46 +02:00
a61cff986e verbose&check for possible rank reduction in Uπs 2017-08-27 21:25:12 +02:00
3b723e7f0e Add logging when verbose=true 2017-08-27 21:23:42 +02:00
6df4c790c0 Sparsification of a dense matrix is not required to be rank preserving
This can bite!
2017-08-27 21:23:14 +02:00
972697e2ba cosmetic 2017-08-27 20:24:18 +02:00
be1251f274 Merge branch 'enh/logging' 2017-08-27 19:57:16 +02:00
b781dae356 @logtime(logger, ex) macro 2017-08-27 19:56:35 +02:00
69a3ab8d87 ccall((:printf, "libc"), ...) produces segfault for large examples?? 2017-08-27 19:13:20 +02:00
f543d847ea Save memory: ΔandSDPconstraints takes a lot of it 2017-08-27 19:12:21 +02:00
830ef95181 Merge branch 'enh/aug_correction' 2017-08-27 19:11:11 +02:00
757f89e54b no need to limit precision in rationalise_and_project
since we project directly to intervals the computational load is negligible
2017-08-27 19:09:56 +02:00
2724612ea3 better logging in Orbit-wise.jl 2017-08-27 19:06:17 +02:00
0c40e16e9e fix double assignment of constraints 2017-08-27 19:01:32 +02:00
8a6707eddd rework addconstraints! with progress printing 2017-08-27 19:00:49 +02:00
db55927729 sparsify! in transform and in constrLHS 2017-08-27 18:59:16 +02:00
7dbd11bebf eps-sparsify for both sparse and dense matrices 2017-08-27 18:58:13 +02:00
151a6ff6da better density for dense matrices 2017-08-27 18:57:27 +02:00
7fd18e9e57 logging 2017-08-27 18:50:56 +02:00
56d944e8af correct columns of Q directly to intervals
hopefully containing 0
2017-08-27 18:46:31 +02:00
9840268250 use threaded version of matrix reps 2017-08-27 18:37:44 +02:00
f3d813cb67 reworked reconstruct_sol with axpy! 2017-08-27 18:37:09 +02:00
33dc278762 threaded matrix_reps and perm_reps 2017-08-27 18:35:35 +02:00
6061f731b3 threaded generation of matrix reps 2017-08-27 18:32:50 +02:00
0cc0ad94a6 threaded orbit_decomposition 2017-08-27 18:32:19 +02:00
9328fa9187 single-threaded compute_SOS with @parallel option 2017-08-27 18:30:49 +02:00
9a62cc2444 threaded minimalprojections 2017-08-27 18:29:38 +02:00
94074750cf limit the accuracy of rationalization to sensible value
to avoid running out of memory!
2017-08-04 21:27:10 +02:00
8f88035bb7 in-place projection to augmentation ideal 2017-08-04 20:50:06 +02:00
c4dcaf25fe @parallelising computation of SOS 2017-08-04 20:47:38 +02:00
7d42f28b29 put rationalization and projection to augmentation in a separate function
to have gc collect unused matrices of Rationals after this is finished
2017-08-04 20:36:25 +02:00
845d7733a4 indentation 2017-08-04 20:33:21 +02:00
9ed8679c95 simplify groupring_square 2017-08-04 20:33:02 +02:00
b97a0e30dd threaded matrix_reps 2017-08-04 18:25:10 +02:00
666fac1775 Threaded version of projection to the augmentation ideal 2017-08-04 15:30:12 +02:00
47a41ac9fe Threaded version of reconstruct_sol 2017-08-03 11:35:34 +02:00
a460b71db9 redirect stderr to full_log 2017-08-03 11:34:38 +02:00
a6eed4cd11 add @time to reconstruct_sol 2017-08-01 10:30:33 +02:00
1f508ea85c replace fixed rankOne_projections with automatically generated ones 2017-08-01 10:29:38 +02:00
c86f46666a Cstar_reprs are usually sparse 2017-07-31 12:13:45 +02:00
cda9538653 fix Cstar_repr: explicit Float64 conversion 2017-07-31 12:13:14 +02:00
15140d4e39 use sparsified U\pi's by default 2017-07-28 12:45:04 +02:00
f6674337ed sparsify only once during the reconstruction 2017-07-28 12:44:25 +02:00
706097931a fix: central_projection asks for AbstractCharacter 2017-07-28 12:25:14 +02:00
4bb52bd34b my Characters return Julia's Ints 2017-07-27 22:06:32 +02:00
93ba763402 Allow evaluation of Characters on GroupRingElems 2017-07-27 22:06:02 +02:00
536542c3a6 Introduce {Perm,DirectProd}Character <: AbstractCharacter <: Function 2017-07-27 22:05:15 +02:00
b89598c67c slight(?!) optimisation to Cstar_repr 2017-07-27 22:02:07 +02:00
0a3b5b227d accommodate latest changes in Nemo characters 2017-07-27 20:36:22 +02:00
9d3eec6812 fix: mixed-up projections 2017-07-27 20:35:39 +02:00
582b7bc3c7 avoid transposing Us for every constraint 2017-07-26 18:02:21 +02:00
5332d806cc Merge branch 'enh/sparsification' 2017-07-26 12:59:09 +02:00
335a2aa216 change rounding mode to :tight 2017-07-26 12:58:39 +02:00
66f860bac1 sparsify both on the forward and backward transform 2017-07-26 12:15:31 +02:00
3ff649683a FIXXX: clamp to 0 only those eps-close to 0, not < eps 2017-07-26 12:12:58 +02:00
33b45dd518 merge two sparsify functions 2017-07-26 10:29:11 +02:00
da32893d64 move setup-logging to the top of the file 2017-07-21 17:12:27 +02:00
a82eb13ef5 use views and broadcasting 2017-07-21 17:11:58 +02:00
95bc1eaff5 make EOI a one-liner 2017-07-21 17:11:25 +02:00
e74b4c49ef use the new definition of base-less mul! in GroupRings 2017-07-21 17:10:52 +02:00
b8a40c42c8 indentation 2017-07-17 15:40:54 +02:00
5d6074c368 rework ranOne_projections(::WreathProduct...) using emb functions
Still messy
2017-07-17 12:28:17 +02:00
6ecd63197b account for changes in order of characters 2017-07-17 12:27:28 +02:00
4e48917a38 characters of symmetric group are now implemented in Nemo 2017-07-17 12:26:10 +02:00
d7b7759e5d fix: delete superfluous parenthesis 2017-07-17 10:28:18 +02:00
d603bbd329 cut on allocating another GrupRingElement 2017-07-17 10:18:26 +02:00
143695ed24 Revert "parametrise central_projection by the type of character"
This reverts commit 820517a04e.
2017-07-17 10:12:09 +02:00
820517a04e parametrise central_projection by the type of character 2017-07-17 09:43:19 +02:00
05691b5202 Merge branch 'enh/S_5projections' of https://git.wmi.amu.edu.pl/kalmar/PropertyT.jl into enh/S_5projections 2017-07-17 09:41:05 +02:00