
A pretty, general-purpose scientific calculator with support for units, derivatives, and more.
Many features are missing, this is still under development.
Web demo: here (won't work on mobile)
cargo build --release, binary will be at ./target/release/daisycargo install daisycalcyay -S daisydefault.nix. Daisy isn't in nixpkgs yet, you'll need to add something like the following to configuration.nix:let
daisy = builtins.fetchGit {
url = "https://github.com/rm-dr/daisy.git";
ref = "master";
} + /default.nix;
in
{
environment.systemPackages = with pkgs; [
(callPackage daisy { })
];
}
All documentation is built into the prompt. Use the help command to view it.
103 / 2 * 43sqrt(1.4^3 + 4) * sin(pi / 4)1.2e12 * 1e-52 day + 1 hour2 day + 1 hour to minutes10 m/s to mph1 liter to voltans + 2a = 143The 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 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.
fromCelsius(0) = 273.15KtoCelsius(273.15 K) = 0Functions FtoC and CtoF are also provided:
FtoC(x) = toCelsius(fromFahrenheit(x))CtoF(x) = toFahrenheit(fromCelsius(x))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.