# Deriv Deriv is a basic, command-line symbolic differentiation engine, supporting reasonably standard mathematical notation for input and output. An example interaction: ``` > 2x^2 + 3x 4x + 3 > x^3 - x^2 3x^2 + -2x ``` See [LOG.md](LOG.md) for a log of the development process. ## Building and Running Deriv is written in Rust and uses Cargo as its build system. The Rust toolchain (including Cargo) is most easily installed with [Rustup](https://rustup.rs/). Given that you have a toolchain installed, the REPL can be ran with: ``` cargo run --bin repl ``` Alternatively, to only build the project: ``` cargo build ``` To run the test suite: ``` cargo test ``` ## Limitations Deriv currently has several limitations: - Only the variable "x" is currently supported. - Exponents must be constant (so e.g. "x^x" is unsupported) - Expression simplification is quite limited, many output expressions may not be fully simplified - There are no built-in constants like e or π - Functions such as sine, cosine and natural logarithms are not supported - The input must be UTF-8 Basic Latin / ASCII-compatible text ## License Deriv is Copyright © Camden Dixie O'Brien, and is available under the Komorebi 2.0.0 license. See [LICENSE.md](LICENSE.md) for details.