1
- using LinearSolve, SparseArrays, Random
1
+ using LinearSolve, SparseArrays, Random, LinearAlgebra
2
2
import Pardiso
3
3
4
4
A1 = sparse ([1.0 0 - 2 3
@@ -38,6 +38,9 @@ for alg in algs
38
38
@test A2 * u ≈ b2
39
39
end
40
40
41
+ return
42
+
43
+
41
44
Random. seed! (10 )
42
45
A = sprand (n, n, 0.8 );
43
46
A2 = 2.0 .* A;
@@ -64,6 +67,25 @@ sol33 = solve(linsolve)
64
67
@test sol12. u ≈ sol32. u
65
68
@test sol13. u ≈ sol33. u
66
69
70
+
71
+ # Test for problem from #497
72
+ function makeA ()
73
+ n = 60
74
+ colptr = [1 , 4 , 7 , 11 , 15 , 17 , 22 , 26 , 30 , 34 , 38 , 40 , 46 , 50 , 54 , 58 , 62 , 64 , 70 , 74 , 78 , 82 , 86 , 88 , 94 , 98 , 102 , 106 , 110 , 112 , 118 , 122 , 126 , 130 , 134 , 136 , 142 , 146 , 150 , 154 , 158 , 160 , 166 , 170 , 174 , 178 , 182 , 184 , 190 , 194 , 198 , 202 , 206 , 208 , 214 , 218 , 222 , 224 , 226 , 228 , 232 ]
75
+ rowval = [1 , 3 , 4 , 1 , 2 , 4 , 2 , 4 , 9 , 10 , 3 , 5 , 11 , 12 , 1 , 3 , 2 , 4 , 6 , 11 , 12 , 2 , 7 , 9 , 10 , 2 , 7 , 8 , 10 , 8 , 10 , 15 , 16 , 9 , 11 , 17 , 18 , 7 , 9 , 2 , 8 , 10 , 12 , 17 , 18 , 8 , 13 , 15 , 16 , 8 , 13 , 14 , 16 , 14 , 16 , 21 , 22 , 15 , 17 , 23 , 24 , 13 , 15 , 8 , 14 , 16 , 18 , 23 , 24 , 14 , 19 , 21 , 22 , 14 , 19 , 20 , 22 , 20 , 22 , 27 , 28 , 21 , 23 , 29 , 30 , 19 , 21 , 14 , 20 , 22 , 24 , 29 , 30 , 20 , 25 , 27 , 28 , 20 , 25 , 26 , 28 , 26 , 28 , 33 , 34 , 27 , 29 , 35 , 36 , 25 , 27 , 20 , 26 , 28 , 30 , 35 , 36 , 26 , 31 , 33 , 34 , 26 , 31 , 32 , 34 , 32 , 34 , 39 , 40 , 33 , 35 , 41 , 42 , 31 , 33 , 26 , 32 , 34 , 36 , 41 , 42 , 32 , 37 , 39 , 40 , 32 , 37 , 38 , 40 , 38 , 40 , 45 , 46 , 39 , 41 , 47 , 48 , 37 , 39 , 32 , 38 , 40 , 42 , 47 , 48 , 38 , 43 , 45 , 46 , 38 , 43 , 44 , 46 , 44 , 46 , 51 , 52 , 45 , 47 , 53 , 54 , 43 , 45 , 38 , 44 , 46 , 48 , 53 , 54 , 44 , 49 , 51 , 52 , 44 , 49 , 50 , 52 , 50 , 52 , 57 , 58 , 51 , 53 , 59 , 60 , 49 , 51 , 44 , 50 , 52 , 54 , 59 , 60 , 50 , 55 , 57 , 58 , 50 , 55 , 56 , 58 , 56 , 58 , 57 , 59 , 55 , 57 , 50 , 56 , 58 , 60 ]
76
+ nzval = [-0.64, 1.0, -1.0, 0.8606811145510832, -13.792569659442691, 1.0, 0.03475000000000006, 1.0, -0.03510101010101016, -0.975, -1.0806825309567203, 1.0, -0.95, -0.025, 2.370597639417811, -2.3705976394178108, -11.083604432603583, -0.2770901108150896, 1.0, -0.025, -0.95, -0.3564, -0.64, 1.0, -1.0, 13.792569659442691, 0.8606811145510832, -13.792569659442691, 1.0, 0.03475000000000006, 1.0, -0.03510101010101016, -0.975, -1.0806825309567203, 1.0, -0.95, -0.025, 2.370597639417811, -2.3705976394178108, 10.698449178570607, -11.083604432603583, -0.2770901108150896, 1.0, -0.025, -0.95, -0.3564, -0.64, 1.0, -1.0, 13.792569659442691, 0.8606811145510832, -13.792569659442691, 1.0, 0.03475000000000006, 1.0, -0.03510101010101016, -0.975, -1.0806825309567203, 1.0, -0.95, -0.025, 2.370597639417811, -2.3705976394178108, 10.698449178570607, -11.083604432603583, -0.2770901108150896, 1.0, -0.025, -0.95, -0.3564, -0.64, 1.0, -1.0, 13.792569659442691, 0.8606811145510832, -13.792569659442691, 1.0, 0.03475000000000006, 1.0, -0.03510101010101016, -0.975, -1.0806825309567203, 1.0, -0.95, -0.025, 2.370597639417811, -2.3705976394178108, 10.698449178570607, -11.083604432603583, -0.2770901108150896, 1.0, -0.025, -0.95, -0.3564, -0.64, 1.0, -1.0, 13.792569659442691, 0.8606811145510832, -13.792569659442691, 1.0, 0.03475000000000006, 1.0, -0.03510101010101016, -0.975, -1.0806825309567203, 1.0, -0.95, -0.025, 2.370597639417811, -2.3705976394178108, 10.698449178570607, -11.083604432603583, -0.2770901108150896, 1.0, -0.025, -0.95, -0.3564, -0.64, 1.0, -1.0, 13.792569659442691, 0.8606811145510832, -13.792569659442691, 1.0, 0.03475000000000006, 1.0, -0.03510101010101016, -0.975, -1.0806825309567203, 1.0, -0.95, -0.025, 2.370597639417811, -2.3705976394178108, 10.698449178570607, -11.083604432603583, -0.2770901108150896, 1.0, -0.025, -0.95, -0.3564, -0.64, 1.0, -1.0, 13.792569659442691, 0.8606811145510832, -13.792569659442691, 1.0, 0.03475000000000006, 1.0, -0.03510101010101016, -0.975, -1.0806825309567203, 1.0, -0.95, -0.025, 2.370597639417811, -2.3705976394178108, 10.698449178570607, -11.083604432603583, -0.2770901108150896, 1.0, -0.025, -0.95, -0.3564, -0.64, 1.0, -1.0, 13.792569659442691, 0.8606811145510832, -13.792569659442691, 1.0, 0.03475000000000006, 1.0, -0.03510101010101016, -0.975, -1.0806825309567203, 1.0, -0.95, -0.025, 2.370597639417811, -2.3705976394178108, 10.698449178570607, -11.083604432603583, -0.2770901108150896, 1.0, -0.025, -0.95, -0.3564, -0.64, 1.0, -1.0, 13.792569659442691, 0.8606811145510832, -13.792569659442691, 1.0, 0.03475000000000006, 1.0, -0.03510101010101016, -0.975, -1.0806825309567203, 1.0, -0.95, -0.025, 2.370597639417811, -2.3705976394178108, 10.698449178570607, -11.083604432603583, -0.2770901108150896, 1.0, -0.025, -0.95, -0.3564, -0.64, 1.0, -1.0, 13.792569659442691, 0.8606811145510832, -13.792569659442691, 1.0, 0.03475000000000006, 1.0, -1.0806825309567203, 1.0, 2.370597639417811, -2.3705976394178108, 10.698449178570607, -11.083604432603583, -0.2770901108150896, 1.0]
77
+ A = SparseMatrixCSC (n, n, colptr, rowval, nzval)
78
+ return (A)
79
+ end
80
+
81
+ A= makeA ()
82
+ u0= fill (0.1 ,size (A,2 ))
83
+ linprob = LinearProblem (A, A* u0)
84
+ u = LinearSolve. solve (linprob, PardisoJL ())
85
+ @test norm (u- u0) < 1.0e-14
86
+
87
+
88
+
67
89
# Testing and demonstrating Pardiso.set_iparm! for MKLPardisoSolver
68
90
solver = Pardiso. MKLPardisoSolver ()
69
91
iparm = [
0 commit comments