Skip to content

Commit f28b102

Browse files
committed
Add test for sparse cholesky
1 parent a538b3a commit f28b102

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

src/factorization.jl

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -242,8 +242,6 @@ end
242242
function do_factorization(alg::CholeskyFactorization, A, b, u)
243243
A = convert(AbstractMatrix, A)
244244
if A isa SparseMatrixCSC
245-
# fact = cholesky!(A; shift = alg.shift, check = false, perm = alg.perm)
246-
# fact = @time cholesky!(A; check = false)
247245
fact = cholesky(A; shift = alg.shift, check = false, perm = alg.perm)
248246
elseif alg.pivot === Val(false) || alg.pivot === NoPivot()
249247
fact = cholesky!(A, alg.pivot; check = false)
@@ -270,7 +268,6 @@ function init_cacheval(alg::CholeskyFactorization, A, b, u, Pl, Pr,
270268
maxiters::Int, abstol, reltol, verbose::Bool,
271269
assumptions::OperatorAssumptions)
272270
ArrayInterface.cholesky_instance(convert(AbstractMatrix, A), alg.pivot)
273-
# cholesky!(similar(A, 1, 1); check=false)
274271
end
275272

276273
@static if VERSION < v"1.8beta"

test/sparse_vector.jl

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ using SparseArrays
22
using LinearSolve
33
using LinearAlgebra
44

5-
# Constructing sparse array
5+
# Constructing sparse array
66
function hess_sparse(x::Vector{T}) where {T}
77
return [
88
-sin(x[1] + x[2]) + 1,
@@ -37,7 +37,12 @@ n = length(x0)
3737
hess_mat = sparse(rowval, colval, hess_sparse(x0), n, n)
3838
grad_vec = sparsevec(gradinds, grad_sparse(x0), n)
3939

40-
# # Converting grad_vec to dense succeeds in solving
40+
# Converting grad_vec to dense succeeds in solving
4141
prob = LinearProblem(hess_mat, grad_vec)
42-
linsolve = init(prob)
42+
linsolve = init(prob);
4343
@test solve!(linsolve).u hess_mat \ Array(grad_vec)
44+
45+
H = hess_mat' * hess_mat
46+
prob = LinearProblem(H, hess_mat' * grad_vec)
47+
linsolve = init(prob, CholeskyFactorization())
48+
@test solve!(linsolve).u H \ Array(hess_mat' * grad_vec)

0 commit comments

Comments
 (0)