add script check_SAutF5.jl

This commit is contained in:
kalmarek 2019-07-10 23:51:27 +02:00
parent 54a545010f
commit d2cbe36293
No known key found for this signature in database
GPG Key ID: 8BF1A3855328FC15
1 changed files with 41 additions and 0 deletions

41
check_SAutF5.jl Normal file
View File

@ -0,0 +1,41 @@
using Pkg
Pkg.activate(".")
using Groups
using GroupRings
using PropertyT
using SparseArrays
using LinearAlgebra
using IntervalArithmetic
using JLD
@show Threads.nthreads()
BLAS.set_num_threads(Threads.nthreads());
G = SAut(FreeGroup(5))
pm = load("oSAutF5_r2/pm.jld", "pm");
RG = GroupRing(G, pm)
@info RG
S_size = 80
Δ_coeff = SparseVector(maximum(pm), collect(1:(1+S_size)), [S_size; -ones(S_size)])
Δ = GroupRingElem(Δ_coeff, RG);
Δ² = Δ^2;
@info "Loading solution"
λ₀ = load("oSAutF5_r2/1.3/lambda.jld", "λ")
P₀ = load("oSAutF5_r2/1.3/SDPmatrix.jld", "P");
@info "Taking square root of P"
@time Q = real(sqrt(P₀));
Q_aug, check_columns_augmentation = PropertyT.augIdproj(Interval, Q);
@show check_columns_augmentation
if !check_columns_augmentation
@warn "Columns of Q are not guaranteed to represent elements of the augmentation ideal!"
end
@info "Computing SOS decomposition"
@time sos = PropertyT.compute_SOS(RG, Q_aug);
residual = Δ² - @interval(λ₀)*Δ - sos;
@show norm(residual, 1)