From 7d22e8dce0730f62498b0abe988a035cfaa12d42 Mon Sep 17 00:00:00 2001 From: kalmarek Date: Tue, 2 Jan 2018 02:55:53 +0100 Subject: [PATCH] another rework of filenames --- src/Orbit-wise.jl | 12 ++++++------ src/OrbitDecomposition.jl | 6 +++--- src/PropertyT.jl | 27 +++++++++++++++++++-------- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/src/Orbit-wise.jl b/src/Orbit-wise.jl index 0975d02..f11c33b 100644 --- a/src/Orbit-wise.jl +++ b/src/Orbit-wise.jl @@ -32,23 +32,23 @@ immutable OrbitData{T<:AbstractArray{Float64, 2}, LapType <:AbstractVector{Float end function OrbitData(sett::Settings) - splap = load(joinpath(prepath(sett), "delta.jld"), "Δ"); - pm = load(joinpath(prepath(sett), "pm.jld"), "pm"); + splap = load(filename(prepath(sett), :Δ), "Δ"); + pm = load(filename(prepath(sett), :pm), "pm"); cnstr = PropertyT.constraints(pm); splap² = similar(splap) splap² = GroupRings.mul!(splap², splap, splap, pm); - Uπs = load(joinpath(prepath(sett), "U_pis.jld"), "Uπs") + Uπs = load(filename(prepath(sett), :Uπs), "Uπs") nzros = [i for i in 1:length(Uπs) if size(Uπs[i],2) !=0] Uπs = Uπs[nzros] Uπs = sparsify!.(Uπs, sett.tol, check=true, verbose=true) #dimensions of the corresponding πs: - dims = load(joinpath(prepath(sett), "U_pis.jld"), "dims")[nzros] + dims = load(filename(prepath(sett), :Uπs), "dims")[nzros] m, P = init_model(size(Uπs,1), [size(U,2) for U in Uπs]); - orbits = load(joinpath(prepath(sett), "orbits.jld"), "orbits"); + orbits = load(filename(prepath(sett), :orb), "orbits"); n = size(Uπs[1],1) orb_spcnstrm = [orbit_constraint(cnstr[collect(orb)], n) for orb in orbits] orb_splap = orbit_spvector(splap, orbits) @@ -206,7 +206,7 @@ function λandP(m::JuMP.Model, data::OrbitData, sett::Settings) info(LOGGER, "Reconstructing P...") - preps = load_preps(joinpath(prepath(sett), "preps.jld"), sett.autS) + preps = load_preps(filename(prepath(sett), :preps), sett.autS) @logtime LOGGER recP = reconstruct_sol(preps, data.Us, Ps, data.dims) diff --git a/src/OrbitDecomposition.jl b/src/OrbitDecomposition.jl index bfffef2..2ad2e96 100644 --- a/src/OrbitDecomposition.jl +++ b/src/OrbitDecomposition.jl @@ -184,8 +184,8 @@ function compute_orbit_data{T<:GroupElem}(logger, name::String, G::Nemo.Group, S RG = GroupRing(G, E_2R, E_rdict, pm) Δ = PropertyT.spLaplacian(RG, S) @assert GroupRings.augmentation(Δ) == 0 - save(joinpath(name, "delta.jld"), "Δ", Δ.coeffs) - save(joinpath(name, "pm.jld"), "pm", pm) + save(filename(name, :Δ), "Δ", Δ.coeffs) + save(filename(name, :pm), "pm", pm) info(logger, "Decomposing E into orbits of $(autS)") @logtime logger orbs = orbit_decomposition(autS, E_2R, E_rdict) @@ -195,7 +195,7 @@ function compute_orbit_data{T<:GroupElem}(logger, name::String, G::Nemo.Group, S info(logger, "Action matrices") @logtime logger reps = perm_reps(autS, E_2R[1:sizes[radius]], E_rdict) - save_preps(joinpath(name, "preps.jld"), reps) + save_preps(filename(name, :preps), reps) reps = matrix_reps(reps) info(logger, "Projections") diff --git a/src/PropertyT.jl b/src/PropertyT.jl index 46607bb..97dbf59 100644 --- a/src/PropertyT.jl +++ b/src/PropertyT.jl @@ -70,15 +70,26 @@ end exists(fname::String) = isfile(fname) || islink(fname) -function filename(prefix, s::Symbol) - isdir(prefix) || mkdir(prefix) - return filename(prefix, Val{s}) -end +filename(prefix, s::Symbol) = filename(prefix, Val{s}) -filename(prefix::String, ::Type{Val{:pm}}) = joinpath(prefix, "pm.jld") -filename(prefix::String, ::Type{Val{:Δ}}) = joinpath(prefix, "delta.jld") -filename(prefix::String, ::Type{Val{:λ}}) = joinpath(prefix, "lambda.jld") -filename(prefix::String, ::Type{Val{:P}}) = joinpath(prefix, "SDPmatrix.jld") +@eval begin + for (s,n) in [ + [:pm, "pm.jld"], + [:Δ, "delta.jld"], + [:λ, "lambda.jld"], + [:P, "SDPmatrix.jld"], + [:warm, "warmstart.jld"], + [:Uπs, "U_pis.jld"], + [:orb, "orbits.jld"], + [:preps,"preps.jld"], + + [:logall, "full_$(string(now())).log"], + [:logsolver,"solver_$(string(now())).log"] + ] + + filename(prefix::String, ::Type{Val{$:(s)}}) = joinpath(prefix, :($n)) + end +end function Laplacian(name::String, G::Group) info(LOGGER, "Loading precomputed Δ...")