github JuliaSymbolics/Symbolics.jl v7.0.0

9 hours ago

Symbolics v7.0.0

Diff since v6.57.0

Breaking changes

This version updates Symbolics.jl to use SymbolicUtils.jl's new v4 release. A large part of the array semantics have been moved to SymbolicUtils.

  • Due to the new Const variant of BasicSymbolic, Num and Arr both wrap BasicSymbolic{SymReal}. unwrap returns the contained BasicSymbolic. This is in contrast to the previous behavior, where the wrapped value was ::Any and unwrap would return either a Number/array or the symbolic. Symbolics.value recovers this behavior. While previously it was an alias for unwrap, now it is an alias for unwrap_const(unwrap(x)).
  • ArrayOp is moved to SymbolicUtils. ArrayMaker have been temporarily removed and will be revived in SymbolicUtils.
  • The @register_array_symbolic macro now has a soft requirement to specify the ndims of the result for improved correctness guarantees.
  • Custom derivative rules for registered functions used to be defined by adding methods to Symbolics.derivative. This behavior is now removed in favor of using the @register_derivative macro. Querying the rules requires using the @derivative_rule macro. A non-macro workflow may be exposed in the future.
  • Symbolics.CallWithMetadata is now removed. Callable symbolics now always transfer metadata to the result. CallAndWrap is added, which wraps the result of calling the inner BasicSymbolic in the appropriate wrapper type (Num/Arr).

For further information it is highly recommended to refer to the documentation for SymbolicUtils.jl at https://docs.sciml.ai/SymbolicUtils/stable/ and specifically the page on the new variant structure.

Merged pull requests:

Closed issues:

  • WARNING: Code.get_symbolify is deprecated, use get_rewrites instead. (#918)

Don't miss a new Symbolics.jl release

NewReleases is sending notifications on new releases.