From f8ad49b7d5cd33545d02e79a9d2485b57d5e8c0c Mon Sep 17 00:00:00 2001 From: Camden Dixie O'Brien Date: Sat, 26 Sep 2026 15:45:39 +0100 Subject: [PATCH] Add README --- README.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..69d1934 --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ +# 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.