Skip to content

Conversation

@MilesCranmer
Copy link
Member

@MilesCranmer MilesCranmer commented May 10, 2025

This opens up DynamicExpressions.jl to D-degree nodes via an additional type parameters. This is still a work-in-progress, but I wanted to track the TODO's here.

TODO:

  • Write upgrade guide
  • Tests
    • Test string paths
    • Random expression evals for arbitrary arity, compare against Julia evaluation
    • 100% diff coverage (improved coverage; but not 100)
  • Performance
    • Evaluation performance (seems to be roughly the same now)
    • Allocation performance (at the moment, it seems to result in double the # of allocations, and 33% greater memory usage)
    • Either split types, or get generic type to match existing performance for
    • Consider using ::Union{Nothing,N} rather than Ref
    • Profile SymbolicRegression.jl against the diff.
      • Need to get DynamicDiff.jl working first.
  • Feature coverage
    • Generic operator enum compatibility
    • Derivative compatibility
    • Preallocation compatibility
    • LoopVectorization.jl compat
    • Bumper.jl compat
    • Verify graph node compat
    • Verify simplification compat
  • Cleaning
    • Simplify evaluation code with generic Base.Cartesian version
    • Manually verify no internal uses of .l and .r (temporarily set these to be errors)
    • Introduce alias Node{T} = NNode{T,2} for full backwards compatibility

@MilesCranmer MilesCranmer changed the base branch from n-arity to master May 10, 2025 13:11
@coveralls

This comment was marked as outdated.

@github-actions

This comment was marked as outdated.

@codecov
Copy link

codecov bot commented Jun 14, 2025

Codecov Report

Attention: Patch coverage is 98.20051% with 14 lines in your changes missing coverage. Please review.

Project coverage is 96.68%. Comparing base (294f789) to head (73ad287).
Report is 126 commits behind head on master.

Files with missing lines Patch % Lines
src/OperatorEnumConstruction.jl 94.68% 5 Missing ⚠️
src/EvaluateDerivative.jl 93.93% 4 Missing ⚠️
src/Evaluate.jl 98.78% 2 Missing ⚠️
ext/DynamicExpressionsBumperExt.jl 93.33% 1 Missing ⚠️
src/Node.jl 99.00% 1 Missing ⚠️
src/base.jl 98.33% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #127      +/-   ##
==========================================
+ Coverage   94.63%   96.68%   +2.04%     
==========================================
  Files          33       30       -3     
  Lines        2723     2591     -132     
==========================================
- Hits         2577     2505      -72     
+ Misses        146       86      -60     

☔ 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.

@MilesCranmer MilesCranmer merged commit b80be2a into master Jun 15, 2025
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants