|
1 |
| -<h1 align="center"> |
2 |
| - <br> |
3 |
| - <picture> |
4 |
| - <source media="(prefers-color-scheme: dark)" srcset="https://symbolica.io/logo_dark.svg"> |
5 |
| - <source media="(prefers-color-scheme: light)" srcset="https://symbolica.io/logo.svg"> |
6 |
| - <img src="https://symbolica.io/logo.svg" alt="logo" width="200"> |
7 |
| -</picture> |
8 |
| - <br> |
9 |
| -</h1> |
| 1 | +# <h1 align="center"> Disclaimer </h1> |
10 | 2 |
|
11 |
| -<p align="center"> |
12 |
| -<a href="https://symbolica.io"><img alt="Symbolica website" src="https://img.shields.io/static/v1?label=symbolica&message=website&color=orange&style=flat-square"></a> |
13 |
| - <a href="https://reform.zulipchat.com"><img alt="Zulip Chat" src="https://img.shields.io/static/v1?label=zulip&message=discussions&color=blue&style=flat-square"></a> |
14 |
| - <a href="https://github.com/benruijl/symbolica"><img alt="Symbolica website" src="https://img.shields.io/static/v1?label=github&message=development&color=green&style=flat-square&logo=github"></a> |
15 |
| - <a href="https://app.codecov.io/gh/benruijl/symbolica"><img alt="Codecov" src="https://img.shields.io/codecov/c/github/benruijl/symbolica?token=N43MATK5XJ&style=flat-square"></a> |
16 |
| -</p> |
| 3 | +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. |
17 | 4 |
|
18 |
| -# Symbolica ⊆ Modern Computer Algebra |
19 |
| - |
20 |
| -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. |
21 |
| -Check out the live [Jupyter Notebook demo](https://colab.research.google.com/drive/1VAtND2kddgBwNt1Tjsai8vnbVIbgg-7D?usp=sharing)! |
22 |
| - |
23 |
| -For documentation and more, see [symbolica.io](https://symbolica.io). |
24 |
| - |
25 |
| - |
26 |
| - |
27 |
| -## Quick Example |
28 |
| - |
29 |
| -Symbolica allows you to build and manipulate mathematical expressions, for example from a Jupyter Notebook: |
30 |
| - |
31 |
| -<picture> |
32 |
| - <source media="(prefers-color-scheme: dark)" srcset="https://symbolica.io/resources/demo.dark.svg"> |
33 |
| - <source media="(prefers-color-scheme: light)" srcset="https://symbolica.io/resources/demo.light.svg"> |
34 |
| - <img width="600" alt="A demo of Symbolica" src="https://symbolica.io/resources/demo.light.svg"> |
35 |
| -</picture> |
36 |
| - |
37 |
| -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: |
38 |
| - |
39 |
| -<picture> |
40 |
| - <source media="(prefers-color-scheme: dark)" srcset="https://symbolica.io/resources/completion.png"> |
41 |
| - <source media="(prefers-color-scheme: light)" srcset="https://symbolica.io/resources/completion_light.png"> |
42 |
| - <img width="600" alt="A demo of Symbolica" src="https://symbolica.io/resources/completion.png"> |
43 |
| -</picture> |
44 |
| - |
45 |
| -# Installation |
46 |
| - |
47 |
| -Visit the [Get Started](https://symbolica.io/docs/get_started.html) page for detailed installation instructions. |
48 |
| - |
49 |
| -## Python |
50 |
| - |
51 |
| -Symbolica can be installed for Python >3.5 using `pip`: |
52 |
| - |
53 |
| -```sh |
54 |
| -pip install symbolica |
55 |
| -``` |
56 |
| - |
57 |
| -## Rust |
58 |
| - |
59 |
| -If you want to use Symbolica as a library in Rust, simply include it in the `Cargo.toml`: |
60 |
| - |
61 |
| -```toml |
62 |
| -[dependencies] |
63 |
| -symbolica = "0.15" |
64 |
| -``` |
65 |
| - |
66 |
| -# Examples |
67 |
| - |
68 |
| -Below we list some examples of the features of Symbolica. Check the [guide](https://symbolica.io/docs/) for a complete overview. |
69 |
| - |
70 |
| -### Pattern matching |
71 |
| - |
72 |
| -Variables ending with a `_` are wildcards that match to any subexpression. |
73 |
| -In the following example we try to match the pattern `f(w1_,w2_)`: |
74 |
| - |
75 |
| -```python |
76 |
| -from symbolica import * |
77 |
| -x, y, w1_, w2_, f = S('x','y','w1_','w2_', 'f') |
78 |
| -e = f(3,x)*y**2+5 |
79 |
| -r = e.replace_all(f(w1_,w2_), f(w1_ - 1, w2_**2)) |
80 |
| -print(r) |
81 |
| -``` |
82 |
| -which yields `y^2*f(2,x^2)+5`. |
83 |
| - |
84 |
| -### Solving a linear system |
85 |
| - |
86 |
| -Solve a linear system in `x` and `y` with a parameter `c`: |
87 |
| - |
88 |
| -```python |
89 |
| -from symbolica import * |
90 |
| - |
91 |
| -x, y, c, f = S('x', 'y', 'c', 'f') |
92 |
| - |
93 |
| -x_r, y_r = Expression.solve_linear_system( |
94 |
| - [f(c)*x + y + c, y + c**2], [x, y]) |
95 |
| -print('x =', x_r, ', y =', y_r) |
96 |
| -``` |
97 |
| -which yields `x = (-c+c^2)*f(c)^-1` and `y = -c^2`. |
98 |
| - |
99 |
| -### Series expansion |
100 |
| - |
101 |
| -Perform a series expansion in `x`: |
102 |
| - |
103 |
| -```python |
104 |
| -from symbolica import * |
105 |
| -e = E('exp(5+x)/(1-x)').series(S('x'), 0, 3) |
106 |
| - |
107 |
| -print(e) |
108 |
| -``` |
109 |
| -which yields `(exp(5))+(2*exp(5))*x+(5/2*exp(5))*x^2+(8/3*exp(5))*x^3+𝒪(x^4)`. |
110 |
| - |
111 |
| -### Rational arithmetic |
112 |
| - |
113 |
| -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: |
114 |
| -```python |
115 |
| -from symbolica import * |
116 |
| -p = E('(x*y^2*5+5)^2/(2*x+5)+(x+4)/(6*x^2+1)').to_rational_polynomial() |
117 |
| -print(p) |
118 |
| -``` |
119 |
| -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)`. |
120 |
| - |
121 |
| -## Development |
122 |
| - |
123 |
| -Follow the development and discussions on [Zulip](https://reform.zulipchat.com)! |
| 5 | +Make sure to instead use the original codebase available [here](https://github.com/benruijl/symbolica). |
0 commit comments