streamline filenames creation

This commit is contained in:
kalmarek 2019-11-05 11:15:52 +01:00
parent b4ae732f7c
commit 5fca3a96c6
No known key found for this signature in database
GPG Key ID: 8BF1A3855328FC15
1 changed files with 24 additions and 22 deletions

View File

@ -43,33 +43,35 @@ function Settings(name::String,
return Symmetrized(name, G, S, autS, halfradius, upper_bound, solver, force_compute) return Symmetrized(name, G, S, autS, halfradius, upper_bound, solver, force_compute)
end end
prefix(s::Naive) = s.name prefix(s::Naive) = ""
prefix(s::Symmetrized) = "o"*s.name prefix(s::Symmetrized) = "o"
suffix(s::Settings) = "$(s.upper_bound)" suffix(s::Settings) = "$(s.upper_bound)"
prepath(s::Settings) = prefix(s) prepath(s::Settings) = prefix(s)*s.name
fullpath(s::Settings) = joinpath(prefix(s), suffix(s)) fullpath(s::Settings) = joinpath(prepath(s), suffix(s))
filename(sett::Settings, s::Symbol; kwargs...) = filename(sett, Val{s}; kwargs...) filename(sett::Settings, s::Symbol; kwargs...) = filename(sett, Val{s}; kwargs...)
filename(sett::Settings, ::Type{Val{:fulllog}}) = filename(sett::Settings, ::Type{Val{:fulllog}}; kwargs...) =
joinpath(fullpath(sett), "full_$(string(now())).log") filename(fullpath(sett), "full", "log", suffix=Dates.now(); kwargs...)
filename(sett::Settings, ::Type{Val{:solverlog}}) = filename(sett::Settings, ::Type{Val{:solverlog}}; kwargs...) =
joinpath(fullpath(sett), "solver_$(string(now())).log") filename(fullpath(sett), "solver", "log", suffix=Dates.now(); kwargs...)
filename(sett::Settings, ::Type{Val{}}) = filename(sett::Settings, ::Type{Val{}}; kwargs...) =
joinpath(prepath(sett), "delta.jld") filename(prepath(sett), "delta", "jld"; kwargs...)
filename(sett::Settings, ::Type{Val{:OrbitData}}) = filename(sett::Settings, ::Type{Val{:OrbitData}}; kwargs...) =
joinpath(prepath(sett), "OrbitData.jld") filename(prepath(sett), "OrbitData", "jld"; kwargs...)
filename(sett::Settings, ::Type{Val{:solution}}) = filename(sett::Settings, ::Type{Val{:solution}}; kwargs...) =
joinpath(fullpath(sett), "solution.jld") filename(fullpath(sett), "solution", "jld"; kwargs...)
function filename(sett::Settings, ::Type{Val{:warmstart}}; date=false) function filename(sett::Settings, ::Type{Val{:warmstart}}; kwargs...)
if date filename(fullpath(sett), "warmstart", "jld"; kwargs...)
return joinpath(fullpath(sett), "warmstart_$(Dates.now()).jld") end
else
return joinpath(fullpath(sett), "warmstart.jld") function filename(path::String, name, extension; prefix=nothing, suffix=nothing)
end pre = isnothing(prefix) ? "" : "$(prefix)_"
suf = isnothing(suffix) ? "" : "_$(suffix)"
return joinpath(path, "$pre$name$suf.$extension")
end end
############################################################################### ###############################################################################
@ -115,7 +117,7 @@ function approximate_by_SOS(sett::Naive,
save(filename(sett, :warmstart), "warmstart", (ws.primal, ws.dual, ws.slack), "P", P, "λ", λ) save(filename(sett, :warmstart), "warmstart", (ws.primal, ws.dual, ws.slack), "P", P, "λ", λ)
end end
save(filename(sett, :warmstart, date=true), save(filename(sett, :warmstart, suffix=Dates.now()),
"warmstart", (ws.primal, ws.dual, ws.slack), "P", P, "λ", λ) "warmstart", (ws.primal, ws.dual, ws.slack), "P", P, "λ", λ)
return λ, P return λ, P
@ -161,7 +163,7 @@ function approximate_by_SOS(sett::Symmetrized,
save(filename(sett, :warmstart), "warmstart", (ws.primal, ws.dual, ws.slack), "Ps", Ps, "λ", λ) save(filename(sett, :warmstart), "warmstart", (ws.primal, ws.dual, ws.slack), "Ps", Ps, "λ", λ)
end end
save(filename(sett, :warmstart, date=true), save(filename(sett, :warmstart, suffix=Dates.now()),
"warmstart", (ws.primal, ws.dual, ws.slack), "Ps", Ps, "λ", λ) "warmstart", (ws.primal, ws.dual, ws.slack), "Ps", Ps, "λ", λ)
@info "Reconstructing P..." @info "Reconstructing P..."