11using BenchmarkTools
22using LinearAlgebra
33using SparseMatrixColorings
4+ import SparseMatrixColorings as SMC
45using SparseArrays
56using StableRNGs
67
@@ -29,13 +30,13 @@ for structure in [:nonsymmetric, :symmetric],
2930 results = [coloring (A, problem, algo; decompression_eltype= Float64) for A in As]
3031 Bs = [compress (Float64 .(A), result) for (A, result) in zip (As, results)]
3132
32- SUITE[ :coloring ][structure][partition][decompression][ " n= $n " ][ " p= $p " ] = @benchmarkable begin
33+ bench_col = @benchmarkable begin
3334 for A in $ As
3435 coloring (A, $ problem, $ algo)
3536 end
3637 end
3738
38- SUITE[ :decompress ][structure][partition][decompression][ " n= $n " ][ " p= $p " ] = @benchmarkable begin
39+ bench_dec = @benchmarkable begin
3940 for (B, result) in zip ($ Bs, $ results)
4041 if B isa AbstractMatrix
4142 decompress (B, result)
@@ -44,4 +45,34 @@ for structure in [:nonsymmetric, :symmetric],
4445 end
4546 end
4647 end
48+
49+ SUITE[:coloring ][structure][partition][decompression][" n=$n " ][" p=$p " ] = bench_col
50+ SUITE[:decompress ][structure][partition][decompression][" n=$n " ][" p=$p " ] = bench_dec
51+ end
52+
53+ for structure in [:nonsymmetric , :symmetric ],
54+ order in [LargestFirst (), SmallestLast (), IncidenceDegree (), DynamicLargestFirst ()],
55+ n in [10 ^ 3 , 10 ^ 5 ],
56+ p in [2 / n, 5 / n, 10 / n]
57+
58+ nb_samples = 5
59+ As = [sparse (Symmetric (sprand (StableRNG (i), Bool, n, n, p))) for i in 1 : nb_samples]
60+ if structure == :symmetric
61+ gs = [SMC. AdjacencyGraph (A) for A in As]
62+ bench_ord = @benchmarkable begin
63+ for g in $ gs
64+ SMC. vertices (g, $ order)
65+ end
66+ end
67+ else
68+ gs = [SMC. BipartiteGraph (A) for A in As]
69+ bench_ord = @benchmarkable begin
70+ for g in $ gs
71+ SMC. vertices (g, Val (1 ), $ order)
72+ SMC. vertices (g, Val (2 ), $ order)
73+ end
74+ end
75+ end
76+
77+ SUITE[:order ][structure][string (order)][" n=$n " ][" p=$p " ] = bench_ord
4778end
0 commit comments