Skip to content

Implement our own structure Forest#190

Merged
gdalle merged 9 commits intomainfrom
forest
Mar 25, 2025
Merged

Implement our own structure Forest#190
gdalle merged 9 commits intomainfrom
forest

Conversation

@amontoison
Copy link
Copy Markdown
Collaborator

@amontoison amontoison commented Feb 14, 2025

#143

  • Implement our own structure Forest with only the routines and attributes that we need for SMC.jl. We don't need anymore a vector with all edges stored (revmap), so it will be great for storage.
  • root_union! returns the index of the root edge now. It was the root edge previously and we needed to recover the index with a dictionary. It's more efficient now.
  • Drop the dependency on DataStructures.jl.
  • Don't compress the forest independently; this is already handled during the creation of the TreeSet now. (see feat: allow neutral colors and postprocessing #166).

@amontoison amontoison added performance Speeding things up benchmark Run benchmarks on PR labels Feb 14, 2025
@amontoison amontoison requested a review from gdalle February 14, 2025 22:24
@codecov
Copy link
Copy Markdown

codecov Bot commented Feb 14, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 100.00%. Comparing base (a113eea) to head (67ad288).
Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #190   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files           14        15    +1     
  Lines         1647      1671   +24     
=========================================
+ Hits          1647      1671   +24     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Feb 14, 2025

Benchmark Results

