Symbolica

Latest version: v0.13.0

Safety actively analyzes 688961 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

0.7.0

**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](https://symbolica.io/docs/get_started.html#updating-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 implement `Real` anymore. Use `.into()` to convert to the wrapper type `Float` that does operations that do not lose precision (see [here](https://gitlab.com/tspiteri/rug/-/issues/64))

0.6.0

**Notable changes**
- Multiple replacements at the same time (see [here](https://reform.zulipchat.com/#narrow/stream/392700-functionality/topic/pattern.20matching/near/439537480))
- `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

0.5.0

**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 of `var`/`vars`/,`fun`/`funs`
- Expressions are now callable and a function is created if the expression is a variable (see [**api>python**](https://reform.zulipchat.com/#narrow/stream/363562-api/topic/python/near/434938578) )

0.4.0

**Notable changes**
- Integration of polynomials and rational polynomials
- Level range restrictions for pattern matching
- `Together` and `apart` for expressions
- Simple algebraic number support
- Add dense univariate polynomial
- Add resultant function for fields and resultant_prs for rings
- Code coverage testing suite
- New Python API documentation

**Upgrade note**
- Rust users will have to replace the module `representations` by `atom`

0.3.0

Notable changes:
- Remove explicit workspace and state construction by the user. This greatly improves Rust ergonomics (see [Zulip](https://reform.zulipchat.com/#narrow/stream/364659-announcements/topic/rust.20ergonomics)) and is one of the final milestones for a Symbolica 1.0 release
- Introduce linear algebra and matrix manipulation
- Performance improvements for rational polynomial arithmetic
- Computational graph generation with C++ output for dependent expressions
- Add numerical integration state importing and exporting for easy use on HPC clusters
- Add convenience methods in Rust that allocate and ones that recycle memory, i.e. `expand()` vs `expand_into(&mut atom)`

0.2.0

Notable changes:
- Conditions on patterns are now logical expressions and use overloaded operators, `&`,`|`,`!` (`~` in Python)
- Replacement now accepts settings, currently the only setting is `non_greedy_wildcards`
- `Function.NUM` has been renamed to `Function.COEFF` and `to_num` to `to_coeff`

Migration guide:

- In Rust, you can now use `into()` to convert a tuple of the wildcard identifier and the pattern restriction into a condition
- In Python `req_ntype(..)` and `req_ngreedy` are deprecated. Use `~x__.req_type(..)` and option `non_greedy_wildcards=[x__]` instead

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.