- Rust 96.8%
- Go 3.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
All checks were successful
Run tests / test-rust (push) Successful in 15s
Reviewed-on: #1 |
||
| .forgejo/workflows | ||
| benches | ||
| examples | ||
| pipelines | ||
| src | ||
| .gitignore | ||
| .gitmodules | ||
| Cargo.lock | ||
| Cargo.toml | ||
| dagger.json | ||
| LICENSE | ||
| README.org | ||
RAnT
A Rust library for numerical simulation of non-linear systems.
Idea
This library aims to be an alternative to other numerical simulators. The tool AnT, that I was using extensively during my masters thesis, is the inspiration for this project.
In contrast to the tool mentioned above, with this library one writes the function of interest in rust code and passes it to the appropriate library functions for simulation and analysis. We hope to achieve performance improvements through compiler optimizations and static linking.
Roadmap [7/10]
-
Simulate 1D floating-point R -> R functions
- Cycles and Periods
- Scanning parameters 1D
- Test performance of generic S -> S functions
- Test logistic period results
- ND scans
- Write result to file
- Parallelization
-
More scanning options
- initial states (keep from last scan point)
- multi dimensional for both initial states and parameters
-
Image generation
- prototype
- library
- Interactive image generation (zoom and pan)
Design decisions
No implementation of extra library functions for 1D functions
A benchmarking of a generic implementation and a static implementation for 1D functions found no significant difference (58ms vs. 60ms). Suprisingly, the generic implementation was a little faster. Therefore, we will only keep the generic implementation for improved maintenance.
Parallelization
- Parallel iterators thanks to rayon
- Each iterator computes one line sequentially at a time