main 67ad288... main/67ad288da8d644...
coloring/nonsymmetric/bidirectional/direct/n=1000/p=0.002 2.97 ± 0.18 ms 2.98 ± 0.19 ms 0.996
coloring/nonsymmetric/bidirectional/direct/n=1000/p=0.005 7.89 ± 0.39 ms 7.97 ± 0.39 ms 0.99
coloring/nonsymmetric/bidirectional/direct/n=1000/p=0.01 19.5 ± 0.53 ms 19.8 ± 0.44 ms 0.987
coloring/nonsymmetric/bidirectional/direct/n=100000/p=0.0001 5.52 s 5.62 s 0.982
coloring/nonsymmetric/bidirectional/direct/n=100000/p=2.0e-5 0.484 ± 0.017 s 0.493 ± 0.029 s 0.983
coloring/nonsymmetric/bidirectional/direct/n=100000/p=5.0e-5 1.74 ± 0.061 s 1.82 ± 0.068 s 0.958
coloring/nonsymmetric/bidirectional/substitution/n=1000/p=0.002 8.03 ± 0.19 ms 7.33 ± 0.16 ms 1.1
coloring/nonsymmetric/bidirectional/substitution/n=1000/p=0.005 19.8 ± 0.37 ms 17.8 ± 0.19 ms 1.11
coloring/nonsymmetric/bidirectional/substitution/n=1000/p=0.01 0.0443 ± 0.0009 s 0.0396 ± 0.00024 s 1.12
coloring/nonsymmetric/bidirectional/substitution/n=100000/p=0.0001 9.45 s 8.96 s 1.05
coloring/nonsymmetric/bidirectional/substitution/n=100000/p=2.0e-5 1.29 ± 0.1 s 1.2 ± 0.051 s 1.08
coloring/nonsymmetric/bidirectional/substitution/n=100000/p=5.0e-5 3.95 ± 0.12 s 3.77 ± 0.17 s 1.05
coloring/nonsymmetric/column/direct/n=1000/p=0.002 0.489 ± 0.014 ms 0.496 ± 0.014 ms 0.987
coloring/nonsymmetric/column/direct/n=1000/p=0.005 1.22 ± 0.2 ms 1.23 ± 0.21 ms 0.994
coloring/nonsymmetric/column/direct/n=1000/p=0.01 3.08 ± 0.031 ms 3.03 ± 0.027 ms 1.02
coloring/nonsymmetric/column/direct/n=100000/p=0.0001 0.517 ± 0.0077 s 0.533 ± 0.01 s 0.97
coloring/nonsymmetric/column/direct/n=100000/p=2.0e-5 0.0823 ± 0.013 s 0.082 ± 0.013 s 1
coloring/nonsymmetric/column/direct/n=100000/p=5.0e-5 0.207 ± 0.0046 s 0.209 ± 0.0067 s 0.991
coloring/nonsymmetric/row/direct/n=1000/p=0.002 0.476 ± 0.016 ms 0.478 ± 0.014 ms 0.997
coloring/nonsymmetric/row/direct/n=1000/p=0.005 1.19 ± 0.2 ms 1.19 ± 0.21 ms 0.997
coloring/nonsymmetric/row/direct/n=1000/p=0.01 2.97 ± 0.035 ms 2.97 ± 0.039 ms 1
coloring/nonsymmetric/row/direct/n=100000/p=0.0001 0.48 ± 0.0092 s 0.5 ± 0.016 s 0.96
coloring/nonsymmetric/row/direct/n=100000/p=2.0e-5 0.0792 ± 0.013 s 0.0821 ± 0.013 s 0.964
coloring/nonsymmetric/row/direct/n=100000/p=5.0e-5 0.196 ± 0.01 s 0.209 ± 0.0071 s 0.934
coloring/symmetric/column/direct/n=1000/p=0.002 1.55 ± 0.029 ms 1.55 ± 0.027 ms 0.999
coloring/symmetric/column/direct/n=1000/p=0.005 3.99 ± 0.033 ms 4.01 ± 0.035 ms 0.996
coloring/symmetric/column/direct/n=1000/p=0.01 9.68 ± 0.084 ms 9.82 ± 0.08 ms 0.986
coloring/symmetric/column/direct/n=100000/p=0.0001 2.08 ± 0.027 s 2.14 ± 0.016 s 0.973
coloring/symmetric/column/direct/n=100000/p=2.0e-5 0.214 ± 0.0074 s 0.217 ± 0.0052 s 0.99
coloring/symmetric/column/direct/n=100000/p=5.0e-5 0.651 ± 0.035 s 0.67 ± 0.012 s 0.971
coloring/symmetric/column/substitution/n=1000/p=0.002 4 ± 0.077 ms 3.69 ± 0.056 ms 1.09
coloring/symmetric/column/substitution/n=1000/p=0.005 9.82 ± 0.19 ms 8.86 ± 0.13 ms 1.11
coloring/symmetric/column/substitution/n=1000/p=0.01 21.7 ± 0.19 ms 19.7 ± 0.15 ms 1.1
coloring/symmetric/column/substitution/n=100000/p=0.0001 4.02 ± 0.047 s 3.99 ± 0.0084 s 1.01
coloring/symmetric/column/substitution/n=100000/p=2.0e-5 0.55 ± 0.011 s 0.505 ± 0.0086 s 1.09
coloring/symmetric/column/substitution/n=100000/p=5.0e-5 1.6 ± 0.12 s 1.48 ± 0.059 s 1.08
decompress/nonsymmetric/bidirectional/direct/n=1000/p=0.002 0.152 ± 0.0072 ms 0.14 ± 0.0094 ms 1.08
decompress/nonsymmetric/bidirectional/direct/n=1000/p=0.005 0.241 ± 0.0081 ms 0.232 ± 0.0091 ms 1.04
decompress/nonsymmetric/bidirectional/direct/n=1000/p=0.01 0.377 ± 0.013 ms 0.372 ± 0.011 ms 1.01
decompress/nonsymmetric/bidirectional/direct/n=100000/p=0.0001 0.0893 ± 0.0028 s 0.0886 ± 0.0048 s 1.01
decompress/nonsymmetric/bidirectional/direct/n=100000/p=2.0e-5 30.2 ± 1 ms 30.3 ± 1.4 ms 0.998
decompress/nonsymmetric/bidirectional/direct/n=100000/p=5.0e-5 0.058 ± 0.0019 s 0.0565 ± 0.0026 s 1.03
decompress/nonsymmetric/bidirectional/substitution/n=1000/p=0.002 0.16 ± 0.0077 ms 0.156 ± 0.0066 ms 1.02
decompress/nonsymmetric/bidirectional/substitution/n=1000/p=0.005 0.311 ± 0.01 ms 0.313 ± 0.01 ms 0.993
decompress/nonsymmetric/bidirectional/substitution/n=1000/p=0.01 0.612 ± 0.014 ms 0.612 ± 0.013 ms 1
decompress/nonsymmetric/bidirectional/substitution/n=100000/p=0.0001 0.18 ± 0.0078 s 0.203 ± 0.0084 s 0.886
decompress/nonsymmetric/bidirectional/substitution/n=100000/p=2.0e-5 0.0356 ± 0.0017 s 0.038 ± 0.002 s 0.936
decompress/nonsymmetric/bidirectional/substitution/n=100000/p=5.0e-5 0.0768 ± 0.0039 s 0.0803 ± 0.0054 s 0.957
decompress/nonsymmetric/column/direct/n=1000/p=0.002 25.9 ± 1.3 μs 25.6 ± 1.4 μs 1.01
decompress/nonsymmetric/column/direct/n=1000/p=0.005 0.048 ± 0.0024 ms 0.0475 ± 0.0018 ms 1.01
decompress/nonsymmetric/column/direct/n=1000/p=0.01 0.09 ± 0.0045 ms 0.088 ± 0.004 ms 1.02
decompress/nonsymmetric/column/direct/n=100000/p=0.0001 25.6 ± 1.6 ms 24.5 ± 1.5 ms 1.04
decompress/nonsymmetric/column/direct/n=100000/p=2.0e-5 4.49 ± 0.48 ms 4.08 ± 0.27 ms 1.1
decompress/nonsymmetric/column/direct/n=100000/p=5.0e-5 12.2 ± 0.58 ms 11.7 ± 0.42 ms 1.04
decompress/nonsymmetric/row/direct/n=1000/p=0.002 23.8 ± 1.6 μs 24.3 ± 1.5 μs 0.981
decompress/nonsymmetric/row/direct/n=1000/p=0.005 0.0419 ± 0.0016 ms 0.0422 ± 0.0026 ms 0.991
decompress/nonsymmetric/row/direct/n=1000/p=0.01 0.0724 ± 0.0034 ms 0.0744 ± 0.0036 ms 0.972
decompress/nonsymmetric/row/direct/n=100000/p=0.0001 11 ± 0.62 ms 11.6 ± 0.55 ms 0.951
decompress/nonsymmetric/row/direct/n=100000/p=2.0e-5 2.95 ± 0.15 ms 2.98 ± 0.14 ms 0.988
decompress/nonsymmetric/row/direct/n=100000/p=5.0e-5 5.64 ± 0.31 ms 5.81 ± 0.22 ms 0.972
decompress/symmetric/column/direct/n=1000/p=0.002 26.1 ± 2.7 μs 24.8 ± 2.1 μs 1.05
decompress/symmetric/column/direct/n=1000/p=0.005 0.0479 ± 0.0023 ms 0.0456 ± 0.0019 ms 1.05
decompress/symmetric/column/direct/n=1000/p=0.01 0.0862 ± 0.0043 ms 0.0816 ± 0.0048 ms 1.06
decompress/symmetric/column/direct/n=100000/p=0.0001 22.8 ± 1.6 ms 20.8 ± 1 ms 1.1
decompress/symmetric/column/direct/n=100000/p=2.0e-5 3.83 ± 0.58 ms 3.48 ± 0.38 ms 1.1
decompress/symmetric/column/direct/n=100000/p=5.0e-5 10.8 ± 0.37 ms 10.1 ± 0.33 ms 1.07
decompress/symmetric/column/substitution/n=1000/p=0.002 0.103 ± 0.0028 ms 0.105 ± 0.0027 ms 0.979
decompress/symmetric/column/substitution/n=1000/p=0.005 0.197 ± 0.0078 ms 0.189 ± 0.0079 ms 1.05
decompress/symmetric/column/substitution/n=1000/p=0.01 0.327 ± 0.011 ms 0.343 ± 0.012 ms 0.954
decompress/symmetric/column/substitution/n=100000/p=0.0001 0.0899 ± 0.0049 s 0.0925 ± 0.0044 s 0.972
decompress/symmetric/column/substitution/n=100000/p=2.0e-5 26 ± 0.58 ms 26.4 ± 0.59 ms 0.985
decompress/symmetric/column/substitution/n=100000/p=5.0e-5 0.047 ± 0.0009 s 0.0475 ± 0.0011 s 0.99
time_to_load 0.287 ± 0.0017 s 0.238 ± 0.00026 s 1.21
main 67ad288... main/67ad288da8d644...
coloring/nonsymmetric/bidirectional/direct/n=1000/p=0.002 12.7 k allocs: 3.1 MB 12.7 k allocs: 3.1 MB 1
coloring/nonsymmetric/bidirectional/direct/n=1000/p=0.005 29.4 k allocs: 5.67 MB 29.4 k allocs: 5.67 MB 1
coloring/nonsymmetric/bidirectional/direct/n=1000/p=0.01 0.0612 M allocs: 10.6 MB 0.0612 M allocs: 10.6 MB 1
coloring/nonsymmetric/bidirectional/direct/n=100000/p=0.0001 6.05 M allocs: 1.15 GB 6.05 M allocs: 1.15 GB 1
coloring/nonsymmetric/bidirectional/direct/n=100000/p=2.0e-5 1.18 M allocs: 0.324 GB 1.18 M allocs: 0.324 GB 1
coloring/nonsymmetric/bidirectional/direct/n=100000/p=5.0e-5 2.87 M allocs: 0.635 GB 2.87 M allocs: 0.635 GB 1
coloring/nonsymmetric/bidirectional/substitution/n=1000/p=0.002 0.0513 M allocs: 6.71 MB 0.0513 M allocs: 6.61 MB 1.01
coloring/nonsymmetric/bidirectional/substitution/n=1000/p=0.005 0.0978 M allocs: 12.4 MB 0.0978 M allocs: 12 MB 1.03
coloring/nonsymmetric/bidirectional/substitution/n=1000/p=0.01 0.187 M allocs: 23.7 MB 0.187 M allocs: 22.8 MB 1.04
coloring/nonsymmetric/bidirectional/substitution/n=100000/p=0.0001 17.9 M allocs: 2.27 GB 17.9 M allocs: 2.2 GB 1.03
coloring/nonsymmetric/bidirectional/substitution/n=100000/p=2.0e-5 4.93 M allocs: 0.638 GB 4.93 M allocs: 0.623 GB 1.02
coloring/nonsymmetric/bidirectional/substitution/n=100000/p=5.0e-5 9.54 M allocs: 1.24 GB 9.54 M allocs: 1.21 GB 1.03
coloring/nonsymmetric/column/direct/n=1000/p=0.002 0.135 k allocs: 0.354 MB 0.135 k allocs: 0.354 MB 1
coloring/nonsymmetric/column/direct/n=1000/p=0.005 0.135 k allocs: 0.578 MB 0.135 k allocs: 0.578 MB 1
coloring/nonsymmetric/column/direct/n=1000/p=0.01 0.135 k allocs: 0.967 MB 0.135 k allocs: 0.967 MB 1
coloring/nonsymmetric/column/direct/n=100000/p=0.0001 0.135 k allocs: 0.0931 GB 0.135 k allocs: 0.0931 GB 1
coloring/nonsymmetric/column/direct/n=100000/p=2.0e-5 0.135 k allocs: 0.0335 GB 0.135 k allocs: 0.0335 GB 1
coloring/nonsymmetric/column/direct/n=100000/p=5.0e-5 0.135 k allocs: 0.0558 GB 0.135 k allocs: 0.0558 GB 1
coloring/nonsymmetric/row/direct/n=1000/p=0.002 0.135 k allocs: 0.354 MB 0.135 k allocs: 0.354 MB 1
coloring/nonsymmetric/row/direct/n=1000/p=0.005 0.135 k allocs: 0.578 MB 0.135 k allocs: 0.578 MB 1
coloring/nonsymmetric/row/direct/n=1000/p=0.01 0.135 k allocs: 0.967 MB 0.135 k allocs: 0.967 MB 1
coloring/nonsymmetric/row/direct/n=100000/p=0.0001 0.135 k allocs: 0.0931 GB 0.135 k allocs: 0.0931 GB 1
coloring/nonsymmetric/row/direct/n=100000/p=2.0e-5 0.135 k allocs: 0.0335 GB 0.135 k allocs: 0.0335 GB 1
coloring/nonsymmetric/row/direct/n=100000/p=5.0e-5 0.135 k allocs: 0.0558 GB 0.135 k allocs: 0.0558 GB 1
coloring/symmetric/column/direct/n=1000/p=0.002 6.26 k allocs: 0.902 MB 6.26 k allocs: 0.902 MB 1
coloring/symmetric/column/direct/n=1000/p=0.005 14.5 k allocs: 1.72 MB 14.5 k allocs: 1.72 MB 1
coloring/symmetric/column/direct/n=1000/p=0.01 30.6 k allocs: 3.32 MB 30.6 k allocs: 3.32 MB 1
coloring/symmetric/column/direct/n=100000/p=0.0001 3.02 M allocs: 0.38 GB 3.02 M allocs: 0.38 GB 1
coloring/symmetric/column/direct/n=100000/p=2.0e-5 0.589 M allocs: 0.0939 GB 0.589 M allocs: 0.0939 GB 1
coloring/symmetric/column/direct/n=100000/p=5.0e-5 1.44 M allocs: 0.199 GB 1.44 M allocs: 0.199 GB 1
coloring/symmetric/column/substitution/n=1000/p=0.002 25.6 k allocs: 2.92 MB 25.6 k allocs: 2.84 MB 1.03
coloring/symmetric/column/substitution/n=1000/p=0.005 0.0492 M allocs: 5.36 MB 0.0492 M allocs: 5.17 MB 1.04
coloring/symmetric/column/substitution/n=1000/p=0.01 0.0937 M allocs: 10.6 MB 0.0937 M allocs: 10.3 MB 1.03
coloring/symmetric/column/substitution/n=100000/p=0.0001 8.95 M allocs: 1 GB 8.95 M allocs: 0.965 GB 1.04
coloring/symmetric/column/substitution/n=100000/p=2.0e-5 2.47 M allocs: 0.269 GB 2.47 M allocs: 0.262 GB 1.03
coloring/symmetric/column/substitution/n=100000/p=5.0e-5 4.77 M allocs: 0.543 GB 4.77 M allocs: 0.525 GB 1.04
decompress/nonsymmetric/bidirectional/direct/n=1000/p=0.002 0.045 k allocs: 0.197 MB 0.045 k allocs: 0.197 MB 1
decompress/nonsymmetric/bidirectional/direct/n=1000/p=0.005 0.045 k allocs: 0.419 MB 0.045 k allocs: 0.419 MB 1
decompress/nonsymmetric/bidirectional/direct/n=1000/p=0.01 0.045 k allocs: 0.802 MB 0.045 k allocs: 0.802 MB 1
decompress/nonsymmetric/bidirectional/direct/n=100000/p=0.0001 0.045 k allocs: 0.0782 GB 0.045 k allocs: 0.0782 GB 1
decompress/nonsymmetric/bidirectional/direct/n=100000/p=2.0e-5 0.045 k allocs: 19.1 MB 0.045 k allocs: 19.1 MB 1
decompress/nonsymmetric/bidirectional/direct/n=100000/p=5.0e-5 0.045 k allocs: 0.0409 GB 0.045 k allocs: 0.0409 GB 1
decompress/nonsymmetric/bidirectional/substitution/n=1000/p=0.002 0.045 k allocs: 0.197 MB 0.045 k allocs: 0.197 MB 1
decompress/nonsymmetric/bidirectional/substitution/n=1000/p=0.005 0.045 k allocs: 0.419 MB 0.045 k allocs: 0.419 MB 1
decompress/nonsymmetric/bidirectional/substitution/n=1000/p=0.01 0.045 k allocs: 0.802 MB 0.045 k allocs: 0.802 MB 1
decompress/nonsymmetric/bidirectional/substitution/n=100000/p=0.0001 0.045 k allocs: 0.0782 GB 0.045 k allocs: 0.0782 GB 1
decompress/nonsymmetric/bidirectional/substitution/n=100000/p=2.0e-5 0.045 k allocs: 19.1 MB 0.045 k allocs: 19.1 MB 1
decompress/nonsymmetric/bidirectional/substitution/n=100000/p=5.0e-5 0.045 k allocs: 0.0409 GB 0.045 k allocs: 0.0409 GB 1
decompress/nonsymmetric/column/direct/n=1000/p=0.002 0.045 k allocs: 0.197 MB 0.045 k allocs: 0.197 MB 1
decompress/nonsymmetric/column/direct/n=1000/p=0.005 0.045 k allocs: 0.419 MB 0.045 k allocs: 0.419 MB 1
decompress/nonsymmetric/column/direct/n=1000/p=0.01 0.045 k allocs: 0.802 MB 0.045 k allocs: 0.802 MB 1
decompress/nonsymmetric/column/direct/n=100000/p=0.0001 0.045 k allocs: 0.0782 GB 0.045 k allocs: 0.0782 GB 1
decompress/nonsymmetric/column/direct/n=100000/p=2.0e-5 0.045 k allocs: 19.1 MB 0.045 k allocs: 19.1 MB 1
decompress/nonsymmetric/column/direct/n=100000/p=5.0e-5 0.045 k allocs: 0.0409 GB 0.045 k allocs: 0.0409 GB 1
decompress/nonsymmetric/row/direct/n=1000/p=0.002 0.045 k allocs: 0.197 MB 0.045 k allocs: 0.197 MB 1
decompress/nonsymmetric/row/direct/n=1000/p=0.005 0.045 k allocs: 0.419 MB 0.045 k allocs: 0.419 MB 1
decompress/nonsymmetric/row/direct/n=1000/p=0.01 0.045 k allocs: 0.802 MB 0.045 k allocs: 0.802 MB 1
decompress/nonsymmetric/row/direct/n=100000/p=0.0001 0.045 k allocs: 0.0782 GB 0.045 k allocs: 0.0782 GB 1
decompress/nonsymmetric/row/direct/n=100000/p=2.0e-5 0.045 k allocs: 19.1 MB 0.045 k allocs: 19.1 MB 1
decompress/nonsymmetric/row/direct/n=100000/p=5.0e-5 0.045 k allocs: 0.0409 GB 0.045 k allocs: 0.0409 GB 1
decompress/symmetric/column/direct/n=1000/p=0.002 0.045 k allocs: 0.197 MB 0.045 k allocs: 0.197 MB 1
decompress/symmetric/column/direct/n=1000/p=0.005 0.045 k allocs: 0.419 MB 0.045 k allocs: 0.419 MB 1
decompress/symmetric/column/direct/n=1000/p=0.01 0.045 k allocs: 0.802 MB 0.045 k allocs: 0.802 MB 1
decompress/symmetric/column/direct/n=100000/p=0.0001 0.045 k allocs: 0.0782 GB 0.045 k allocs: 0.0782 GB 1
decompress/symmetric/column/direct/n=100000/p=2.0e-5 0.045 k allocs: 19.1 MB 0.045 k allocs: 19.1 MB 1
decompress/symmetric/column/direct/n=100000/p=5.0e-5 0.045 k allocs: 0.0409 GB 0.045 k allocs: 0.0409 GB 1
decompress/symmetric/column/substitution/n=1000/p=0.002 0.045 k allocs: 0.197 MB 0.045 k allocs: 0.197 MB 1
decompress/symmetric/column/substitution/n=1000/p=0.005 0.045 k allocs: 0.419 MB 0.045 k allocs: 0.419 MB 1
decompress/symmetric/column/substitution/n=1000/p=0.01 0.045 k allocs: 0.802 MB 0.045 k allocs: 0.802 MB 1
decompress/symmetric/column/substitution/n=100000/p=0.0001 0.045 k allocs: 0.0782 GB 0.045 k allocs: 0.0782 GB 1
decompress/symmetric/column/substitution/n=100000/p=2.0e-5 0.045 k allocs: 19.1 MB 0.045 k allocs: 19.1 MB 1
decompress/symmetric/column/substitution/n=100000/p=5.0e-5 0.045 k allocs: 0.0409 GB 0.045 k allocs: 0.0409 GB 1
time_to_load 0.159 k allocs: 11.2 kB 0.159 k allocs: 11.2 kB 1

Comment thread src/forest.jl Outdated
Copy link
Copy Markdown
Member

@gdalle gdalle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks really promising! In addition to the remarks below, would it be possible to add tests that specifically target the Forest structure, regardless from coloring?

Comment thread src/forest.jl Outdated
Comment thread src/forest.jl Outdated
Comment thread src/forest.jl Outdated
Comment thread src/forest.jl Outdated
Comment thread src/forest.jl
Comment thread src/forest.jl Outdated
@amontoison
Copy link
Copy Markdown
Collaborator Author

@gdalle
I added some unit tests for the structure Forest as you requested last week.

@gdalle gdalle merged commit 1e8127c into main Mar 25, 2025
6 checks passed
@gdalle gdalle deleted the forest branch March 25, 2025 20:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

benchmark Run benchmarks on PR performance Speeding things up

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants