-
Notifications
You must be signed in to change notification settings - Fork 15
Permit n-argument operators #127
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
See JuliaLang/julia#55076 for details
function OperatorEnum(binary_operators::Tuple, unary_operators::Tuple) | ||
return OperatorEnum((unary_operators, binary_operators)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should add a depwarn here
Pull Request Test Coverage Report for Build 14946536677Details
💛 - Coveralls |
This comment was marked as outdated.
This comment was marked as outdated.
This was from `tree` being treated as an iterator!
Benchmark Results (Julia v1)Time benchmarks
Memory benchmarks
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok I've pretty much verified that SymbolicRegression.jl works on this without a single change needed within SR. So I think it's safe to say that this is backwards compatible. No need for a 2.0 release!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actually I take that back. I think a full breaking change Node{T}
to Node{T,D}
would be much cleaner longterm. I am not a fan of having a separate NNode{T,D}
type to deal with this. DE.jl also isn't used too much apart from in SymbolicRegression.jl (yet).
So, let's do a 2.0 release.
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:
CHANGELOG.md
Either split types, orget generic type to match existing performance forConsider using::Union{Nothing,N}
rather thanRef
Base.Cartesian
version.l
and.r
(temporarily set these to be errors)Introduce aliasNode{T} = NNode{T,2}
for full backwards compatibility