An open source computer algebra system focused on solving frustrating integrals. Comes with a website.
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.
To build the library in cas
you Rust installed. To build the website, you
additionally need npm and jest.
Build the library:
cd ihateintegrals
cargo build
Run the cas cli test tool:
cd ihateintegrals
echo "[\"Integral\", [\"Divide\", [\"Sum\", [\"Product\", {\"num\": 3}, [\"Exponent\", {\"var\": \"x\"}, {\"num\": 2}]], {\"var\": \"x\"}, {\"num\": 2}], [\"Divide\", {\"num\": 1}, [\"Product\", {\"num\": 2}, {\"var\": \"x\"}]]], {\"var\": \"x\"}]
" | cargo run -- --depth 20 --report-statistics --max-derivations 5000
Build the website:
npm run build
npm run serve # Starts local dev server at localhost:8080
Explain how to run the automated tests for this system
Tests for the website are run with npm run test
. The library is tested with
the cargo test
command.
The cas system has many unit tests which are run with cargo test
. There are
also integration tests which verify that the capabilities of the derivation
process as a whole do not degrade during optimization which is still happening.
These are run with cargo test --test '*'
.
- Rust - Library language
- TypeScript - Website typing
- MathQuill - Latex expression input
- MathJax - Math rendering
This project is in a very early stage and contributions probably won't be helpful.
This project is licensed under the MIT License - see the LICENSE.md file for details