Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/benruijl/reform
A symbolic manipulation toolkit which aims to handle expressions with billions of terms
https://github.com/benruijl/reform
computer-algebra mathematics physics symbolic-manipulation
Last synced: 2 months ago
JSON representation
A symbolic manipulation toolkit which aims to handle expressions with billions of terms
- Host: GitHub
- URL: https://github.com/benruijl/reform
- Owner: benruijl
- License: mit
- Created: 2018-10-01T10:21:20.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-11T14:53:54.000Z (about 2 years ago)
- Last Synced: 2024-07-30T17:49:50.448Z (6 months ago)
- Topics: computer-algebra, mathematics, physics, symbolic-manipulation
- Language: Rust
- Homepage:
- Size: 691 KB
- Stars: 23
- Watchers: 7
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
**DISCONTINUED** - check out [Symbolica](https://github.com/benruijl/symbolica) (in early development) or [FORM](https://github.com/vermaseren/form) for an alternative.
reFORM
---------reFORM is a symbolic manipulation toolkit which aims to handle expressions with billions
of terms, taking up terabytes of diskspace. In the future, it may be an alternative to [FORM](https://github.com/vermaseren/form).At the moment reFORM is in early development and cannot handle extreme workloads yet. However,
there are many components that work. Specifically, the C and [Python API](https://reform.readthedocs.io/en/latest/api.html) is fully functional.For an overview of all the reFORM features, see the [manual](https://reform.readthedocs.io/en/latest/).
Quick example
----````
expr F = f(x,2,3,y);
apply {
id f(?a,x?{>2},?b) = f(?b,?a);
print;
}
````
This program creates an expression `F` and applies an `id` statement to its term. This statement matches a pattern on the left hand side and modifies it. `?a` and `?b` matches any number of arguments, and `x?{>2}` will match a number larger than two.The ouput is:
```
f(y,x,2)
```