Releases: benruijl/symbolica
Releases · benruijl/symbolica
Symbolica 0.14.0
Symbolica 0.14.0 has been released!
Notable changes
- Simplify the Rust API, document modules and provide more examples in the documentation. This should help new users get accustomed to Symbolica faster. Check out https://docs.rs/symbolica/latest/symbolica/!
- Control flow and conditions in transformers (see #functionality>transformers@485823833)
- Allow for directed graphs in graph generation
- Collect in multiple variables and in coefficients (see #functionality>collect@484467423)
- Faster expansions and collect by conversion to polynomials
- Complex root approximation (see #functionality>numerical solving@479463685)
Upgrade notice
The Rust API went through significant change:
- You need to use
AtomCore
for most basic features on atoms. Atom-like arguments are now generic overAtomCore
, soas_view
calls can be removed. - Pattern matching now has a unified API (accepting
None
as arguments), andAtomCore::pattern_match
's return type implementsIterator
Replacement
andFunctionMap
no longer depend on referenced valuesState::get_symbol
is nowSymbol::new
.State
should not be used directly anymore.
Symbolica 0.13.0
Symbolica 0.13.0 as been released!
Notable changes
Symbolica 0.12.0
Symbolica 0.12.0 has been released!
Notable changes
Symbolica v0.11.0
Symbolica 0.11.0 is released 🎊 It's quite feature-packed and has many ergonomic improvements:
Notable changes
- Graph generation
- Graph API for Pyton
- Native Windows support! You can now
pip install symbolica
on native Windows. - Introduce short-hand notation
S
,E
,N
to define symbols, expressions and numbers in Python - Fused
symbols
andsymbol
- Right-hand side of replacement can now be a function
- Pattern filter based on the matches so far
- Determine size of automorphism group of graphs
- Support antisymmetric tensor canonization
Upgrade notice
Expression.symbols
has been deprecated, you can now always useExpression.symbol
. You can also just writeS
.- The RHS of replacements is no longer a pattern and requires an extra
into()
to convert from a pattern - The match conditions also require an extra
into()
to support match stack filter functions
v0.10.0
Symbolica 0.9.0
Symbolica 0.9.0 is released!
Notable changes
- Optimized nested expression evaluation with C++ and ASM output modes
- Seamlessly load compiled evaluation library
- Add cycle-symmetrization transformer
- Improve Rust ergonomics
Symbolica 0.8.0
Symbolica 0.8.0 is released!
Notable changes
- Support for floating point coefficients, parsing of floats in standard and exp-notation
- Precision tracking floating point numbers
- Galois fields (also in Python API)
- Factorization of polynomials over Galois fields and algebraic numbers
- Extension of algebraic numbers, e.g. joining
sqrt(2)
andsqrt(3)
- Linearization transformer
Symbolica 0.7.0
Symbolica 0.7.0 is released!
License changes
- Non-commercial users are now allowed to run Symbolica on one core and instance per device for free without requiring a sign-up
- License keys will now work offline. Remember to update the key!
Notable changes
- Multiprecision floats can be used for evaluations
- Introduce error propagating float
- Series can now be constructed using a relative depth
Upgrade notice
- Offline keys have been deprecated
rug::Float
does not implementReal
anymore. Use.into()
to convert to the wrapper typeFloat
that does operations that do not lose precision (see here)
Symbolica 0.6.0
Symbolica 0.6.0 is released!
Notable changes
- Multiple replacements at the same time (see here)
cancel
function that cancels common factors between numerators and denominators- Arithmetical operator overloading for series and atoms
- Square brackets will be parsed as parentheses for functions
Upgrade note
- The
coefficient_list
function now handles multivariate polynomials and therefore its signature has changed
Symbolica 0.5.0
Symbolica 0.5.0 is released!
Notable changes
- Puiseux series expansion support with additional support for
log(x)
- Term streaming for very large expressions
- Import/export of expressions and state (Rust only for now)
- Option to expand in particular variable
Upgrade note
- Define variables and symbols in Python API using
symbol
/symbols
, instead ofvar
/vars
/,fun
/funs
- Expressions are now callable and a function is created if the expression is a variable (see #api>python )