Updated README

pull/2/head
Mark 2023-04-06 10:39:36 -07:00
parent b6acbcee6b
commit a7d1dd381e
Signed by: Mark
GPG Key ID: AD62BB059C2AAEE4
2 changed files with 96 additions and 37 deletions

View File

@ -1,48 +1,56 @@
![](./misc/banner.png) ![](./misc/banner.png)
A high-precision partially-symbolic calculator with support for units, derivatives, and more. A high-precision scientific calculator with support for units, derivatives, and more.
This is nowhere near complete. Stay tuned. **todo:** ~~Try the [web version!]()~~
Many features are missing, this is still under development.
# TODO # Features
- Extremely high precision
## Before For 1.0 release - Uses a rational datatype when possible,
- Commands - Uses a high-precision float when not.
- Documentation (usage) - Pretty printing in prompt
- Documentation (comments) - Makes expressions shorter and easier to understand
- Units - **todo:** ~~Supports nearly all physical units~~
- ~~Accounts for units in calculations~~
- ~~Explicit conversion operator `->` or `to`~~
- **todo:** ~~Variable and function definitions~~
- **todo:** ~~Easy history recall~~
- **todo:** ~~Sums and products~~
## General # Reference
- CLI Options: version, help, evaluate
- Compile to WASM => webapp
- Trig tests
- Fix tests
- Direct expression printing
- Better comparison
## **Operators, sorted by priority (high to low)**
## Internals | Operator | Syntax |
- Copy expression |---------------------------|----------------------|
- Non-recursive treeify | function application | `sin`, `cos`, etc |
- Faster factorial function. Maybe use gamma instead? | factorial | `!` |
- Remove extra calls to `.clone()` | powers | `^`, `**` |
- Arbitrary precision float (rug doesn't offer arbitrary exponents) | implicit multiplication | `3π`, `3(2+1)`, etc |
| square root | `sqrt`, `rt`, `√` |
| negation | `-3`, `-(1 + 2)` |
| modulo (short) | `%` |
| multiplication, division | `*`, `/`, `×`, `÷` |
| addition, subtraction | `+`, `-` |
| modulo (long) | `mod` |
## Features Note that implicit multiplication has a higher priority than mulitiplication and division.
- Variable definitions
- Function definitions
- Units
- Dice
- Mean, Median, Min, Max: arrays and multi-arg functions
- Derivatives
- MiniCAS
- Complex numbers
- Config file
- History to file
- Reference previous results
- acot/acoth functions
## Prompt ## **Functions**
- Live syntax/output
| Function | Syntax |
|---------------------------|-----------------------------|
| Absolute Value | `abs` |
| Floor, Ceiling, Round | `floor`, `ceil`, `round` |
| Logarithm (base e) | `ln` |
| Logarithm (base 10) | `log` |
| sin, arcsin, cosecant | `sin`, `asin`, `csc` |
| cos, arccos, secant | `cos`, `acos`, `sec` |
| tan, arctan, cotan | `tan`, `atan`, `cot` |
| hyperbolic sin, etc | `sinh`, `asinh`, `csch` |
| hyperbolic cos, etc | `cosh`, `acosh`, `sech` |
| hyperbolic tan, etc | `tanh`, `atanh`, `coth` |

51
TODO.md Normal file
View File

@ -0,0 +1,51 @@
# TODO
Roadmap for fixes and features.
## Pre-release
- Commands (help, clear, reset, quit, list constants, list units)
- Documentation (usage)
- Documentation (comments)
- Units, unit conversion
## General
- CLI Options: version, help, evaluate
- Compile to WASM, publish a webapp
- Better tests
- Direct expression printing
- Better comparison
- Trigonometry
- Manpage
## Internals
- Non-recursive treeify
- Faster factorial function. Maybe use gamma instead?
- Remove extra calls to `.clone()`
- Arbitrary precision float (rug doesn't offer arbitrary exponents)
## Math Features
- Config file
- History to file
- Reference previous results
- Variable definitions
- Function definitions
- Units
- Dice
- Mean, Median, Min, Max: arrays and multi-argument functions
- Arbitrary base logarithm
- Derivatives
- CAS features (trig, roots and powers)
- Complex numbers
- acot/acoth functions
- Binary, hex, octal numbers
- Extra roots? (for convenience)
- Sums and products
- "per" as division?
## Prompt
- Live syntax/output (like firefox js terminal)
- fish-style tab completion
- Numbered expressions, history recall