mirror of https://github.com/rm-dr/daisy
Updated README
parent
b6acbcee6b
commit
a7d1dd381e
82
README.md
82
README.md
|
@ -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` |
|
|
@ -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
|
Loading…
Reference in New Issue