From b149b736d4e66896031b67db0182a06f1fa25de4 Mon Sep 17 00:00:00 2001 From: kalmarek Date: Sun, 6 May 2018 17:09:47 +0200 Subject: [PATCH] Julia 0.7 (#100) * is_apple, is_unix were moved to Sys; Base.Libdl was moved out of Base * Void -> Nothing, IntSet -> BitSet * broadcasting +,= where necessary * kwargs translate to NamedTuple Model.options has become an iterator over pairs: (:kwrd=>val) * fix deprecated constructors Array{T}(n), full(sparse) * Base.@gc_preserve -> GC.@preserve * importall is deprecated import explicitly every function extended in MPBWrapper.jl * dot is in LinearAlgebra; sparse in SparseArrays * using Test, SCS globally in runtests * Pkg is out of Base * Add missing using: LinearAlgebra, SparseArrays, MathProgBase * tidy test_problems * fix: syntax for NamedTuple in setwarmstart! * using Compat where necessary * add VERSION-dependent addoption!(::SCSMathProgModel, option, value) * add VERSION-dependent check for warmstarting * remove superfluous @compat --- deps/build.jl | 10 +- src/MOIWrapper.jl | 14 +- src/MPBWrapper.jl | 30 +- src/SCS.jl | 6 +- src/c_wrapper.jl | 22 +- src/types.jl | 9 +- test/MPBWrapper.jl | 4 +- test/direct.jl | 3 - test/indirect.jl | 3 - test/mpb_linear.jl | 4 +- test/options.jl | 9 +- test/runtests.jl | 3 +- test/test_problems.jl | 639 ++++++++++++++++++++++++++++++++++++++++-- 13 files changed, 683 insertions(+), 73 deletions(-) diff --git a/deps/build.jl b/deps/build.jl index dea90d47..a25edc5e 100644 --- a/deps/build.jl +++ b/deps/build.jl @@ -2,13 +2,17 @@ using BinDeps @BinDeps.setup -blasvendor = Base.BLAS.vendor() +using Compat.Libdl +using Compat.LinearAlgebra.BLAS +using Compat.Sys: isapple + +blasvendor = BLAS.vendor() direct = library_dependency("libscsdir", aliases=["libscsdir64"]) indirect = library_dependency("libscsindir", aliases=["libscsindir64"]) # TODO: Provide both libs in the "scs" Homebrew package. -# if is_apple() +# if Sys.isapple() # using Homebrew # provides(Homebrew.HB, "scs", [direct, indirect], os = :Darwin) # end @@ -35,7 +39,7 @@ prefix = joinpath(BinDeps.depsdir(direct), "usr") srcdir = joinpath(BinDeps.depsdir(direct), "src", "scs-$version/") ldflags = "" -if is_apple() +if isapple() ldflags = "$ldflags -undefined suppress -flat_namespace" end cflags = "-DCOPYAMATRIX -DDLONG -DUSE_LAPACK -DCTRLC=1" diff --git a/src/MOIWrapper.jl b/src/MOIWrapper.jl index f43bb547..67598ed0 100644 --- a/src/MOIWrapper.jl +++ b/src/MOIWrapper.jl @@ -60,7 +60,7 @@ end mutable struct SCSOptimizer <: MOI.AbstractOptimizer cone::ConeData maxsense::Bool - data::Union{Void, ModelData} # only non-Void between MOI.copy! and MOI.optimize! + data::Union{Nothing, ModelData} # only non-Void between MOI.copy! and MOI.optimize! sol::MOISolution function SCSOptimizer() new(ConeData(), false, nothing, MOISolution()) @@ -169,7 +169,7 @@ function _scalecoef(rows, coef, minus, ::Type{MOI.PositiveSemidefiniteConeTriang scaling = minus ? -1 : 1 scaling2 = rev ? scaling / √2 : scaling * √2 output = copy(coef) - diagidx = IntSet() + diagidx = BitSet() for i in 1:d push!(diagidx, trimap(i, i)) end @@ -232,11 +232,11 @@ function MOIU.loadconstraint!(optimizer::SCSOptimizer, ci, f::MOI.VectorAffineFu offset = constroffset(optimizer, ci) rows = constrrows(s) optimizer.cone.nrows[offset] = length(rows) - i = offset + rows + i = offset .+ rows # The SCS format is b - Ax ∈ cone # so minus=false for b and minus=true for A optimizer.data.b[i] = scalecoef(rows, orderval(f.constant, s), false, s) - append!(optimizer.data.I, offset + orderidx(I, s)) + append!(optimizer.data.I, offset .+ orderidx(I, s)) append!(optimizer.data.J, J) append!(optimizer.data.V, scalecoef(I, V, true, s)) end @@ -268,7 +268,7 @@ MOIU.canload(::SCSOptimizer, ::MOI.ObjectiveSense) = true function MOIU.load!(::SCSOptimizer, ::MOI.ObjectiveSense, ::MOI.OptimizationSense) end MOIU.canload(::SCSOptimizer, ::MOI.ObjectiveFunction{MOI.ScalarAffineFunction{Float64}}) = true function MOIU.load!(optimizer::SCSOptimizer, ::MOI.ObjectiveFunction, f::MOI.ScalarAffineFunction) - c0 = full(sparsevec(_varmap(f), f.coefficients, optimizer.data.n)) + c0 = Vector(sparsevec(_varmap(f), f.coefficients, optimizer.data.n)) optimizer.data.objconstant = f.constant optimizer.data.c = optimizer.maxsense ? -c0 : c0 end @@ -352,7 +352,7 @@ end function MOI.get(optimizer::SCSOptimizer, ::MOI.ConstraintPrimal, ci::CI{<:MOI.AbstractFunction, S}) where S <: MOI.AbstractSet offset = constroffset(optimizer, ci) rows = constrrows(optimizer, ci) - _unshift(optimizer, offset, unscalecoef(rows, reorderval(optimizer.sol.slack[offset + rows], S), S, length(rows)), S) + _unshift(optimizer, offset, unscalecoef(rows, reorderval(optimizer.sol.slack[offset .+ rows], S), S, length(rows)), S) end MOI.canget(optimizer::SCSOptimizer, ::MOI.DualStatus) = true @@ -372,7 +372,7 @@ end function MOI.get(optimizer::SCSOptimizer, ::MOI.ConstraintDual, ci::CI{<:MOI.AbstractFunction, S}) where S <: MOI.AbstractSet offset = constroffset(optimizer, ci) rows = constrrows(optimizer, ci) - unscalecoef(rows, reorderval(optimizer.sol.dual[offset + rows], S), S, length(rows)) + unscalecoef(rows, reorderval(optimizer.sol.dual[offset .+ rows], S), S, length(rows)) end MOI.canget(optimizer::SCSOptimizer, ::MOI.ResultCount) = true diff --git a/src/MPBWrapper.jl b/src/MPBWrapper.jl index 7b65c908..915991c9 100644 --- a/src/MPBWrapper.jl +++ b/src/MPBWrapper.jl @@ -6,7 +6,14 @@ # MathProgBase.jl interface for the SCS.jl solver wrapper ############################################################################# -importall MathProgBase.SolverInterface +using Compat.LinearAlgebra: dot +using MathProgBase.SolverInterface + +import MathProgBase.SolverInterface: ConicModel, LinearQuadraticModel, + getdual, getobjval, getsolution, getsolvetime, getvardual, loadproblem!, + numconstr, numvar, optimize!, setbvec!, setwarmstart!, status, + supportedcones + import Base.convert # TODO: don't add to Base.convert! @@ -145,14 +152,14 @@ function orderconesforscs(A_in, b_in, c_cones, v_cones) A_t = spzeros(n,0) b = zeros(0) row_map_ind = zeros(Int, length(b_in)) - row_map_type = Array{Symbol}(length(b_in)) + row_map_type = Array{Symbol}(undef, length(b_in)) col_map_ind = zeros(Int, n) - col_map_type = Array{Symbol}(n) + col_map_type = Array{Symbol}(undef, n) # First, count the total number of variables num_vars = 0 for (cone, idxs) in v_cones - col_map_type[idxs] = cone + col_map_type[idxs] .= cone num_vars += length(idxs) end @assert num_vars == n @@ -429,10 +436,23 @@ function getvardual(m::SCSMathProgModel) return dual end +if VERSION >= v"0.7-" + function addoption!(m::SCSMathProgModel, option::Symbol, value) + nt = NamedTuple{(option,), Tuple{typeof(value)}}((value,)) + m.options = pairs(merge(m.options.data, nt)) + return m + end +else + function addoption!(m::SCSMathProgModel, option::Symbol, value) + push!(m.options, (option, value)) + return m + end +end + # warmstart # kwargs can be `primal_sol`, `dual_sol`, and `slack` function setwarmstart!(m::SCSMathProgModel, primal_sol; kwargs...) - push!(m.options, (:warm_start, true)) + addoption!(m, :warm_start, true) m.primal_sol = primal_sol for (k,v) in kwargs setfield!(m, k, v) diff --git a/src/SCS.jl b/src/SCS.jl index 18c11958..e8958f9c 100644 --- a/src/SCS.jl +++ b/src/SCS.jl @@ -8,12 +8,14 @@ else error("SCS not properly installed. Please run Pkg.build(\"SCS\") and restart julia") end -import Base.Libdl: RTLD_LAZY, RTLD_DEEPBIND, RTLD_GLOBAL, dlopen +using Compat +using Compat.Libdl +using Compat.Sys: isunix function __init__() vnum = VersionNumber(SCS_version()) # default binaries need access to Julia's lapack symbols - if is_unix() + if isunix() dlopen(Base.liblapack_name, RTLD_LAZY|RTLD_DEEPBIND|RTLD_GLOBAL) end depsdir = realpath(joinpath(dirname(@__FILE__),"..","deps")) diff --git a/src/c_wrapper.jl b/src/c_wrapper.jl index 28d54ceb..5e667ce8 100644 --- a/src/c_wrapper.jl +++ b/src/c_wrapper.jl @@ -4,7 +4,7 @@ macro compat_gc_preserve(args...) vars = args[1:end-1] body = args[end] if VERSION > v"0.7.0-" - return esc(Expr(:macrocall, Expr(:., :Base, Base.Meta.quot(Symbol("@gc_preserve"))), __source__, args...)) + return esc(Expr(:macrocall, Expr(:., :GC, Base.Meta.quot(Symbol("@preserve"))), __source__, args...)) else return esc(body) end @@ -52,7 +52,13 @@ function SCS_solve(T::Union{Type{Direct}, Type{Indirect}}, cone = Ref(SCSCone(f, l, q, s, ep, ed, p)) info = Ref(SCSInfo()) - if (:warm_start, true) in options && length(primal_sol) == n && length(dual_sol) == m && length(slack) == m + if VERSION >= v"0.7-" + ws = (:warm_start=>true) in options + else + ws = (:warm_start, true) in options + end + + if ws && length(primal_sol) == n && length(dual_sol) == m && length(slack) == m x = primal_sol y = dual_sol s = slack @@ -82,7 +88,7 @@ for (T, lib) in zip([SCS.Direct, SCS.Indirect], [SCS.direct, SCS.indirect]) @eval begin function SCS_init(::Type{$T}, data::Ref{SCSData}, cone::Ref{SCSCone}, info::Ref{SCSInfo}) - p_work = ccall((:scs_init, $lib), Ptr{Void}, + p_work = ccall((:scs_init, $lib), Ptr{Nothing}, (Ptr{SCSData}, Ptr{SCSCone}, Ptr{SCSInfo}), data, cone, info) @@ -90,18 +96,18 @@ for (T, lib) in zip([SCS.Direct, SCS.Indirect], [SCS.direct, SCS.indirect]) end # solution struct is simple enough, we know it won't be modified by SCS so take by value - function SCS_solve(::Type{$T}, p_work::Ptr{Void}, data::Ref{SCSData}, cone::Ref{SCSCone}, solution::SCSSolution, info::Ref{SCSInfo}) + function SCS_solve(::Type{$T}, p_work::Ptr{Nothing}, data::Ref{SCSData}, cone::Ref{SCSCone}, solution::SCSSolution, info::Ref{SCSInfo}) status = ccall((:scs_solve, $lib), Int, - (Ptr{Void}, Ptr{SCSData}, Ptr{SCSCone}, Ref{SCSSolution}, Ptr{SCSInfo}), + (Ptr{Nothing}, Ptr{SCSData}, Ptr{SCSCone}, Ref{SCSSolution}, Ptr{SCSInfo}), p_work, data, cone, solution, info) return status end - function SCS_finish(::Type{$T}, p_work::Ptr{Void}) - ccall((:scs_finish, $lib), Void, - (Ptr{Void}, ), + function SCS_finish(::Type{$T}, p_work::Ptr{Nothing}) + ccall((:scs_finish, $lib), Nothing, + (Ptr{Nothing}, ), p_work) end end diff --git a/src/types.jl b/src/types.jl index ea9ccbc0..39a0305f 100644 --- a/src/types.jl +++ b/src/types.jl @@ -1,5 +1,6 @@ -export SCSMatrix, SCSData, SCSSettings, SCSSolution, SCSInfo, SCSCone, SCSVecOrMatOrSparse +using Compat.SparseArrays +export SCSMatrix, SCSData, SCSSettings, SCSSolution, SCSInfo, SCSCone, SCSVecOrMatOrSparse SCSVecOrMatOrSparse = Union{VecOrMat, SparseMatrixCSC{Float64,Int}} @@ -68,9 +69,9 @@ struct SCSData end struct SCSSolution - x::Ptr{Void} - y::Ptr{Void} - s::Ptr{Void} + x::Ptr{Nothing} + y::Ptr{Nothing} + s::Ptr{Nothing} end diff --git a/test/MPBWrapper.jl b/test/MPBWrapper.jl index ac9cca6e..f868431d 100644 --- a/test/MPBWrapper.jl +++ b/test/MPBWrapper.jl @@ -2,9 +2,9 @@ include("mpb_linear.jl") end -import SCS +using Compat.Pkg: dir @testset "MathProgBase" begin - include(joinpath(Pkg.dir("MathProgBase"),"test","conicinterface.jl")) + include(joinpath(dir("MathProgBase"),"test","conicinterface.jl")) coniclineartest(SCS.SCSSolver(), duals=true, tol=1e-2) conicSOCtest(SCS.SCSSolver(), duals=true, tol=1e-2) conicEXPtest(SCS.SCSSolver(), duals=true, tol=1e-2) diff --git a/test/direct.jl b/test/direct.jl index 3f077ccc..bcd45b2e 100644 --- a/test/direct.jl +++ b/test/direct.jl @@ -1,6 +1,3 @@ -using SCS -using Base.Test - # Solve a trivial problem A = reshape([1.0],(1,1)) solution = SCS_solve(SCS.Direct, 1, 1, A, [1.0], [1.0], 1, 0, Int[], Int[], 0, 0, Float64[]); diff --git a/test/indirect.jl b/test/indirect.jl index 437ad981..d635df06 100644 --- a/test/indirect.jl +++ b/test/indirect.jl @@ -1,6 +1,3 @@ -using SCS -using Base.Test - # Solve a trivial problem A = reshape([1.0],(1,1)) solution = SCS_solve(SCS.Indirect, 1, 1, A, [1.0], [1.0], 1, 0, Int[], Int[], 0, 0, Float64[]); diff --git a/test/mpb_linear.jl b/test/mpb_linear.jl index 3dcefb73..387934ed 100644 --- a/test/mpb_linear.jl +++ b/test/mpb_linear.jl @@ -7,9 +7,9 @@ # Test the MathProgBase.jl interface for the SCS.jl solver wrapper ############################################################################# -using Base.Test using MathProgBase -using SCS +using Compat.LinearAlgebra +using Compat.SparseArrays solver = SCSSolver() objtol = 1e-4 diff --git a/test/options.jl b/test/options.jl index 2e20f771..496c5011 100644 --- a/test/options.jl +++ b/test/options.jl @@ -7,10 +7,7 @@ # Tests the ability to pass options ############################################################################# -using Base.Test -using MathProgBase.SolverInterface -using SCS - +using MathProgBase # The normal test A = [1.0 1.0 0.0 0.0 0.0; @@ -33,8 +30,8 @@ MathProgBase.optimize!(m) @test isapprox(MathProgBase.getobjval(m), -99.0, atol=1e-5) # With a warmstart from the eps = 1e-8 solution, solution should be extremely accurate even after 1 iteration -push!(m.options, (:warm_start, true)) -push!(m.options, (:max_iters, 1)) +SCS.addoption!(m, :warm_start, true) +SCS.addoption!(m, :max_iters, 1) MathProgBase.optimize!(m) @test isapprox(MathProgBase.getobjval(m), -99.0, atol=1e-5) diff --git a/test/runtests.jl b/test/runtests.jl index b9566440..a5a70b34 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -1,4 +1,5 @@ -using Base.Test +using Compat.Test +using SCS tests = ["direct.jl", "indirect.jl", diff --git a/test/test_problems.jl b/test/test_problems.jl index 5c0779d1..0d5a71b5 100644 --- a/test/test_problems.jl +++ b/test/test_problems.jl @@ -1,4 +1,4 @@ -# TODO: the vectors should be reformated as [a,b,c] instead of [a b c]' +using Compat.SparseArrays # Random, feasible conic problem (no exponential or SDP cones) # Problem data taken from https://github.com/cvxgrp/scs/blob/master/examples/raw/demo_data @@ -13,14 +13,421 @@ function feasible_basic_conic(T) q = [12] s = Int[] - b = [1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 1.000000000000000000 0.500000000000000000 0.000000000000000000 0.000000000000000000 0.000000000000000000 0.000000000000000000 0.000000000000000000 0.000000000000000000 0.000000000000000000 0.000000000000000000 0.000000000000000000 0.000000000000000000 -0.500000000000000000]' - c = [-3.687045235791087894 -3.143065318037093103 2.289111017442006180 1.817854752120232842 1.515395029041534336 -0.621501577833336483 0.896216656096898490 -0.946791055758523736 1.016669273321816114 -0.487162812452204275 1.000000000000000000]' + b = [ + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, + 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.5, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -0.5] - colptr = vec([0 101 202 303 404 505 606 707 808 909 1010 1012]') - rowval = vec([0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 101 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 102 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 103 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 104 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 105 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 106 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 107 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 108 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 109 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 110 100 111]') - values = [0.267905121455780493 -0.267905121455780493 1.027917777157112633 -1.027917777157112633 -2.297179456574058865 2.297179456574058865 -0.236264446681208273 0.236264446681208273 -1.867877520107915412 1.867877520107915412 0.162954278135808150 -0.162954278135808150 0.235147192773076164 -0.235147192773076164 0.683684798830484719 -0.683684798830484719 0.392483177863985011 -0.392483177863985011 0.924930282229331158 -0.924930282229331158 -2.159603434889884266 2.159603434889884266 0.032954349530355143 -0.032954349530355143 -1.102218022704213984 1.102218022704213984 1.089305235192274290 -1.089305235192274290 -0.205884695396086725 0.205884695396086725 0.662421406463353013 -0.662421406463353013 0.693092774331567685 -0.693092774331567685 -0.477841384181042939 0.477841384181042939 1.491230998886413417 -1.491230998886413417 0.967521567131197524 -0.967521567131197524 2.911450906122811766 -2.911450906122811766 -0.458525517948777994 0.458525517948777994 1.523410490461409861 -1.523410490461409861 -0.005653356349895766 0.005653356349895766 -0.850527244660144954 0.850527244660144954 -0.914427729368161080 0.914427729368161080 -0.366414500628216067 0.366414500628216067 0.845776230367680237 -0.845776230367680237 -2.167303234827925085 2.167303234827925085 -0.311201875432801589 0.311201875432801589 -1.343057018434765437 1.343057018434765437 0.329227476201254532 -0.329227476201254532 0.937892636329581530 -0.937892636329581530 -1.292149283676578220 1.292149283676578220 0.727475864828183827 -0.727475864828183827 -0.865828722236433812 0.865828722236433812 -0.712336606310262854 0.712336606310262854 -1.416761181304521111 1.416761181304521111 0.065959446153038476 -0.065959446153038476 0.538493444004808364 -0.538493444004808364 -0.117595299877949297 0.117595299877949297 -0.280761797896251886 0.280761797896251886 -0.375803478543587532 0.375803478543587532 0.359440188545873895 -0.359440188545873895 0.102984464805364467 -0.102984464805364467 0.677264337807959915 -0.677264337807959915 1.688890914825171841 -1.688890914825171841 1.415133737581891982 -1.415133737581891982 -0.260722295562210549 0.260722295562210549 0.105168432618356816 -0.105168432618356816 -1.000000000000000000 1.889555946293464350 -1.889555946293464350 -0.360701715826208469 0.360701715826208469 -0.791169413590648185 0.791169413590648185 -0.750549444160155899 0.750549444160155899 -0.607358855980370871 0.607358855980370871 -0.277021092833852400 0.277021092833852400 -0.203825835441055647 0.203825835441055647 -0.090812111090438824 0.090812111090438824 0.840648343850716073 -0.840648343850716073 2.366017834555732335 -2.366017834555732335 0.311512251535443596 -0.311512251535443596 1.294136754697726044 -1.294136754697726044 1.721966354400402466 -1.721966354400402466 -0.394704235668438097 0.394704235668438097 -0.866913724584800427 0.866913724584800427 -0.521584096752930937 0.521584096752930937 -1.603058260481896147 1.603058260481896147 1.131290495226984216 -1.131290495226984216 -0.025983716418195180 0.025983716418195180 1.032351087100518372 -1.032351087100518372 -2.224637786217645186 2.224637786217645186 -0.162734496391128941 0.162734496391128941 0.273673555167950888 -0.273673555167950888 -2.459010134987294371 2.459010134987294371 -0.918195490875242326 0.918195490875242326 3.349596084069234259 -3.349596084069234259 0.687195476960778762 -0.687195476960778762 -1.052718851466527328 1.052718851466527328 0.050624437594229355 -0.050624437594229355 0.918266891203016855 -0.918266891203016855 -0.402689924407274802 0.402689924407274802 0.172930030148746722 -0.172930030148746722 -0.729742764543249600 0.729742764543249600 -1.328294149765913312 1.328294149765913312 0.074352549621726965 -0.074352549621726965 0.382668985189349498 -0.382668985189349498 1.390238993188259498 -1.390238993188259498 -0.729630799636320049 0.729630799636320049 -1.335330064808758044 1.335330064808758044 1.080203042138974112 -1.080203042138974112 0.614815150749306483 -0.614815150749306483 0.948846205447098190 -0.948846205447098190 0.537516306246460296 -0.537516306246460296 0.518670152004236606 -0.518670152004236606 0.322774153261093044 -0.322774153261093044 -0.078317251196179785 0.078317251196179785 -0.638547209457334453 0.638547209457334453 -0.310091732599216852 0.310091732599216852 -1.401041709751936981 1.401041709751936981 0.444484264649852523 -0.444484264649852523 -1.000000000000000000 -0.822571831606042192 0.822571831606042192 1.149442322385366033 -1.149442322385366033 0.691743212128930307 -0.691743212128930307 -0.724535264426504177 0.724535264426504177 -0.770046062316186330 0.770046062316186330 -1.007402320427817077 1.007402320427817077 -0.866896266710699970 0.866896266710699970 0.157127863727930334 -0.157127863727930334 -0.683933911229745561 0.683933911229745561 0.083157607370303074 -0.083157607370303074 -0.035297284818969786 0.035297284818969786 1.595145009715114970 -1.595145009715114970 0.406340236572520330 -0.406340236572520330 0.313725728340701338 -0.313725728340701338 1.802698956145747822 -1.802698956145747822 0.913926791275037065 -0.913926791275037065 -1.724161676159960077 1.724161676159960077 1.110418687944275673 -1.110418687944275673 0.461906200032139447 -0.461906200032139447 -1.098377187481418327 1.098377187481418327 0.561283369614635874 -0.561283369614635874 -1.440822605093403652 1.440822605093403652 0.982226376107772414 -0.982226376107772414 0.143410505344264055 -0.143410505344264055 0.190094441263810476 -0.190094441263810476 -0.674859862131981347 0.674859862131981347 0.361191784792336323 -0.361191784792336323 0.855409038211248252 -0.855409038211248252 0.247664495777954352 -0.247664495777954352 -2.624827919838180978 2.624827919838180978 -0.292697699274345136 0.292697699274345136 1.816454414571746945 -1.816454414571746945 -1.762366799993794864 1.762366799993794864 -0.242523030834476544 0.242523030834476544 -0.116759392895071146 0.116759392895071146 -1.459080445461180098 1.459080445461180098 0.418859403675993669 -0.418859403675993669 0.182519919352751275 -0.182519919352751275 0.317673288988851388 -0.317673288988851388 0.894501008979574186 -0.894501008979574186 0.240779273237376745 -0.240779273237376745 1.063124478382744265 -1.063124478382744265 -0.182203074499369566 0.182203074499369566 0.335540465956989664 -0.335540465956989664 0.679568586001081942 -0.679568586001081942 -0.630620458948692009 0.630620458948692009 -0.528865322760086354 0.528865322760086354 0.629959392835118481 -0.629959392835118481 -0.609885742617505167 0.609885742617505167 1.774739631265793260 -1.774739631265793260 -1.000000000000000000 0.506497876068581654 -0.506497876068581654 0.000326691662373364 -0.000326691662373364 1.543000152238471312 -1.543000152238471312 -0.187951520155494600 0.187951520155494600 -0.466908966395864100 0.466908966395864100 -2.168190935795662355 2.168190935795662355 0.568204320157958742 -0.568204320157958742 1.162818994214767310 -1.162818994214767310 0.219565016076267133 -0.219565016076267133 0.846238367236053057 -0.846238367236053057 0.444152474144777987 -0.444152474144777987 0.432732607599171037 -0.432732607599171037 1.350501505879705411 -1.350501505879705411 -0.796531305332793926 0.796531305332793926 -1.500064621977569068 1.500064621977569068 0.013262735417032061 -0.013262735417032061 -0.919545740399544842 0.919545740399544842 -0.720599621073430674 0.720599621073430674 0.169023573624101114 -0.169023573624101114 -0.415746346580660175 0.415746346580660175 1.447138808881193173 -1.447138808881193173 1.260731770052782030 -1.260731770052782030 -0.226090396655164727 0.226090396655164727 0.412205318621164107 -0.412205318621164107 0.147480060602125151 -0.147480060602125151 0.273383713767828274 -0.273383713767828274 -0.356808074324790336 0.356808074324790336 1.013981805928862112 -1.013981805928862112 0.269343540845133511 -0.269343540845133511 -0.131014546908719692 0.131014546908719692 1.346897709728866133 -1.346897709728866133 -1.077804826671031835 1.077804826671031835 -2.166977323932548494 2.166977323932548494 4.082665741988060759 -4.082665741988060759 -0.158050142170322011 0.158050142170322011 0.826308257196147311 -0.826308257196147311 1.364531401616584372 -1.364531401616584372 0.447820002980886034 -0.447820002980886034 -0.800383328883453427 0.800383328883453427 0.638742958438863195 -0.638742958438863195 1.284767930527563218 -1.284767930527563218 -1.777775442492336433 1.777775442492336433 -0.479920638682654332 0.479920638682654332 -0.000486121785261532 0.000486121785261532 0.915943372086077567 -0.915943372086077567 0.281169314576583562 -0.281169314576583562 -0.240045850376803122 0.240045850376803122 0.678876421485956394 -0.678876421485956394 -0.308976088076634348 0.308976088076634348 0.798465100342247380 -0.798465100342247380 -1.000000000000000000 1.087159846595101786 -1.087159846595101786 -2.099121773424734716 2.099121773424734716 0.955342180681646336 -0.955342180681646336 0.805784538992392330 -0.805784538992392330 0.372022079078506707 -0.372022079078506707 0.131125010573828527 -0.131125010573828527 -0.428233847101695153 0.428233847101695153 0.239263979475934280 -0.239263979475934280 0.495824604297952665 -0.495824604297952665 -1.974307955242914581 1.974307955242914581 1.603706793378771422 -1.603706793378771422 0.009079468662080679 -0.009079468662080679 -0.340801415852529821 0.340801415852529821 -0.040371866286134914 0.040371866286134914 1.252279885978765384 -1.252279885978765384 -0.480496637097164170 0.480496637097164170 0.025086653875817752 -0.025086653875817752 1.133441378387318510 -1.133441378387318510 1.685216101290169188 -1.685216101290169188 -0.377749910040516390 0.377749910040516390 -0.885742663004153163 0.885742663004153163 -0.763260238467797114 0.763260238467797114 -2.779910894557495293 2.779910894557495293 -0.639811141540734374 0.639811141540734374 0.187441762332883177 -0.187441762332883177 -0.284330518550652722 0.284330518550652722 -0.822012436267475666 0.822012436267475666 -1.334746162474092834 1.334746162474092834 -0.669135345166555928 0.669135345166555928 2.095458091555622460 -2.095458091555622460 -1.489693812460274769 1.489693812460274769 -1.445874828327142092 1.445874828327142092 0.885203250913691675 -0.885203250913691675 -0.130365900983153593 0.130365900983153593 -1.227811794109990418 1.227811794109990418 1.887461183070288540 -1.887461183070288540 -0.372231541771805063 0.372231541771805063 0.854005807614880763 -0.854005807614880763 0.233301251116458497 -0.233301251116458497 0.128510580408158021 -0.128510580408158021 0.317037146153163529 -0.317037146153163529 -0.072474722564739330 0.072474722564739330 -0.902410880592201314 0.902410880592201314 -0.135741998878747605 0.135741998878747605 -0.191584542689922477 0.191584542689922477 -0.691971672385520598 0.691971672385520598 -0.740985851503054516 0.740985851503054516 0.777878742705346071 -0.777878742705346071 2.316421323974115154 -2.316421323974115154 0.442592141778819392 -0.442592141778819392 -1.000000000000000000 0.057300638002260783 -0.057300638002260783 -0.765880201091782453 0.765880201091782453 0.018658948070564667 -0.018658948070564667 -0.884852857487954947 0.884852857487954947 -0.119099061784913321 0.119099061784913321 0.110823913892580964 -0.110823913892580964 -0.628128807378484644 0.628128807378484644 -0.958779880814327745 0.958779880814327745 0.335534085713524222 -0.335534085713524222 -1.589119342626025944 1.589119342626025944 -0.339290158527664643 0.339290158527664643 0.683350252109244716 -0.683350252109244716 -1.341947200350975145 1.341947200350975145 -1.094209818133984768 1.094209818133984768 -1.303705781186516477 1.303705781186516477 0.205495234849035424 -0.205495234849035424 2.150190108595682936 -2.150190108595682936 0.504922856191401204 -0.504922856191401204 0.202643337241746463 -0.202643337241746463 0.368081470693641333 -0.368081470693641333 0.559511763513307891 -0.559511763513307891 0.621090751359941073 -0.621090751359941073 -0.437128202629269713 0.437128202629269713 -0.320080245358165705 0.320080245358165705 0.676285408860144432 -0.676285408860144432 0.294205824825271300 -0.294205824825271300 1.086292218045164404 -1.086292218045164404 0.131665472918444160 -0.131665472918444160 0.913562447586867998 -0.913562447586867998 -0.441621943495057401 0.441621943495057401 0.175143091644549165 -0.175143091644549165 -0.057950142634599001 0.057950142634599001 1.272633458197298228 -1.272633458197298228 -0.739156567900068118 0.739156567900068118 -1.172962844785649050 1.172962844785649050 0.690349067302703512 -0.690349067302703512 1.261164997660849663 -1.261164997660849663 -0.578273293013085943 0.578273293013085943 0.705747556964109291 -0.705747556964109291 1.199347759194084206 -1.199347759194084206 -0.561175893138310178 0.561175893138310178 0.418058667159627584 -0.418058667159627584 0.775233786194539753 -0.775233786194539753 -1.005165576137645900 1.005165576137645900 -0.248095930746197624 0.248095930746197624 0.968389188406472812 -0.968389188406472812 0.052644854909029225 -0.052644854909029225 0.459974856433697621 -0.459974856433697621 -0.764234718892679465 0.764234718892679465 -0.924252504077109682 0.924252504077109682 -1.000000000000000000 -2.285037536291396609 2.285037536291396609 0.330256994776636892 -0.330256994776636892 0.781166851577503984 -0.781166851577503984 1.091855391225416527 -1.091855391225416527 0.303546598398528267 -0.303546598398528267 0.883205583346516998 -0.883205583346516998 -0.200432630370076942 0.200432630370076942 0.103227093467374034 -0.103227093467374034 -0.536598825966995818 0.536598825966995818 -0.114094330489527385 0.114094330489527385 0.352868274327804876 -0.352868274327804876 1.184201821029249313 -1.184201821029249313 -0.281707700532443983 0.281707700532443983 1.299996056001185840 -1.299996056001185840 1.288620739680663041 -1.288620739680663041 -0.124775257491364810 0.124775257491364810 2.676893190719289439 -2.676893190719289439 0.393601576244927809 -0.393601576244927809 -0.860157510975565920 0.860157510975565920 -0.162471839540177465 0.162471839540177465 0.870279361361823600 -0.870279361361823600 -0.150491539662725049 0.150491539662725049 -1.332287989766246072 1.332287989766246072 0.065469192080399141 -0.065469192080399141 -1.317974937874615282 1.317974937874615282 0.509029000143902399 -0.509029000143902399 0.368719922900173025 -0.368719922900173025 0.646131466361322016 -0.646131466361322016 -0.791339007906923575 0.791339007906923575 -0.438686479862148759 0.438686479862148759 1.538459427564934812 -1.538459427564934812 -0.258833298230582876 0.258833298230582876 -1.504378351654444890 1.504378351654444890 -1.036168922551806260 1.036168922551806260 -1.956795979420658416 1.956795979420658416 1.136562859433311701 -1.136562859433311701 -1.534637925681490822 1.534637925681490822 -0.794072741149785766 0.794072741149785766 1.371420904545398223 -1.371420904545398223 0.507731197862471229 -0.507731197862471229 -0.301106820285413468 0.301106820285413468 -1.017488307329072361 1.017488307329072361 -0.614101742707810261 0.614101742707810261 -0.781398901846928728 0.781398901846928728 0.053926155630600305 -0.053926155630600305 -0.528096222539175431 0.528096222539175431 1.913029349947439561 -1.913029349947439561 -0.179790546417506469 0.179790546417506469 -0.683750983213183505 0.683750983213183505 -1.021241699433223404 1.021241699433223404 -1.000000000000000000 -2.049890895857636064 2.049890895857636064 -1.417369090725334679 1.417369090725334679 -0.850006203774544056 0.850006203774544056 0.462163832152883536 -0.462163832152883536 -1.576268635512163341 1.576268635512163341 -1.441553193165409752 1.441553193165409752 0.528158464893624058 -0.528158464893624058 -0.356925550618781839 0.356925550618781839 1.025569158189527652 -1.025569158189527652 0.449741824505590193 -0.449741824505590193 0.832324652288013667 -0.832324652288013667 -1.071955389109310985 1.071955389109310985 -1.634162605612502706 1.634162605612502706 0.505770152619639646 -0.505770152619639646 -0.529050505036871677 0.529050505036871677 2.096511832225588901 -2.096511832225588901 0.761631727644857093 -0.761631727644857093 -1.192983489646781026 1.192983489646781026 2.417357758103033216 -2.417357758103033216 -0.054862528716085407 0.054862528716085407 -0.911480249686436483 0.911480249686436483 -0.754953036467722605 0.754953036467722605 -0.765582251486999321 0.765582251486999321 0.336077875984923224 -0.336077875984923224 0.627961935625664491 -0.627961935625664491 -0.048378255106885454 0.048378255106885454 0.324089280340306485 -0.324089280340306485 0.867067055827554611 -0.867067055827554611 0.482964936776505871 -0.482964936776505871 0.913512419073207127 -0.913512419073207127 -0.986143056174743848 0.986143056174743848 0.106234733647867743 -0.106234733647867743 0.600980235748239666 -0.600980235748239666 -0.586035595820676769 0.586035595820676769 -0.480578250645586014 0.480578250645586014 -1.153384062348248751 1.153384062348248751 -1.171239036967019365 1.171239036967019365 -0.322604826885027784 0.322604826885027784 0.136050508789379743 -0.136050508789379743 1.065246013053737562 -1.065246013053737562 -0.601401671319884090 0.601401671319884090 0.095447184573948712 -0.095447184573948712 2.265102206815573727 -2.265102206815573727 -0.205975175263903992 0.205975175263903992 0.427509540011176081 -0.427509540011176081 0.520441665490702587 -0.520441665490702587 -2.895556119432680209 2.895556119432680209 0.620757007249324810 -0.620757007249324810 -0.005251762123618039 0.005251762123618039 1.083172978556625754 -1.083172978556625754 -1.000000000000000000 0.365201243908861106 -0.365201243908861106 1.250190028804355702 -1.250190028804355702 0.224932134413901919 -0.224932134413901919 -0.902251105448115265 0.902251105448115265 -0.368544518082968842 0.368544518082968842 -0.234274596888654818 0.234274596888654818 -1.199930348307246541 1.199930348307246541 -1.573215897391668561 1.573215897391668561 1.509172423622493930 -1.509172423622493930 -0.092660720516525047 0.092660720516525047 0.436287483119169650 -0.436287483119169650 2.405987267352854619 -2.405987267352854619 0.831037192863362639 -0.831037192863362639 0.142705011000706122 -0.142705011000706122 1.491265436361660868 -1.491265436361660868 0.351484213706070359 -0.351484213706070359 -1.520421211131988359 1.520421211131988359 -0.990651120099914628 0.990651120099914628 0.755067493672610501 -0.755067493672610501 -0.475209396547241036 0.475209396547241036 -1.267282701791565547 1.267282701791565547 0.419704110261967744 -0.419704110261967744 -0.766570120470680960 0.766570120470680960 -1.021465600725925960 1.021465600725925960 -0.521511779651205876 0.521511779651205876 0.374754396256747835 -0.374754396256747835 0.785689533273488006 -0.785689533273488006 -0.158926489386465586 0.158926489386465586 1.132984272112302016 -1.132984272112302016 0.957264734680358442 -0.957264734680358442 -0.404576492822195655 0.404576492822195655 0.589263426043603378 -0.589263426043603378 -1.033631870548684217 1.033631870548684217 0.598534902235807076 -0.598534902235807076 0.919327935687768494 -0.919327935687768494 -0.224031230235764156 0.224031230235764156 -0.611669152956875184 0.611669152956875184 1.482839170994118660 -1.482839170994118660 -0.094214130236777896 0.094214130236777896 -0.902166146440054773 0.902166146440054773 -0.248954946055154891 0.248954946055154891 -3.062190912378776719 3.062190912378776719 -0.941533647749983493 0.941533647749983493 -2.160942710456435822 2.160942710456435822 0.108026826423921113 -0.108026826423921113 2.075626678312805673 -2.075626678312805673 0.873962816238563089 -0.873962816238563089 -0.408815616016248828 0.408815616016248828 -0.129621031340232146 0.129621031340232146 1.406273548026924392 -1.406273548026924392 -1.000000000000000000 -0.915804710938513011 0.915804710938513011 -1.221871953979475789 1.221871953979475789 -0.300753582392023655 0.300753582392023655 0.075403833175464410 -0.075403833175464410 0.131548564249591410 -0.131548564249591410 -0.071935913309509686 0.071935913309509686 0.767128678708612011 -0.767128678708612011 1.191450868677329078 -1.191450868677329078 -1.613612865536336205 1.613612865536336205 -0.441167481116289062 0.441167481116289062 3.280667499979234236 -3.280667499979234236 -1.201795592615207742 1.201795592615207742 2.951958398205375200 -2.951958398205375200 -1.276239289802024945 1.276239289802024945 -1.132028638493809636 1.132028638493809636 2.436513002643889259 -2.436513002643889259 0.068454839838739664 -0.068454839838739664 0.258744697658441825 -0.258744697658441825 0.912475983862615192 -0.912475983862615192 0.079789089547489894 -0.079789089547489894 -0.095257282931539802 0.095257282931539802 0.032098955389624276 -0.032098955389624276 -0.446625802398977478 0.446625802398977478 0.066898135600142933 -0.066898135600142933 0.187007172038859970 -0.187007172038859970 -0.111876955691751587 0.111876955691751587 -1.135249689741995027 1.135249689741995027 0.855383920893877270 -0.855383920893877270 -0.584066032000734703 0.584066032000734703 0.043977907469829255 -0.043977907469829255 -1.235073226970094584 1.235073226970094584 0.903396805744995368 -0.903396805744995368 -1.419367800674472990 1.419367800674472990 -0.669079320858145477 0.669079320858145477 1.846743883979396816 -1.846743883979396816 -0.197864347556086784 0.197864347556086784 0.178086679323349178 -0.178086679323349178 -0.726541129368893035 0.726541129368893035 0.102548417306546763 -0.102548417306546763 0.101435234812034022 -0.101435234812034022 -0.607294919138270162 0.607294919138270162 -0.232543338993652815 0.232543338993652815 1.024873011278554902 -1.024873011278554902 -0.367070741104161269 0.367070741104161269 0.015584587754633259 -0.015584587754633259 0.893352765523915404 -0.893352765523915404 -0.318598602767036110 0.318598602767036110 -0.565309322249061386 0.565309322249061386 -0.869520326873197580 0.869520326873197580 1.087601931698385149 -1.087601931698385149 -1.000000000000000000 -1.000000000000000000 -1.000000000000000000] + c = [ + -3.687045235791087894, -3.143065318037093103, 2.289111017442006180, + 1.817854752120232842, 1.515395029041534336, -0.621501577833336483, + 0.896216656096898490, -0.946791055758523736, 1.016669273321816114, + -0.487162812452204275, 1.000000000000000000] - A = SparseMatrixCSC(m, n, colptr + 1, rowval + 1, vec(values)) + colptr = [0, 101, 202, 303, 404, 505, 606, 707, 808, 909, 1010, 1012] + + rowval = [ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 101, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 0, 1, 2, 3, 4, 5, 6, 7, 8, + 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, + 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, + 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 103, 0, 1, 2, + 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, + 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, + 98, 99, 104, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, + 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 105, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, + 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, + 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 106, 0, 1, 2, 3, + 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, + 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, + 99, 107, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, + 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 108, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, + 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 109, 0, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, + 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, + 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + 110, 100, 111] + + values = [ + 0.267905121455780493, -0.267905121455780493, 1.027917777157112633, + -1.027917777157112633, -2.297179456574058865, 2.297179456574058865, + -0.236264446681208273, 0.236264446681208273, -1.867877520107915412, + 1.867877520107915412, 0.162954278135808150, -0.162954278135808150, + 0.235147192773076164, -0.235147192773076164, 0.683684798830484719, + -0.683684798830484719, 0.392483177863985011, -0.392483177863985011, + 0.924930282229331158, -0.924930282229331158, -2.159603434889884266, + 2.159603434889884266, 0.032954349530355143, -0.032954349530355143, + -1.102218022704213984, 1.102218022704213984, 1.089305235192274290, + -1.089305235192274290, -0.205884695396086725, 0.205884695396086725, + 0.662421406463353013, -0.662421406463353013, 0.693092774331567685, + -0.693092774331567685, -0.477841384181042939, 0.477841384181042939, + 1.491230998886413417, -1.491230998886413417, 0.967521567131197524, + -0.967521567131197524, 2.911450906122811766, -2.911450906122811766, + -0.458525517948777994, 0.458525517948777994, 1.523410490461409861, + -1.523410490461409861, -0.005653356349895766, 0.005653356349895766, + -0.850527244660144954, 0.850527244660144954, -0.914427729368161080, + 0.914427729368161080, -0.366414500628216067, 0.366414500628216067, + 0.845776230367680237, -0.845776230367680237, -2.167303234827925085, + 2.167303234827925085, -0.311201875432801589, 0.311201875432801589, + -1.343057018434765437, 1.343057018434765437, 0.329227476201254532, + -0.329227476201254532, 0.937892636329581530, -0.937892636329581530, + -1.292149283676578220, 1.292149283676578220, 0.727475864828183827, + -0.727475864828183827, -0.865828722236433812, 0.865828722236433812, + -0.712336606310262854, 0.712336606310262854, -1.416761181304521111, + 1.416761181304521111, 0.065959446153038476, -0.065959446153038476, + 0.538493444004808364, -0.538493444004808364, -0.117595299877949297, + 0.117595299877949297, -0.280761797896251886, 0.280761797896251886, + -0.375803478543587532, 0.375803478543587532, 0.359440188545873895, + -0.359440188545873895, 0.102984464805364467, -0.102984464805364467, + 0.677264337807959915, -0.677264337807959915, 1.688890914825171841, + -1.688890914825171841, 1.415133737581891982, -1.415133737581891982, + -0.260722295562210549, 0.260722295562210549, 0.105168432618356816, + -0.105168432618356816, -1.000000000000000000, 1.889555946293464350, + -1.889555946293464350, -0.360701715826208469, 0.360701715826208469, + -0.791169413590648185, 0.791169413590648185, -0.750549444160155899, + 0.750549444160155899, -0.607358855980370871, 0.607358855980370871, + -0.277021092833852400, 0.277021092833852400, -0.203825835441055647, + 0.203825835441055647, -0.090812111090438824, 0.090812111090438824, + 0.840648343850716073, -0.840648343850716073, 2.366017834555732335, + -2.366017834555732335, 0.311512251535443596, -0.311512251535443596, + 1.294136754697726044, -1.294136754697726044, 1.721966354400402466, + -1.721966354400402466, -0.394704235668438097, 0.394704235668438097, + -0.866913724584800427, 0.866913724584800427, -0.521584096752930937, + 0.521584096752930937, -1.603058260481896147, 1.603058260481896147, + 1.131290495226984216, -1.131290495226984216, -0.025983716418195180, + 0.025983716418195180, 1.032351087100518372, -1.032351087100518372, + -2.224637786217645186, 2.224637786217645186, -0.162734496391128941, + 0.162734496391128941, 0.273673555167950888, -0.273673555167950888, + -2.459010134987294371, 2.459010134987294371, -0.918195490875242326, + 0.918195490875242326, 3.349596084069234259, -3.349596084069234259, + 0.687195476960778762, -0.687195476960778762, -1.052718851466527328, + 1.052718851466527328, 0.050624437594229355, -0.050624437594229355, + 0.918266891203016855, -0.918266891203016855, -0.402689924407274802, + 0.402689924407274802, 0.172930030148746722, -0.172930030148746722, + -0.729742764543249600, 0.729742764543249600, -1.328294149765913312, + 1.328294149765913312, 0.074352549621726965, -0.074352549621726965, + 0.382668985189349498, -0.382668985189349498, 1.390238993188259498, + -1.390238993188259498, -0.729630799636320049, 0.729630799636320049, + -1.335330064808758044, 1.335330064808758044, 1.080203042138974112, + -1.080203042138974112, 0.614815150749306483, -0.614815150749306483, + 0.948846205447098190, -0.948846205447098190, 0.537516306246460296, + -0.537516306246460296, 0.518670152004236606, -0.518670152004236606, + 0.322774153261093044, -0.322774153261093044, -0.078317251196179785, + 0.078317251196179785, -0.638547209457334453, 0.638547209457334453, + -0.310091732599216852, 0.310091732599216852, -1.401041709751936981, + 1.401041709751936981, 0.444484264649852523, -0.444484264649852523, + -1.000000000000000000, -0.822571831606042192, 0.822571831606042192, + 1.149442322385366033, -1.149442322385366033, 0.691743212128930307, + -0.691743212128930307, -0.724535264426504177, 0.724535264426504177, + -0.770046062316186330, 0.770046062316186330, -1.007402320427817077, + 1.007402320427817077, -0.866896266710699970, 0.866896266710699970, + 0.157127863727930334, -0.157127863727930334, -0.683933911229745561, + 0.683933911229745561, 0.083157607370303074, -0.083157607370303074, + -0.035297284818969786, 0.035297284818969786, 1.595145009715114970, + -1.595145009715114970, 0.406340236572520330, -0.406340236572520330, + 0.313725728340701338, -0.313725728340701338, 1.802698956145747822, + -1.802698956145747822, 0.913926791275037065, -0.913926791275037065, + -1.724161676159960077, 1.724161676159960077, 1.110418687944275673, + -1.110418687944275673, 0.461906200032139447, -0.461906200032139447, + -1.098377187481418327, 1.098377187481418327, 0.561283369614635874, + -0.561283369614635874, -1.440822605093403652, 1.440822605093403652, + 0.982226376107772414, -0.982226376107772414, 0.143410505344264055, + -0.143410505344264055, 0.190094441263810476, -0.190094441263810476, + -0.674859862131981347, 0.674859862131981347, 0.361191784792336323, + -0.361191784792336323, 0.855409038211248252, -0.855409038211248252, + 0.247664495777954352, -0.247664495777954352, -2.624827919838180978, + 2.624827919838180978, -0.292697699274345136, 0.292697699274345136, + 1.816454414571746945, -1.816454414571746945, -1.762366799993794864, + 1.762366799993794864, -0.242523030834476544, 0.242523030834476544, + -0.116759392895071146, 0.116759392895071146, -1.459080445461180098, + 1.459080445461180098, 0.418859403675993669, -0.418859403675993669, + 0.182519919352751275, -0.182519919352751275, 0.317673288988851388, + -0.317673288988851388, 0.894501008979574186, -0.894501008979574186, + 0.240779273237376745, -0.240779273237376745, 1.063124478382744265, + -1.063124478382744265, -0.182203074499369566, 0.182203074499369566, + 0.335540465956989664, -0.335540465956989664, 0.679568586001081942, + -0.679568586001081942, -0.630620458948692009, 0.630620458948692009, + -0.528865322760086354, 0.528865322760086354, 0.629959392835118481, + -0.629959392835118481, -0.609885742617505167, 0.609885742617505167, + 1.774739631265793260, -1.774739631265793260, -1.000000000000000000, + 0.506497876068581654, -0.506497876068581654, 0.000326691662373364, + -0.000326691662373364, 1.543000152238471312, -1.543000152238471312, + -0.187951520155494600, 0.187951520155494600, -0.466908966395864100, + 0.466908966395864100, -2.168190935795662355, 2.168190935795662355, + 0.568204320157958742, -0.568204320157958742, 1.162818994214767310, + -1.162818994214767310, 0.219565016076267133, -0.219565016076267133, + 0.846238367236053057, -0.846238367236053057, 0.444152474144777987, + -0.444152474144777987, 0.432732607599171037, -0.432732607599171037, + 1.350501505879705411, -1.350501505879705411, -0.796531305332793926, + 0.796531305332793926, -1.500064621977569068, 1.500064621977569068, + 0.013262735417032061, -0.013262735417032061, -0.919545740399544842, + 0.919545740399544842, -0.720599621073430674, 0.720599621073430674, + 0.169023573624101114, -0.169023573624101114, -0.415746346580660175, + 0.415746346580660175, 1.447138808881193173, -1.447138808881193173, + 1.260731770052782030, -1.260731770052782030, -0.226090396655164727, + 0.226090396655164727, 0.412205318621164107, -0.412205318621164107, + 0.147480060602125151, -0.147480060602125151, 0.273383713767828274, + -0.273383713767828274, -0.356808074324790336, 0.356808074324790336, + 1.013981805928862112, -1.013981805928862112, 0.269343540845133511, + -0.269343540845133511, -0.131014546908719692, 0.131014546908719692, + 1.346897709728866133, -1.346897709728866133, -1.077804826671031835, + 1.077804826671031835, -2.166977323932548494, 2.166977323932548494, + 4.082665741988060759, -4.082665741988060759, -0.158050142170322011, + 0.158050142170322011, 0.826308257196147311, -0.826308257196147311, + 1.364531401616584372, -1.364531401616584372, 0.447820002980886034, + -0.447820002980886034, -0.800383328883453427, 0.800383328883453427, + 0.638742958438863195, -0.638742958438863195, 1.284767930527563218, + -1.284767930527563218, -1.777775442492336433, 1.777775442492336433, + -0.479920638682654332, 0.479920638682654332, -0.000486121785261532, + 0.000486121785261532, 0.915943372086077567, -0.915943372086077567, + 0.281169314576583562, -0.281169314576583562, -0.240045850376803122, + 0.240045850376803122, 0.678876421485956394, -0.678876421485956394, + -0.308976088076634348, 0.308976088076634348, 0.798465100342247380, + -0.798465100342247380, -1.000000000000000000, 1.087159846595101786, + -1.087159846595101786, -2.099121773424734716, 2.099121773424734716, + 0.955342180681646336, -0.955342180681646336, 0.805784538992392330, + -0.805784538992392330, 0.372022079078506707, -0.372022079078506707, + 0.131125010573828527, -0.131125010573828527, -0.428233847101695153, + 0.428233847101695153, 0.239263979475934280, -0.239263979475934280, + 0.495824604297952665, -0.495824604297952665, -1.974307955242914581, + 1.974307955242914581, 1.603706793378771422, -1.603706793378771422, + 0.009079468662080679, -0.009079468662080679, -0.340801415852529821, + 0.340801415852529821, -0.040371866286134914, 0.040371866286134914, + 1.252279885978765384, -1.252279885978765384, -0.480496637097164170, + 0.480496637097164170, 0.025086653875817752, -0.025086653875817752, + 1.133441378387318510, -1.133441378387318510, 1.685216101290169188, + -1.685216101290169188, -0.377749910040516390, 0.377749910040516390, + -0.885742663004153163, 0.885742663004153163, -0.763260238467797114, + 0.763260238467797114, -2.779910894557495293, 2.779910894557495293, + -0.639811141540734374, 0.639811141540734374, 0.187441762332883177, + -0.187441762332883177, -0.284330518550652722, 0.284330518550652722, + -0.822012436267475666, 0.822012436267475666, -1.334746162474092834, + 1.334746162474092834, -0.669135345166555928, 0.669135345166555928, + 2.095458091555622460, -2.095458091555622460, -1.489693812460274769, + 1.489693812460274769, -1.445874828327142092, 1.445874828327142092, + 0.885203250913691675, -0.885203250913691675, -0.130365900983153593, + 0.130365900983153593, -1.227811794109990418, 1.227811794109990418, + 1.887461183070288540, -1.887461183070288540, -0.372231541771805063, + 0.372231541771805063, 0.854005807614880763, -0.854005807614880763, + 0.233301251116458497, -0.233301251116458497, 0.128510580408158021, + -0.128510580408158021, 0.317037146153163529, -0.317037146153163529, + -0.072474722564739330, 0.072474722564739330, -0.902410880592201314, + 0.902410880592201314, -0.135741998878747605, 0.135741998878747605, + -0.191584542689922477, 0.191584542689922477, -0.691971672385520598, + 0.691971672385520598, -0.740985851503054516, 0.740985851503054516, + 0.777878742705346071, -0.777878742705346071, 2.316421323974115154, + -2.316421323974115154, 0.442592141778819392, -0.442592141778819392, + -1.000000000000000000, 0.057300638002260783, -0.057300638002260783, + -0.765880201091782453, 0.765880201091782453, 0.018658948070564667, + -0.018658948070564667, -0.884852857487954947, 0.884852857487954947, + -0.119099061784913321, 0.119099061784913321, 0.110823913892580964, + -0.110823913892580964, -0.628128807378484644, 0.628128807378484644, + -0.958779880814327745, 0.958779880814327745, 0.335534085713524222, + -0.335534085713524222, -1.589119342626025944, 1.589119342626025944, + -0.339290158527664643, 0.339290158527664643, 0.683350252109244716, + -0.683350252109244716, -1.341947200350975145, 1.341947200350975145, + -1.094209818133984768, 1.094209818133984768, -1.303705781186516477, + 1.303705781186516477, 0.205495234849035424, -0.205495234849035424, + 2.150190108595682936, -2.150190108595682936, 0.504922856191401204, + -0.504922856191401204, 0.202643337241746463, -0.202643337241746463, + 0.368081470693641333, -0.368081470693641333, 0.559511763513307891, + -0.559511763513307891, 0.621090751359941073, -0.621090751359941073, + -0.437128202629269713, 0.437128202629269713, -0.320080245358165705, + 0.320080245358165705, 0.676285408860144432, -0.676285408860144432, + 0.294205824825271300, -0.294205824825271300, 1.086292218045164404, + -1.086292218045164404, 0.131665472918444160, -0.131665472918444160, + 0.913562447586867998, -0.913562447586867998, -0.441621943495057401, + 0.441621943495057401, 0.175143091644549165, -0.175143091644549165, + -0.057950142634599001, 0.057950142634599001, 1.272633458197298228, + -1.272633458197298228, -0.739156567900068118, 0.739156567900068118, + -1.172962844785649050, 1.172962844785649050, 0.690349067302703512, + -0.690349067302703512, 1.261164997660849663, -1.261164997660849663, + -0.578273293013085943, 0.578273293013085943, 0.705747556964109291, + -0.705747556964109291, 1.199347759194084206, -1.199347759194084206, + -0.561175893138310178, 0.561175893138310178, 0.418058667159627584, + -0.418058667159627584, 0.775233786194539753, -0.775233786194539753, + -1.005165576137645900, 1.005165576137645900, -0.248095930746197624, + 0.248095930746197624, 0.968389188406472812, -0.968389188406472812, + 0.052644854909029225, -0.052644854909029225, 0.459974856433697621, + -0.459974856433697621, -0.764234718892679465, 0.764234718892679465, + -0.924252504077109682, 0.924252504077109682, -1.000000000000000000, + -2.285037536291396609, 2.285037536291396609, 0.330256994776636892, + -0.330256994776636892, 0.781166851577503984, -0.781166851577503984, + 1.091855391225416527, -1.091855391225416527, 0.303546598398528267, + -0.303546598398528267, 0.883205583346516998, -0.883205583346516998, + -0.200432630370076942, 0.200432630370076942, 0.103227093467374034, + -0.103227093467374034, -0.536598825966995818, 0.536598825966995818, + -0.114094330489527385, 0.114094330489527385, 0.352868274327804876, + -0.352868274327804876, 1.184201821029249313, -1.184201821029249313, + -0.281707700532443983, 0.281707700532443983, 1.299996056001185840, + -1.299996056001185840, 1.288620739680663041, -1.288620739680663041, + -0.124775257491364810, 0.124775257491364810, 2.676893190719289439, + -2.676893190719289439, 0.393601576244927809, -0.393601576244927809, + -0.860157510975565920, 0.860157510975565920, -0.162471839540177465, + 0.162471839540177465, 0.870279361361823600, -0.870279361361823600, + -0.150491539662725049, 0.150491539662725049, -1.332287989766246072, + 1.332287989766246072, 0.065469192080399141, -0.065469192080399141, + -1.317974937874615282, 1.317974937874615282, 0.509029000143902399, + -0.509029000143902399, 0.368719922900173025, -0.368719922900173025, + 0.646131466361322016, -0.646131466361322016, -0.791339007906923575, + 0.791339007906923575, -0.438686479862148759, 0.438686479862148759, + 1.538459427564934812, -1.538459427564934812, -0.258833298230582876, + 0.258833298230582876, -1.504378351654444890, 1.504378351654444890, + -1.036168922551806260, 1.036168922551806260, -1.956795979420658416, + 1.956795979420658416, 1.136562859433311701, -1.136562859433311701, + -1.534637925681490822, 1.534637925681490822, -0.794072741149785766, + 0.794072741149785766, 1.371420904545398223, -1.371420904545398223, + 0.507731197862471229, -0.507731197862471229, -0.301106820285413468, + 0.301106820285413468, -1.017488307329072361, 1.017488307329072361, + -0.614101742707810261, 0.614101742707810261, -0.781398901846928728, + 0.781398901846928728, 0.053926155630600305, -0.053926155630600305, + -0.528096222539175431, 0.528096222539175431, 1.913029349947439561, + -1.913029349947439561, -0.179790546417506469, 0.179790546417506469, + -0.683750983213183505, 0.683750983213183505, -1.021241699433223404, + 1.021241699433223404, -1.000000000000000000, -2.049890895857636064, + 2.049890895857636064, -1.417369090725334679, 1.417369090725334679, + -0.850006203774544056, 0.850006203774544056, 0.462163832152883536, + -0.462163832152883536, -1.576268635512163341, 1.576268635512163341, + -1.441553193165409752, 1.441553193165409752, 0.528158464893624058, + -0.528158464893624058, -0.356925550618781839, 0.356925550618781839, + 1.025569158189527652, -1.025569158189527652, 0.449741824505590193, + -0.449741824505590193, 0.832324652288013667, -0.832324652288013667, + -1.071955389109310985, 1.071955389109310985, -1.634162605612502706, + 1.634162605612502706, 0.505770152619639646, -0.505770152619639646, + -0.529050505036871677, 0.529050505036871677, 2.096511832225588901, + -2.096511832225588901, 0.761631727644857093, -0.761631727644857093, + -1.192983489646781026, 1.192983489646781026, 2.417357758103033216, + -2.417357758103033216, -0.054862528716085407, 0.054862528716085407, + -0.911480249686436483, 0.911480249686436483, -0.754953036467722605, + 0.754953036467722605, -0.765582251486999321, 0.765582251486999321, + 0.336077875984923224, -0.336077875984923224, 0.627961935625664491, + -0.627961935625664491, -0.048378255106885454, 0.048378255106885454, + 0.324089280340306485, -0.324089280340306485, 0.867067055827554611, + -0.867067055827554611, 0.482964936776505871, -0.482964936776505871, + 0.913512419073207127, -0.913512419073207127, -0.986143056174743848, + 0.986143056174743848, 0.106234733647867743, -0.106234733647867743, + 0.600980235748239666, -0.600980235748239666, -0.586035595820676769, + 0.586035595820676769, -0.480578250645586014, 0.480578250645586014, + -1.153384062348248751, 1.153384062348248751, -1.171239036967019365, + 1.171239036967019365, -0.322604826885027784, 0.322604826885027784, + 0.136050508789379743, -0.136050508789379743, 1.065246013053737562, + -1.065246013053737562, -0.601401671319884090, 0.601401671319884090, + 0.095447184573948712, -0.095447184573948712, 2.265102206815573727, + -2.265102206815573727, -0.205975175263903992, 0.205975175263903992, + 0.427509540011176081, -0.427509540011176081, 0.520441665490702587, + -0.520441665490702587, -2.895556119432680209, 2.895556119432680209, + 0.620757007249324810, -0.620757007249324810, -0.005251762123618039, + 0.005251762123618039, 1.083172978556625754, -1.083172978556625754, + -1.000000000000000000, 0.365201243908861106, -0.365201243908861106, + 1.250190028804355702, -1.250190028804355702, 0.224932134413901919, + -0.224932134413901919, -0.902251105448115265, 0.902251105448115265, + -0.368544518082968842, 0.368544518082968842, -0.234274596888654818, + 0.234274596888654818, -1.199930348307246541, 1.199930348307246541, + -1.573215897391668561, 1.573215897391668561, 1.509172423622493930, + -1.509172423622493930, -0.092660720516525047, 0.092660720516525047, + 0.436287483119169650, -0.436287483119169650, 2.405987267352854619, + -2.405987267352854619, 0.831037192863362639, -0.831037192863362639, + 0.142705011000706122, -0.142705011000706122, 1.491265436361660868, + -1.491265436361660868, 0.351484213706070359, -0.351484213706070359, + -1.520421211131988359, 1.520421211131988359, -0.990651120099914628, + 0.990651120099914628, 0.755067493672610501, -0.755067493672610501, + -0.475209396547241036, 0.475209396547241036, -1.267282701791565547, + 1.267282701791565547, 0.419704110261967744, -0.419704110261967744, + -0.766570120470680960, 0.766570120470680960, -1.021465600725925960, + 1.021465600725925960, -0.521511779651205876, 0.521511779651205876, + 0.374754396256747835, -0.374754396256747835, 0.785689533273488006, + -0.785689533273488006, -0.158926489386465586, 0.158926489386465586, + 1.132984272112302016, -1.132984272112302016, 0.957264734680358442, + -0.957264734680358442, -0.404576492822195655, 0.404576492822195655, + 0.589263426043603378, -0.589263426043603378, -1.033631870548684217, + 1.033631870548684217, 0.598534902235807076, -0.598534902235807076, + 0.919327935687768494, -0.919327935687768494, -0.224031230235764156, + 0.224031230235764156, -0.611669152956875184, 0.611669152956875184, + 1.482839170994118660, -1.482839170994118660, -0.094214130236777896, + 0.094214130236777896, -0.902166146440054773, 0.902166146440054773, + -0.248954946055154891, 0.248954946055154891, -3.062190912378776719, + 3.062190912378776719, -0.941533647749983493, 0.941533647749983493, + -2.160942710456435822, 2.160942710456435822, 0.108026826423921113, + -0.108026826423921113, 2.075626678312805673, -2.075626678312805673, + 0.873962816238563089, -0.873962816238563089, -0.408815616016248828, + 0.408815616016248828, -0.129621031340232146, 0.129621031340232146, + 1.406273548026924392, -1.406273548026924392, -1.000000000000000000, + -0.915804710938513011, 0.915804710938513011, -1.221871953979475789, + 1.221871953979475789, -0.300753582392023655, 0.300753582392023655, + 0.075403833175464410, -0.075403833175464410, 0.131548564249591410, + -0.131548564249591410, -0.071935913309509686, 0.071935913309509686, + 0.767128678708612011, -0.767128678708612011, 1.191450868677329078, + -1.191450868677329078, -1.613612865536336205, 1.613612865536336205, + -0.441167481116289062, 0.441167481116289062, 3.280667499979234236, + -3.280667499979234236, -1.201795592615207742, 1.201795592615207742, + 2.951958398205375200, -2.951958398205375200, -1.276239289802024945, + 1.276239289802024945, -1.132028638493809636, 1.132028638493809636, + 2.436513002643889259, -2.436513002643889259, 0.068454839838739664, + -0.068454839838739664, 0.258744697658441825, -0.258744697658441825, + 0.912475983862615192, -0.912475983862615192, 0.079789089547489894, + -0.079789089547489894, -0.095257282931539802, 0.095257282931539802, + 0.032098955389624276, -0.032098955389624276, -0.446625802398977478, + 0.446625802398977478, 0.066898135600142933, -0.066898135600142933, + 0.187007172038859970, -0.187007172038859970, -0.111876955691751587, + 0.111876955691751587, -1.135249689741995027, 1.135249689741995027, + 0.855383920893877270, -0.855383920893877270, -0.584066032000734703, + 0.584066032000734703, 0.043977907469829255, -0.043977907469829255, + -1.235073226970094584, 1.235073226970094584, 0.903396805744995368, + -0.903396805744995368, -1.419367800674472990, 1.419367800674472990, + -0.669079320858145477, 0.669079320858145477, 1.846743883979396816, + -1.846743883979396816, -0.197864347556086784, 0.197864347556086784, + 0.178086679323349178, -0.178086679323349178, -0.726541129368893035, + 0.726541129368893035, 0.102548417306546763, -0.102548417306546763, + 0.101435234812034022, -0.101435234812034022, -0.607294919138270162, + 0.607294919138270162, -0.232543338993652815, 0.232543338993652815, + 1.024873011278554902, -1.024873011278554902, -0.367070741104161269, + 0.367070741104161269, 0.015584587754633259, -0.015584587754633259, + 0.893352765523915404, -0.893352765523915404, -0.318598602767036110, + 0.318598602767036110, -0.565309322249061386, 0.565309322249061386, + -0.869520326873197580, 0.869520326873197580, 1.087601931698385149, + -1.087601931698385149, -1.000000000000000000, -1.000000000000000000, + -1.000000000000000000] + + A = SparseMatrixCSC(m, n, colptr .+ 1, rowval .+ 1, vec(values)) sol = SCS_solve(T, m, n, A, b, c, f, l, q, s, ep, ed, Float64[]) @test sol.ret_val == 1 @@ -38,13 +445,112 @@ function feasible_exponential_conic(T) q = [0,1,0,2,3] s = Int[] - b = [-0.883995908378185202 0.247092008779755457 0.000000000000000000 -0.908862166109580594 0.493908919902298627 0.215008446366246719 -0.756619621167477718 -0.244711519515723036 -2.185656700286640941 -1.777454077348217920 1.191220488872941186 -0.072631913036035556 -0.884888299606113149 -3.097264426296667761 -0.491714244502094944 0.820612279439398518 -5.027612089838516596 -0.218768971520485273 -1.779020210515877221 0.000000000000000000 1.049908711514835780 0.423746551400514093 -0.078381703192688112 -0.387520318558316479 0.959884766721948446 -0.080140759738691447 1.300716537987696597 -0.217623259095584554 -0.772345449741623336 -0.014345948596158398 2.002325668310177775 2.019795133016943467 1.285967533112210681 -0.503689333815666940 3.004968290408826626 -1.438380292815098382 -0.801360722211995502 0.731209144814713885 -2.639460367287462361 1.255602400085220394 -0.301008710647552635 0.478491654540030953 -0.984259121708334739 0.276318763804415002 0.631004508865874447 1.808914085971600416 0.379215625232032671 -0.627707287528726510 -1.823589846592805763 0.000000000000000000 0.376255266738256766 0.577717062577191354 1.119478389802739615 0.977520182221270906 0.000000000000000000 3.417141674635829851 -0.093825387556597556 -1.780472058822893722 1.589707484189159858 0.133747881756402398 1.316803247114450848 -0.153152367127352751 -1.712195041092097192 -0.151457896071195447 1.216498217552836492 0.610011299767568738 4.095401319683990238 -0.761957853948331154 -0.485158172250699793 -1.990510613776122817 1.151843011380725867]' - c = [1.126284961639569149 0.474697659805094763 -2.123033959497108825 4.908405709073863754 1.205680866991396316 -0.305211910012288978 -6.293810724494532494 -0.698794364791622713 2.279737335846038437 -0.945550079347313055 -0.727867522608193762 -1.869349988323733891 -3.748045451887451307 1.125456539838578518 0.750188573436658457 1.255406629974515686 -4.887321053728165055 4.021564105931883404 0.000000000000000000 -5.091850958321861853 -0.068986990722853969 -1.715673120575787136 0.036366854219751360 -3.625427280331933400]' - colptr = vec([0 7 12 18 24 34 37 43 47 54 59 68 79 87 93 101 111 119 127 128 139 141 150 154 162]') - rowval = vec([5 17 22 31 55 65 69 12 18 30 34 58 9 11 13 18 30 66 0 10 17 18 44 58 5 6 7 26 29 31 53 57 61 67 39 43 68 3 9 13 14 16 21 7 36 38 55 4 12 21 27 40 46 66 3 26 34 44 53 5 11 17 27 31 37 42 45 63 13 22 24 33 36 40 50 56 58 64 65 6 10 13 16 18 23 41 44 17 31 41 46 55 58 16 20 33 38 42 58 62 64 7 13 18 21 26 36 45 52 56 60 8 15 21 30 33 48 53 64 1 5 11 16 23 24 28 39 37 5 8 28 30 41 55 57 59 61 64 67 56 70 0 3 10 18 22 34 37 42 65 16 25 51 65 5 13 24 28 32 36 40 55]'); - values = [0.155488995903893978 -0.062791225718324961 -0.723631125289072807 -0.238301504589733010 -1.222593380186629552 0.176577794642316321 0.705885019349415832 -1.327043149520291010 -0.054886129988677361 0.595357673884101768 -0.608557444738319409 -0.345065971567320995 0.312023828329273611 0.600142508808629960 0.401844497039814952 -1.118732002452724972 1.046832784305231856 2.003390610862264776 -0.289963040800027938 -0.723121479570418058 -2.021958930051789505 -0.626378538867138679 1.223062551733806957 1.012801864262980134 0.818551368521000522 -0.493009815316450606 0.045841105713705040 0.571247629714476068 -0.131820352915893585 0.229596893220313791 0.245804851893843240 -0.300111005615675885 -0.438141355602143678 -0.432003843727780446 2.787335227813435345 1.778255899291004472 -0.360076301153971601 1.174116751493714972 1.804493771724186901 1.470201280848519421 0.397466995795308642 1.516266896645952711 1.808862620519253950 -0.063783120022332648 0.910482579647111989 0.439952188872439920 0.316500360797716096 -1.481399071578779925 -1.441013597638914456 -1.079866250738828137 0.759568325914783404 -1.854299082689693901 0.066756911436865754 0.950993499549085408 0.126947068043645916 0.412796010311391848 -0.737059771697805455 -1.283256104604766579 0.070045209416807905 -0.292588130834394000 0.593930795648752730 -0.982131525779047831 -0.657201299098350344 0.439997904822629349 0.183703423091249041 0.541334435719376117 0.901931466951714444 -0.297697144009373027 -0.326814228785906158 -0.593250315010803608 -0.373070658631004248 0.601102032468295078 0.867082552947325391 -1.140681144669632330 -0.069214254022048366 -0.418903195029848852 0.629334584931418806 1.143678910770957513 0.970737823554688517 -0.180739356415037467 0.526547037749559022 0.812323004640795987 -0.032566509194480744 0.249517740562795132 0.942133319236942435 -0.433609296474823602 -2.328954516283341825 0.612511298166949270 -0.616865928889227422 -0.168469878275448348 0.035479485837577006 -1.342869236621930140 -0.213015082641054704 1.635999657278292441 -0.640709506726057532 0.092307951238962266 0.101662443700341151 0.389266203843263880 -0.865697308360523721 0.983545235205556256 -0.531620117507069279 0.611335194065235954 0.545540103526115816 -0.993019006549600625 0.199189444075264455 -0.986961883351521907 -0.079892839058037096 -1.835638683735192345 0.235809672576244050 -0.140321722056366061 -0.270068812648098844 0.109317693774870342 -0.751894738681891606 -1.521026561768954677 -0.197958632611841989 1.729841391572364273 2.227168078167871546 -0.608580510079949288 0.972565728008653152 0.475424811707271355 -0.540786416488525767 -2.186021612748235476 -0.425058490610030815 0.300485967595730263 0.815488508092498399 -0.603918481376169214 -1.166665030194641073 0.290790134884453599 -0.308641815280113085 1.814015450280375585 0.176946822329411252 0.327678163907200726 -0.218533560026580531 -1.032184344072171189 1.029365712103099240 -1.043108301337626775 -0.408674314796325655 -0.522250484993548869 0.648940737363586706 0.899822328897223467 1.415849068436585423 1.261550718141148275 -0.656815928948082495 -0.260250861706116776 0.974950224811311550 0.401336339818801069 -1.749879306387625455 0.112944717021051230 0.751228984688332879 -0.413972274974230170 0.589433366718220664 0.120205281956355367 -0.507323064614498387 -0.438270518204901538 -1.096593301525472075 -1.051632309520848407 0.798886992156715880 -0.307503469862750567 0.274836786911666187 0.898475989377141793 -1.093343456239604494 1.331215885064973348] + b = [ + -0.883995908378185202, 0.247092008779755457, 0.000000000000000000, + -0.908862166109580594, 0.493908919902298627, 0.215008446366246719, + -0.756619621167477718, -0.244711519515723036, -2.185656700286640941, + -1.777454077348217920, 1.191220488872941186, -0.072631913036035556, + -0.884888299606113149, -3.097264426296667761, -0.491714244502094944, + 0.820612279439398518, -5.027612089838516596, -0.218768971520485273, + -1.779020210515877221, 0.000000000000000000, 1.049908711514835780, + 0.423746551400514093, -0.078381703192688112, -0.387520318558316479, + 0.959884766721948446, -0.080140759738691447, 1.300716537987696597, + -0.217623259095584554, -0.772345449741623336, -0.014345948596158398, + 2.002325668310177775, 2.019795133016943467, 1.285967533112210681, + -0.503689333815666940, 3.004968290408826626, -1.438380292815098382, + -0.801360722211995502, 0.731209144814713885, -2.639460367287462361, + 1.255602400085220394, -0.301008710647552635, 0.478491654540030953, + -0.984259121708334739, 0.276318763804415002, 0.631004508865874447, + 1.808914085971600416, 0.379215625232032671, -0.627707287528726510, + -1.823589846592805763, 0.000000000000000000, 0.376255266738256766, + 0.577717062577191354, 1.119478389802739615, 0.977520182221270906, + 0.000000000000000000, 3.417141674635829851, -0.093825387556597556, + -1.780472058822893722, 1.589707484189159858, 0.133747881756402398, + 1.316803247114450848, -0.153152367127352751, -1.712195041092097192, + -0.151457896071195447, 1.216498217552836492, 0.610011299767568738, + 4.095401319683990238, -0.761957853948331154, -0.485158172250699793, + -1.990510613776122817, 1.151843011380725867] + + c = [ + 1.126284961639569149, 0.474697659805094763, -2.123033959497108825, + 4.908405709073863754, 1.205680866991396316, -0.305211910012288978, + -6.293810724494532494, -0.698794364791622713, 2.279737335846038437, + -0.945550079347313055, -0.727867522608193762, -1.869349988323733891, + -3.748045451887451307, 1.125456539838578518, 0.750188573436658457, + 1.255406629974515686, -4.887321053728165055, 4.021564105931883404, + 0.000000000000000000, -5.091850958321861853, -0.068986990722853969, + -1.715673120575787136, 0.036366854219751360, -3.625427280331933400] + + colptr = [0, 7, 12, 18, 24, 34, 37, 43, 47, 54, 59, 68, 79, 87, 93, 101, 111, 119, 127, 128, 139, 141, 150, 154, 162] - A = SparseMatrixCSC(m, n, colptr + 1, rowval + 1, vec(values)) + rowval = [ + 5, 17, 22, 31, 55, 65, 69, 12, 18, 30, 34, 58, 9, 11, 13, 18, 30, 66, 0, + 10, 17, 18, 44, 58, 5, 6, 7, 26, 29, 31, 53, 57, 61, 67, 39, 43, 68, 3, + 9, 13, 14, 16, 21, 7, 36, 38, 55, 4, 12, 21, 27, 40, 46, 66, 3, 26, 34, + 44, 53, 5, 11, 17, 27, 31, 37, 42, 45, 63, 13, 22, 24, 33, 36, 40, 50, 56, + 58, 64, 65, 6, 10, 13, 16, 18, 23, 41, 44, 17, 31, 41, 46, 55, 58, 16, 20, + 33, 38, 42, 58, 62, 64, 7, 13, 18, 21, 26, 36, 45, 52, 56, 60, 8, 15, 21, + 30, 33, 48, 53, 64, 1, 5, 11, 16, 23, 24, 28, 39, 37, 5, 8, 28, 30, 41, + 55, 57, 59, 61, 64, 67, 56, 70, 0, 3, 10, 18, 22, 34, 37, 42, 65, 16, 25, + 51, 65, 5, 13, 24, 28, 32, 36, 40, 55] + + values = [ + 0.155488995903893978, -0.062791225718324961, -0.723631125289072807, + -0.238301504589733010, -1.222593380186629552, 0.176577794642316321, + 0.705885019349415832, -1.327043149520291010, -0.054886129988677361, + 0.595357673884101768, -0.608557444738319409, -0.345065971567320995, + 0.312023828329273611, 0.600142508808629960, 0.401844497039814952, + -1.118732002452724972, 1.046832784305231856, 2.003390610862264776, + -0.289963040800027938, -0.723121479570418058, -2.021958930051789505, + -0.626378538867138679, 1.223062551733806957, 1.012801864262980134, + 0.818551368521000522, -0.493009815316450606, 0.045841105713705040, + 0.571247629714476068, -0.131820352915893585, 0.229596893220313791, + 0.245804851893843240, -0.300111005615675885, -0.438141355602143678, + -0.432003843727780446, 2.787335227813435345, 1.778255899291004472, + -0.360076301153971601, 1.174116751493714972, 1.804493771724186901, + 1.470201280848519421, 0.397466995795308642, 1.516266896645952711, + 1.808862620519253950, -0.063783120022332648, 0.910482579647111989, + 0.439952188872439920, 0.316500360797716096, -1.481399071578779925, + -1.441013597638914456, -1.079866250738828137, 0.759568325914783404, + -1.854299082689693901, 0.066756911436865754, 0.950993499549085408, + 0.126947068043645916, 0.412796010311391848, -0.737059771697805455, + -1.283256104604766579, 0.070045209416807905, -0.292588130834394000, + 0.593930795648752730, -0.982131525779047831, -0.657201299098350344, + 0.439997904822629349, 0.183703423091249041, 0.541334435719376117, + 0.901931466951714444, -0.297697144009373027, -0.326814228785906158, + -0.593250315010803608, -0.373070658631004248, 0.601102032468295078, + 0.867082552947325391, -1.140681144669632330, -0.069214254022048366, + -0.418903195029848852, 0.629334584931418806, 1.143678910770957513, + 0.970737823554688517, -0.180739356415037467, 0.526547037749559022, + 0.812323004640795987, -0.032566509194480744, 0.249517740562795132, + 0.942133319236942435, -0.433609296474823602, -2.328954516283341825, + 0.612511298166949270, -0.616865928889227422, -0.168469878275448348, + 0.035479485837577006, -1.342869236621930140, -0.213015082641054704, + 1.635999657278292441, -0.640709506726057532, 0.092307951238962266, + 0.101662443700341151, 0.389266203843263880, -0.865697308360523721, + 0.983545235205556256, -0.531620117507069279, 0.611335194065235954, + 0.545540103526115816, -0.993019006549600625, 0.199189444075264455, + -0.986961883351521907, -0.079892839058037096, -1.835638683735192345, + 0.235809672576244050, -0.140321722056366061, -0.270068812648098844, + 0.109317693774870342, -0.751894738681891606, -1.521026561768954677, + -0.197958632611841989, 1.729841391572364273, 2.227168078167871546, + -0.608580510079949288, 0.972565728008653152, 0.475424811707271355, + -0.540786416488525767, -2.186021612748235476, -0.425058490610030815, + 0.300485967595730263, 0.815488508092498399, -0.603918481376169214, + -1.166665030194641073, 0.290790134884453599, -0.308641815280113085, + 1.814015450280375585, 0.176946822329411252, 0.327678163907200726, + -0.218533560026580531, -1.032184344072171189, 1.029365712103099240, + -1.043108301337626775, -0.408674314796325655, -0.522250484993548869, + 0.648940737363586706, 0.899822328897223467, 1.415849068436585423, + 1.261550718141148275, -0.656815928948082495, -0.260250861706116776, + 0.974950224811311550, 0.401336339818801069, -1.749879306387625455, + 0.112944717021051230, 0.751228984688332879, -0.413972274974230170, + 0.589433366718220664, 0.120205281956355367, -0.507323064614498387, + -0.438270518204901538, -1.096593301525472075, -1.051632309520848407, + 0.798886992156715880, -0.307503469862750567, 0.274836786911666187, + 0.898475989377141793, -1.093343456239604494, 1.331215885064973348] + + A = SparseMatrixCSC(m, n, colptr .+ 1, rowval .+ 1, vec(values)) sol = SCS_solve(T, m, n, A, b, c, f, l, q, s, ep, ed, Float64[]) @assert sol.ret_val == 1 @@ -62,13 +568,65 @@ function feasible_sdp_conic(T) ed = 2 q = [2,3,4] s = [2,3,4] - b = [-0.757244022903780567 0.000000000000000000 -1.892151461056349238 -0.163643541176375057 0.000000000000000000 -1.081834184990333014 0.795686782662209935 -0.459554179861930256 0.000000000000000000 -0.021401100284139062 0.221822131770426145 0.624165617064677769 0.103992209313486683 0.383906342184775817 0.220548856781228653 0.207179552343107032 -0.251552024267611252 -0.940985378402204531 0.143203475268773417 -0.637990380166112425 -0.047725168844638927 -1.400142610548834821 -0.518640886812063995 -0.466344476203716551 -0.306977592331722393 -0.733266642509912470 1.636614964482892454 2.801678431332372821 0.542022232315772401 0.561733632830300200 -2.792150430434448882 0.679252001011406148 0.060935700608246268 1.017184097064012693 -1.472726175247485836 0.298927350489858801 0.283700004781893000 -5.946289176766917706 0.563505302268017871 1.728907659188164914 0.783139219605003434 0.241447041607357943 -0.100769851306178021 -0.312858596637428432 0.715583273231235939 0.030051296196268559]' - c = [-0.159052113684804763 1.195574970454808206 0.354942838344536771 -0.144003787891437030 0.031108987439201756 -6.024128094309364911 -6.684198760055235056 -2.875770597510225901 -1.958442177032014397 -3.231061172173861795 -0.047201649069278366 -1.907845683517030544 0.605113199091042553 2.360164164701050726 -0.367619298880400125]' - colptr = vec([0 3 11 18 24 25 30 36 39 44 47 48 51 56 61 66]) - rowval = vec([7 26 27 3 5 9 15 26 28 31 34 7 12 21 25 32 38 44 10 11 16 35 36 40 10 11 14 24 26 34 11 12 16 20 38 42 13 34 42 3 6 11 15 29 30 34 37 31 2 5 42 11 20 22 24 34 6 17 23 25 44 0 21 30 32 42]); - values = [-0.067865553542687335 1.530072514424096086 1.603457298120044117 -0.334886938964047698 1.039090653504955997 -0.217606350143191934 0.307061919146703444 -0.249024742513713787 1.234679146890777846 -0.155941035724768945 0.391894209432449070 -0.195221197898754362 0.625190357087625714 -0.532011376808820713 -0.192239517539274762 -0.261163645776478603 -0.457014640871582556 -1.565056014150725039 -0.303107621351740908 0.051290355848774699 0.515246335524848553 -0.320575506600239257 0.012469041361617951 -1.066701398984749583 0.023045624425105282 0.826062790211595455 0.949221831131022542 -0.712004549027422495 -1.064213412889326804 -1.250678906826407477 1.526976686733372723 0.183227263001436963 0.261406324055382666 -0.162337672803827743 1.242448406390738391 0.933728162671238482 -1.029767543566621146 -0.947960922331432032 0.350321001356111605 0.552783345944550142 1.260658709120896281 0.466914435684700035 0.135174942099455658 -0.229626450963180490 -1.506159703979718989 -0.741106093940411492 -3.029177341404145629 0.276068253931536167 -0.848709379933659025 -1.117638683265208099 -0.029005763708726321 -0.209713338388736709 -0.146054634331526184 -0.875729346160017297 -1.174212331456816250 -0.507817550278173657 0.660143141046977688 -0.941485770955433732 -0.483815050110121103 -0.274070229932602216 -0.084539479817724195 0.455029556444334349 1.682103594663178825 -0.444627816446985402 0.443421912904091331 0.182452167505983420] - A = SparseMatrixCSC(m, n, colptr + 1, rowval + 1, vec(values)) + b = [ + -0.757244022903780567, 0.000000000000000000, -1.892151461056349238, + -0.163643541176375057, 0.000000000000000000, -1.081834184990333014, + 0.795686782662209935, -0.459554179861930256, 0.000000000000000000, + -0.021401100284139062, 0.221822131770426145, 0.624165617064677769, + 0.103992209313486683, 0.383906342184775817, 0.220548856781228653, + 0.207179552343107032, -0.251552024267611252, -0.940985378402204531, + 0.143203475268773417, -0.637990380166112425, -0.047725168844638927, + -1.400142610548834821, -0.518640886812063995, -0.466344476203716551, + -0.306977592331722393, -0.733266642509912470, 1.636614964482892454, + 2.801678431332372821, 0.542022232315772401, 0.561733632830300200, + -2.792150430434448882, 0.679252001011406148, 0.060935700608246268, + 1.017184097064012693, -1.472726175247485836, 0.298927350489858801, + 0.283700004781893000, -5.946289176766917706, 0.563505302268017871, + 1.728907659188164914, 0.783139219605003434, 0.241447041607357943, + -0.100769851306178021, -0.312858596637428432, 0.715583273231235939, + 0.030051296196268559] + + c = [ + -0.159052113684804763, 1.195574970454808206, 0.354942838344536771, + -0.144003787891437030, 0.031108987439201756, -6.024128094309364911, + -6.684198760055235056, -2.875770597510225901, -1.958442177032014397, + -3.231061172173861795, -0.047201649069278366, -1.907845683517030544, + 0.605113199091042553, 2.360164164701050726, -0.367619298880400125] + + colptr = [0, 3, 11, 18, 24, 25, 30, 36, 39, 44, 47, 48, 51, 56, 61, 66] + + rowval = [ + 7, 26, 27, 3, 5, 9, 15, 26, 28, 31, 34, 7, 12, 21, 25, 32, 38, 44, 10, + 11, 16, 35, 36, 40, 10, 11, 14, 24, 26, 34, 11, 12, 16, 20, 38, 42, 13, 34, + 42, 3, 6, 11, 15, 29, 30, 34, 37, 31, 2, 5, 42, 11, 20, 22, 24, 34, 6, + 17, 23, 25, 44, 0, 21, 30, 32, 42]; + + values = [ + -0.067865553542687335, 1.530072514424096086, 1.603457298120044117, + -0.334886938964047698, 1.039090653504955997, -0.217606350143191934, + 0.307061919146703444, -0.249024742513713787, 1.234679146890777846, + -0.155941035724768945, 0.391894209432449070, -0.195221197898754362, + 0.625190357087625714, -0.532011376808820713, -0.192239517539274762, + -0.261163645776478603, -0.457014640871582556, -1.565056014150725039, + -0.303107621351740908, 0.051290355848774699, 0.515246335524848553, + -0.320575506600239257, 0.012469041361617951, -1.066701398984749583, + 0.023045624425105282, 0.826062790211595455, 0.949221831131022542, + -0.712004549027422495, -1.064213412889326804, -1.250678906826407477, + 1.526976686733372723, 0.183227263001436963, 0.261406324055382666, + -0.162337672803827743, 1.242448406390738391, 0.933728162671238482, + -1.029767543566621146, -0.947960922331432032, 0.350321001356111605, + 0.552783345944550142, 1.260658709120896281, 0.466914435684700035, + 0.135174942099455658, -0.229626450963180490, -1.506159703979718989, + -0.741106093940411492, -3.029177341404145629, 0.276068253931536167, + -0.848709379933659025, -1.117638683265208099, -0.029005763708726321, + -0.209713338388736709, -0.146054634331526184, -0.875729346160017297, + -1.174212331456816250, -0.507817550278173657, 0.660143141046977688, + -0.941485770955433732, -0.483815050110121103, -0.274070229932602216, + -0.084539479817724195, 0.455029556444334349, 1.682103594663178825, + -0.444627816446985402, 0.443421912904091331, 0.182452167505983420] + + A = SparseMatrixCSC(m, n, colptr .+ 1, rowval .+ 1, vec(values)) sol = SCS_solve(T, m, n, A, b, c, f, l, q, s, ep, ed, Float64[]) @test sol.ret_val == 1 @@ -84,14 +642,41 @@ function feasible_pow_conic(T) ed = 0 q = Int[] s = Int[] - p = [-3.000000e-01,2.500000e-01,7.500000e-01,-4.000000e-01,8.700000e-01,-1.200000e-01] - b = [-0.887386390749058451 1.868842541924223610 -0.755288651776904296 0.000000000000000000 0.000000000000000000 0.000000000000000000 -0.242379421582613414 0.000000000000000000 0.000000000000000000 0.000000000000000000 2.000257252427916743 0.841870176542910631 -1.245982120437818974 0.644136460056986104 -0.068037985179701416 0.041769615282582828 1.081088773255733271 1.417941447788496845 0.955133254978043800 2.477002457942629299 0.326964373865085811 0.322926943542406031 0.765172439731569787 1.673745381540497679 0.056224953164704453 0.024308325296160227 -0.492458408194795028 -0.193643481641372683]' - c = [0.581324380640174887 0.000000000000000000 -1.274914899429569370 1.437959547820705897 0.178499636115030086 -2.834480531039399676 -0.465471220509626749 0.440187271984058437 1.655006387767208542]'; - colptr = vec([0 2 2 8 11 12 15 21 22 25]) - rowval = vec([11 19 10 11 14 18 19 26 1 19 23 2 1 14 19 0 1 10 14 23 26 16 0 6 18]) - values = [-0.511172207780700494 -0.557093642241281661 -0.322939921204497105 -0.002041345349432955 1.606510961119237413 -0.070499387778693703 -0.336705699002853465 1.122647857944874650 0.375041023696103593 0.415227462723155749 -2.444298897865559539 -2.377454293765433491 1.125161817875028225 0.847648634500925313 1.557813537123208025 0.400486023191097329 0.728641591773904751 0.317987915650739417 0.268100811901575309 -1.098195387799324019 0.581667258045274083 -0.923489085784077401 -1.341380722378574086 -0.273782415743900387 0.147891351014747152] - - A = SparseMatrixCSC(m, n, colptr + 1, rowval + 1, vec(values)) + p = [-3.0e-01, 2.5e-01, 7.5e-01, -4.0e-01, 8.7e-01, -1.2e-01] + + b = [ + -0.887386390749058451, 1.868842541924223610, -0.755288651776904296, + 0.000000000000000000, 0.000000000000000000, 0.000000000000000000, + -0.242379421582613414, 0.000000000000000000, 0.000000000000000000, + 0.000000000000000000, 2.000257252427916743, 0.841870176542910631, + -1.245982120437818974, 0.644136460056986104, -0.068037985179701416, + 0.041769615282582828, 1.081088773255733271, 1.417941447788496845, + 0.955133254978043800, 2.477002457942629299, 0.326964373865085811, + 0.322926943542406031, 0.765172439731569787, 1.673745381540497679, + 0.056224953164704453, 0.024308325296160227, -0.492458408194795028, + -0.193643481641372683] + + c = [ + 0.581324380640174887, 0.000000000000000000, -1.274914899429569370, + 1.437959547820705897, 0.178499636115030086, -2.834480531039399676, + -0.465471220509626749, 0.440187271984058437, 1.655006387767208542]; + + colptr = [0, 2, 2, 8, 11, 12, 15, 21, 22, 25] + + rowval = [11, 19, 10, 11, 14, 18, 19, 26, 1, 19, 23, 2, 1, 14, 19, 0, 1, 10, 14, 23, 26, 16, 0, 6, 18] + + values = [ + -0.511172207780700494, -0.557093642241281661, -0.322939921204497105, + -0.002041345349432955, 1.606510961119237413, -0.070499387778693703, + -0.336705699002853465, 1.122647857944874650, 0.375041023696103593, + 0.415227462723155749, -2.444298897865559539, -2.377454293765433491, + 1.125161817875028225, 0.847648634500925313, 1.557813537123208025, + 0.400486023191097329, 0.728641591773904751, 0.317987915650739417, + 0.268100811901575309, -1.098195387799324019, 0.581667258045274083, + -0.923489085784077401, -1.341380722378574086, -0.273782415743900387, + 0.147891351014747152] + + A = SparseMatrixCSC(m, n, colptr .+ 1, rowval .+ 1, vec(values)) sol = SCS_solve(T, m, n, A, b, c, f, l, q, s, ep, ed, p) @test sol.ret_val == 1