diff --git a/Readme.md b/Readme.md index 69229c79..26938f04 100644 --- a/Readme.md +++ b/Readme.md @@ -1,123 +1,9 @@ -

-
- - - - logo - -
-

-

-Symbolica website - Zulip Chat - Symbolica website - Codecov -

- -# Symbolica ⊆ Modern Computer Algebra - -Symbolica is a blazing fast computer algebra system for Python and Rust, born of a need to push the boundaries of computations in science and enterprise. -Check out the live [Jupyter Notebook demo](https://colab.research.google.com/drive/1VAtND2kddgBwNt1Tjsai8vnbVIbgg-7D?usp=sharing)! - -For documentation and more, see [symbolica.io](https://symbolica.io). - - - -## Quick Example - -Symbolica allows you to build and manipulate mathematical expressions, for example from a Jupyter Notebook: - - - - - A demo of Symbolica - - -You are able to perform these operations from the comfort of a programming language that you (probably) already know, by using Symbolica's bindings to Python and Rust: - - - - - A demo of Symbolica - - -# Installation - -Visit the [Get Started](https://symbolica.io/docs/get_started.html) page for detailed installation instructions. - -## Python - -Symbolica can be installed for Python >3.5 using `pip`: - -```sh -pip install symbolica -``` - -## Rust - -If you want to use Symbolica as a library in Rust, simply include it in the `Cargo.toml`: +#

Disclaimer

-```toml -[dependencies] -symbolica = "0.13" -``` +This fork of the symbolica code is not meant to be used outside of the context of the [γLoop](https://github.com/alphal00p/gammaloop) project as it contains custom modifications that may not be suitable for a generic use. -# Examples - -Below we list some examples of the features of Symbolica. Check the [guide](https://symbolica.io/docs/) for a complete overview. - -### Pattern matching - -Variables ending with a `_` are wildcards that match to any subexpression. -In the following example we try to match the pattern `f(w1_,w2_)`: - -```python -from symbolica import * -x, y, w1_, w2_, f = S('x','y','w1_','w2_', 'f') -e = f(3,x)*y**2+5 -r = e.replace_all(f(w1_,w2_), f(w1_ - 1, w2_**2)) -print(r) -``` -which yields `y^2*f(2,x^2)+5`. - -### Solving a linear system - -Solve a linear system in `x` and `y` with a parameter `c`: - -```python -from symbolica import * - -x, y, c, f = S('x', 'y', 'c', 'f') - -x_r, y_r = Expression.solve_linear_system( - [f(c)*x + y + c, y + c**2], [x, y]) -print('x =', x_r, ', y =', y_r) -``` -which yields `x = (-c+c^2)*f(c)^-1` and `y = -c^2`. - -### Series expansion - -Perform a series expansion in `x`: - -```python -from symbolica import * -e = E('exp(5+x)/(1-x)').series(S('x'), 0, 3) - -print(e) -``` -which yields `(exp(5))+(2*exp(5))*x+(5/2*exp(5))*x^2+(8/3*exp(5))*x^3+𝒪(x^4)`. - -### Rational arithmetic - -Symbolica is world-class in rational arithmetic, outperforming Mathematica, Maple, Form, Fermat, and other computer algebra packages. Simply convert an expression to a rational polynomial: -```python -from symbolica import * -p = E('(x*y^2*5+5)^2/(2*x+5)+(x+4)/(6*x^2+1)').to_rational_polynomial() -print(p) -``` -which yields `(45+13*x+50*x*y^2+152*x^2+25*x^2*y^4+300*x^3*y^2+150*x^4*y^4)/(5+2*x+30*x^2+12*x^3)`. - -## Development - -Follow the development and discussions on [Zulip](https://reform.zulipchat.com)! \ No newline at end of file +Make sure to instead use the original codebase available [here](https://github.com/benruijl/symbolica). +

+Compatibility tests with gammaLoop +