https://github.com/ufechner7/rubi.jl
Symbolic, rule based integration in Julia
https://github.com/ufechner7/rubi.jl
Last synced: 3 months ago
JSON representation
Symbolic, rule based integration in Julia
- Host: GitHub
- URL: https://github.com/ufechner7/rubi.jl
- Owner: ufechner7
- License: mit
- Created: 2021-03-09T04:51:59.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-03-09T06:08:08.000Z (over 4 years ago)
- Last Synced: 2025-01-17T13:16:05.459Z (5 months ago)
- Language: Julia
- Size: 8.79 KB
- Stars: 6
- Watchers: 4
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Rubi.jl
### Symbolic, rule based integration in JuliaRUBI is a freely available, rule-based integrator.
(See: https://rulebasedintegration.org/ )This package shall provide a pure Julia implemetation of
this integrator.## Current status
When you install this package with the command:
```
using Pkg
Pkg.add(url="https://github.com/ufechner7/Rubi.jl")
Pkg.dev("Rubi")
```
the following happens:1. the rules in pdf format are downloaded and installed in the doc folder
2. the rules in Mathematica format are download and installed in the input folder
3. in all files and folders the spaces are replaced by an underscoreYou can now find the source code of the package and the documentation in the folder:
```
~/.julia/dev/Rubi
```## TODO
1. write a function that extracts the rules in text format from the files in the input folder and stores them in a .yaml file.
2. define the interface to Symbolics.jl
3. create a manual example in Julia that applies one rule
4. create a code generator that creates the Julia code for all rules
5. add tests## Example for some rules
Rule 1.1.1.1.1
```
Int[1/x_,x_Symbol] :=
Log[x]
```Rule 1.1.1.1.2
```
Int[x_^m_.,x_Symbol] :=
x^(m+1)/(m+1)/;
FreeQ[m,x] && NeQ[m,-1]
```
Remark: The last line describes the condition under which the rule applies## How to contribute
If you want to contribute, please explain your ideas at https://github.com/ufechner7/Rubi.jl/discussions ,
fork the repository and create a pull request.