Skip to content

Commit 1388397

Browse files
committed
generalized the various implementation
1 parent 8173166 commit 1388397

File tree

4 files changed

+178
-146
lines changed

4 files changed

+178
-146
lines changed

perf/linear_eq.jl

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,25 @@ end
1818

1919
function benchmark(max=10)
2020
df = DataFrame()
21-
df[:Method] = ["Array", "MArray", "SArray1", "SArray2", "Contractor"]
21+
df[:Method] = ["Array", "MArray", "SArray", "Contractor", "ContractorMArray", "ContractorSArray"]
2222
for n in 1:max
2323
A, mA, sA = randMat(n)
2424
b, mb, sb = randVec(n)
2525
t1 = @belapsed gauss_seidel_interval($A, $b)
26-
t2 = @belapsed gauss_seidel_interval_static($mA, $mb)
27-
t3 = @belapsed gauss_seidel_interval_static1($sA, $sb)
28-
t4 = @belapsed gauss_seidel_interval_static2($sA, $sb)
29-
t5 = @belapsed gauss_seidel_contractor($A, $b)
30-
df[Symbol("n = $n")] = [t1, t2, t3, t4, t5]
26+
t2 = @belapsed gauss_seidel_interval($mA, $mb)
27+
t3 = @belapsed gauss_seidel_interval($sA, $sb)
28+
t4 = @belapsed gauss_seidel_contractor($A, $b)
29+
t5 = @belapsed gauss_seidel_contractor($mA, $mb)
30+
t6 = @belapsed gauss_seidel_contractor($sA, $sb)
31+
df[Symbol("$n")] = [t1, t2, t3, t4, t5, t6]
3132
end
3233
a = []
3334
for i in 1:max
34-
push!(a, Symbol("n = $i"))
35+
push!(a, Symbol("$i"))
3536
end
3637
df1 = stack(df, a)
3738
dfnew = unstack(df1, :variable, :Method, :value)
39+
dfnew = rename(dfnew, :variable => :n)
3840
println(dfnew)
3941
dfnew
4042
end

perf/linear_eq_tabular.txt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,17 @@
2020
│ 18 │ n = 18 │ 0.00167176 │ 0.00159463 │ 0.043795 │ 0.00181409 │ 0.00162584 │
2121
│ 19 │ n = 19 │ 0.0018632 │ 0.00185617 │ 0.0549107 │ 0.00208529 │ 0.00196587 │
2222
│ 20 │ n = 20 │ 0.0020604 │ 0.00210595 │ 0.0635598 │ 0.00232704 │ 0.00212374 │
23+
24+
10×7 DataFrames.DataFrame
25+
│ Row │ n │ Array │ Contractor │ ContractorMArray │ ContractorSArray │ MArray │ SArray │
26+
├─────┼────┼─────────────┼─────────────┼──────────────────┼──────────────────┼─────────────┼─────────────┤
27+
│ 1 │ 1 │ 1.0188e-5 │ 2.5276e-5 │ 0.000781355 │ 0.000764627 │ 1.6959e-5 │ 1.1216e-5 │
28+
│ 2 │ 10 │ 0.000377853 │ 0.000407817 │ 0.00122723 │ 0.00123259 │ 0.0029247 │ 0.000393896 │
29+
│ 3 │ 2 │ 2.609e-5 │ 4.3597e-5 │ 0.000802467 │ 0.000796962 │ 4.1039e-5 │ 2.6654e-5 │
30+
│ 4 │ 3 │ 4.7362e-5 │ 6.317e-5 │ 0.000832029 │ 0.000821289 │ 9.1695e-5 │ 4.7007e-5 │
31+
│ 5 │ 4 │ 7.0378e-5 │ 9.1502e-5 │ 0.00085429 │ 0.000844048 │ 0.000163604 │ 7.1166e-5 │
32+
│ 6 │ 5 │ 0.000104813 │ 0.000129112 │ 0.000898626 │ 0.000889969 │ 0.000268756 │ 0.000112476 │
33+
│ 7 │ 6 │ 0.000142316 │ 0.000168891 │ 0.000941422 │ 0.000922727 │ 0.000430442 │ 0.000146906 │
34+
│ 8 │ 7 │ 0.000192073 │ 0.000218861 │ 0.00108794 │ 0.000997821 │ 0.00073304 │ 0.000198962 │
35+
│ 9 │ 8 │ 0.000242832 │ 0.000273341 │ 0.00107159 │ 0.00106769 │ 0.00126407 │ 0.000250956 │
36+
│ 10 │ 9 │ 0.000308256 │ 0.000333722 │ 0.00116203 │ 0.00116428 │ 0.00196451 │ 0.000314499 │

src/IntervalRootFinding.jl

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,10 @@ export
2121
bisect, newton1d, slope,
2222
slope_newton1d,
2323
gauss_seidel_interval, gauss_seidel_interval!,
24-
gauss_seidel_contractor, gauss_seidel_contractor!,
25-
gauss_seidel_interval_static1, gauss_seidel_interval_static1!
24+
gauss_seidel_contractor, gauss_seidel_contractor!
25+
# gauss_seidel_interval_static1, gauss_seidel_interval_static1!
26+
# gauss_seidel_interval_static2, gauss_seidel_interval_static2!
27+
# gauss_seidel_interval_static, gauss_seidel_interval_static!
2628

2729
export isunique, root_status
2830

0 commit comments

Comments
 (0)