From 098a7ce948edf8a55aae7d7f2d2292301703815f Mon Sep 17 00:00:00 2001 From: kalmarek Date: Fri, 27 Oct 2017 18:34:07 +0200 Subject: [PATCH] check_distance_to... -> distance_to_... and a lot of old code removal --- src/CheckSolution.jl | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/src/CheckSolution.jl b/src/CheckSolution.jl index f4a975a..df0bb3f 100644 --- a/src/CheckSolution.jl +++ b/src/CheckSolution.jl @@ -106,13 +106,12 @@ function augIdproj{T}(Q::AbstractArray{T,2}, logger) return Q end -function check_distance_to_positive_cone(Δ::GroupRingElem, λ, Q, wlen; - tol=1e-14, rational=false) - +function distance_to_positive_cone(Δ::GroupRingElem, λ, Q, wlen::Int) info(logger, "------------------------------------------------------------") - info(logger, "") + info(logger, "λ = $λ") info(logger, "Checking in floating-point arithmetic...") - t = @timed fp_distance = distance_to_cone(λ, Q, Δ, wlen) + Δ²_λΔ = EOI(Δ, λ) + t = @timed fp_distance = λ - distance_to_cone(Δ²_λΔ, Q, wlen) info(logger, timed_msg(t)) info(logger, "Floating point distance (to positive cone) ≈ $(@sprintf("%.10f", fp_distance))") info(logger, "------------------------------------------------------------") @@ -122,26 +121,17 @@ function check_distance_to_positive_cone(Δ::GroupRingElem, λ, Q, wlen; end info(logger, "") - Q_ℚω_int = rationalize_and_project(Q, tol, logger) - λ_ℚ = ℚ(λ, tol) - Δ_ℚ = ℚ(Δ, tol) + Q = augIdproj(Q, logger) info(logger, "Checking in interval arithmetic") + λ = @interval(λ) + Δ = GroupRingElem([@interval(c) for c in Δ.coeffs], parent(Δ)) + Δ²_λΔ = EOI(Δ, λ) - t = @timed Interval_dist_to_ΣSq = distance_to_cone(λ_ℚ, Q_ℚω_int, Δ_ℚ, wlen) + t = @timed Interval_dist_to_ΣSq = λ - distance_to_cone(Δ²_λΔ, Q, wlen) info(logger, timed_msg(t)) info(logger, "The Augmentation-projected actual distance (to positive cone) ∈ $(Interval_dist_to_ΣSq)") info(logger, "------------------------------------------------------------") - if Interval_dist_to_ΣSq.lo ≤ 0 || !rational - return Interval_dist_to_ΣSq - else - info(logger, "Checking Projected SOS decomposition in exact rational arithmetic...") - t = @timed ℚ_dist_to_ΣSq = distance_to_cone(λ_ℚ, Q_ℚω, Δ_ℚ, wlen) - info(logger, timed_msg(t)) - @assert isa(ℚ_dist_to_ΣSq, Rational) - info(logger, "Augmentation-projected rational distance (to positive cone) ≥ $(Float64(trunc(ℚ_dist_to_ΣSq,8)))") - info(logger, "------------------------------------------------------------") - return ℚ_dist_to_ΣSq - end + return Interval_dist_to_ΣSq end