1
0
mirror of https://github.com/kalmarek/PropertyT.jl.git synced 2024-11-27 01:10:28 +01:00

clean the main check_property_T in both cases

This commit is contained in:
kalmarek 2017-10-27 18:36:32 +02:00
parent f206a13980
commit ca18f75efd
2 changed files with 6 additions and 11 deletions

View File

@ -221,9 +221,7 @@ function check_property_T(sett::Settings)
init_orbit_data(logger, sett, radius=sett.radius) init_orbit_data(logger, sett, radius=sett.radius)
fnames = PropertyT.λSDPfilenames(fullpath(sett)) if all(isfile.(λSDPfilenames(fullpath(sett))))
if all(isfile.(fnames))
λ, P = PropertyT.λandP(fullpath(sett)) λ, P = PropertyT.λandP(fullpath(sett))
else else
info(logger, "Creating SDP problem...") info(logger, "Creating SDP problem...")
@ -239,9 +237,8 @@ function check_property_T(sett::Settings)
info(logger, "minimum(P) = $(minimum(P))") info(logger, "minimum(P) = $(minimum(P))")
if λ > 0 if λ > 0
pm_fname = joinpath(prepath(sett), "pm.jld") pm_fname, Δ_fname = pmΔfilenames(prepath(sett))
RG = GroupRing(sett.G, load(pm_fname, "pm")) RG = GroupRing(sett.G, load(pm_fname, "pm"))
Δ_fname = joinpath(prepath(sett), "delta.jld")
Δ = GroupRingElem(load(Δ_fname, "Δ")[:, 1], RG) Δ = GroupRingElem(load(Δ_fname, "Δ")[:, 1], RG)
isapprox(eigvals(P), abs.(eigvals(P)), atol=sett.tol) || isapprox(eigvals(P), abs.(eigvals(P)), atol=sett.tol) ||

View File

@ -182,15 +182,10 @@ function check_property_T(name::String, S, Id, solver, upper_bound, tol, radius)
info(logger, "|R[G]|.pm = $(size(parent(Δ).pm))") info(logger, "|R[G]|.pm = $(size(parent(Δ).pm))")
if all(exists.(λSDPfilenames(name))) if all(exists.(λSDPfilenames(name)))
# cached
λ, P = λandP(name) λ, P = λandP(name)
else else
# compute
info(logger, "Creating SDP problem...") info(logger, "Creating SDP problem...")
SDP_problem, λ, P = create_SDP_problem(Δ, sdp_constraints, upper_bound=upper_bound)
t = @timed SDP_problem, λ, P = create_SDP_problem(Δ, sdp_constraints, upper_bound=upper_bound)
info(logger, timed_msg(t))
JuMP.setsolver(SDP_problem, solver) JuMP.setsolver(SDP_problem, solver)
λ, P = λandP(name, SDP_problem, λ, P) λ, P = λandP(name, SDP_problem, λ, P)
@ -202,6 +197,9 @@ function check_property_T(name::String, S, Id, solver, upper_bound, tol, radius)
info(logger, "minimum(P) = $(minimum(P))") info(logger, "minimum(P) = $(minimum(P))")
if λ > 0 if λ > 0
pm_fname, Δ_fname = pmΔfilenames(name)
RG = GroupRing(parent(first(S)), load(pm_fname, "pm"))
Δ = GroupRingElem(load(Δ_fname, "Δ")[:, 1], RG)
isapprox(eigvals(P), abs(eigvals(P)), atol=tol) || isapprox(eigvals(P), abs(eigvals(P)), atol=tol) ||
warn("The solution matrix doesn't seem to be positive definite!") warn("The solution matrix doesn't seem to be positive definite!")