A pretty TUI scientific calculator. https://daisy.betalupi.com
 
 
 
 
 
 
Go to file
Mark 3ab559b240
Updated TODO
2023-09-21 19:43:00 -07:00
.github/workflows Action version 2023-04-10 16:04:50 -07:00
buildscript Scope fix 2023-08-03 22:05:55 -07:00
site Fixed page scrolling 2023-09-21 19:42:53 -07:00
src Merge branch 'wasm' into dev 2023-09-21 19:33:01 -07:00
.editorconfig Edited actions 2023-04-10 14:07:04 -07:00
.gitignore Cleaned up site files 2023-09-21 14:07:21 -07:00
Cargo.lock Version bump 2023-09-21 19:35:00 -07:00
Cargo.toml Version bump 2023-09-21 19:35:00 -07:00
Dockerfile Added basic dockerfile for webserver 2023-09-21 19:16:43 -07:00
LICENSE Added license 2023-03-27 10:55:20 -07:00
PKGBUILD Version bump 2023-08-02 11:51:33 -07:00
README.md Minor cleanup 2023-09-21 19:32:44 -07:00
TODO.md Updated TODO 2023-09-21 19:43:00 -07:00
default Added basic dockerfile for webserver 2023-09-21 19:16:43 -07:00
docker-compose.yml Minor cleanup 2023-09-21 19:32:44 -07:00
shell.nix Added shell.nix 2023-09-03 13:12:22 -07:00

README.md

A high-precision scientific calculator with support for units, derivatives, and more.

Many features are missing, this is still under development.

Web demo: here

📦 Installation

  • Cargo: cargo install daisycalc
  • Arch: yay -S daisy
  • Debian: coming soon

From source: cargo build --release
Binary will be in target/release/daisy

📹 Screenshot

Screenshot

🛠️ Features

  • Open-source
  • Extremely high precision
    • Uses a rational datatype when possible, and a high-precision float when not.
  • Pretty printing in prompt (with special substitutions)
  • Supports many physical units, with metric and binary prefixes
  • Supports exponential notation
  • Clear syntax, parsed input is always re-printed as a sanity check.
  • Useful, detailed error messages

📑 Usage

All documentation is built into the prompt. Use the help command to view it.

Evaluate expressions:

  • Basic math: 103 / 2 * 43
  • Functions: sqrt(1.4^3 + 4) * sin(pi / 4)
  • Scientific notation: 1.2e12 * 1e-5

Physical units

  • Unit operations: 2 day + 1 hour
  • Unit conversion: 2 day + 1 hour to minutes
  • Compound units: 10 m/s to mph
  • Conversion errors: 1 liter to volt

Varables

  • Previous answer: ans + 2
  • Variable assignment: a = 143

🌹 Additional Notes

Unit Conversion

The conversion operator to converts its left argument to the unit of its right argument, ignoring its value. For example, 5m to mi and 5m to 10mi are identical.

Celsius and Fahrenheit

Celsius and Fahrenheit are not supported as first-class units because they require an offset when converting from other temperature units. This leads to ambiguity when adding units, since one temperature must be seen as a difference rather than an absolute temperature.

Daisy instead provides four functions (fromCelsius, toCelsius, fromFahrenheit, toFahrenheit) which convert between scalars and Kelvin.

  • "from" functions take a scalar and return a value in Kelvin: fromCelsius(0) = 273.15K
  • "to" functions take a value in Kelvin and return a scalar: toCelsius(273.15 K) = 0

Multiplication Order

Implicit multiplication has a higher priority than division. pi/2 radians will parse as pi/(2 radians). Type (pi/2) radians or pi/2 * radians to get 90 degrees.