Skip to content

Commit 2b55856

Browse files
committed
add sparse matrix-based functions
1 parent 10f17ce commit 2b55856

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

Project.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,11 @@ version = "0.1.1"
66

77
[deps]
88
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
9+
SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf"
910
Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2"
1011

1112
[compat]
12-
julia="1"
13+
julia = "1"
1314

1415
[extras]
1516
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

src/DiffTests.jl

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
module DiffTests
22

33
using LinearAlgebra: det, norm, dot, tr, Diagonal, LowerTriangular, UpperTriangular
4+
using SparseArrays: sparse
45
using Statistics: mean
56

67
#=
@@ -272,15 +273,23 @@ diag_lmul(x::VecOrMat) = diag_matrix(x) * x
272273
dense_lmul(x::VecOrMat) = test_matrix(x) * x
273274
utriag_lmul(x::VecOrMat) = UpperTriangular(test_matrix(x)) * x
274275
ltriag_lmul(x::VecOrMat) = LowerTriangular(test_matrix(x)) * x
276+
sparse_lmul(x::VecOrMat) = sparse(test_matrix(x)) * x
277+
sp_utriag_lmul(x::VecOrMat) = UpperTriangular(sparse(test_matrix(x))) * x
278+
sp_ltriag_lmul(x::VecOrMat) = LowerTriangular(sparse(test_matrix(x))) * x
275279

276280
# left division by a constant matrix
277281
diag_ldiv(x::VecOrMat) = diag_matrix(x) \ x
278282
dense_ldiv(x::VecOrMat) = test_matrix(x) \ x
279283
utriag_ldiv(x::VecOrMat) = UpperTriangular(test_matrix(x)) \ x
280284
ltriag_ldiv(x::VecOrMat) = LowerTriangular(test_matrix(x)) \ x
285+
sparse_ldiv(x::VecOrMat) = sparse(test_matrix(x)) \ x
286+
sp_utriag_ldiv(x::VecOrMat) = UpperTriangular(sparse(test_matrix(x))) \ x
287+
sp_ltriag_ldiv(x::VecOrMat) = LowerTriangular(sparse(test_matrix(x))) \ x
281288

282289
const VECTOR_TO_VECTOR_FUNCS = (diag_lmul, dense_lmul, utriag_lmul, ltriag_lmul,
283-
diag_ldiv, utriag_ldiv, ltriag_ldiv)
290+
sparse_lmul, sp_utriag_lmul, sp_ltriag_lmul,
291+
diag_ldiv, utriag_ldiv, ltriag_ldiv,
292+
sparse_ldiv, sp_utriag_ldiv, sp_ltriag_ldiv,)
284293

285294
######################
286295
# f(x::Array)::Array #
@@ -309,6 +318,8 @@ const ARRAY_TO_ARRAY_FUNCS = (-, chebyquad, brown_almost_linear, trigonometric,
309318

310319
const MATRIX_TO_MATRIX_FUNCS = (inv,
311320
diag_lmul, dense_lmul, utriag_lmul, ltriag_lmul,
312-
diag_ldiv, utriag_ldiv, ltriag_ldiv)
321+
sparse_lmul, sp_utriag_lmul, sp_ltriag_lmul,
322+
diag_ldiv, utriag_ldiv, ltriag_ldiv,
323+
sparse_ldiv, sp_utriag_ldiv, sp_ltriag_ldiv,)
313324

314325
end # module

0 commit comments

Comments
 (0)