diff --git a/Cargo.toml b/Cargo.toml
index 2cdd545..32e5e63 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -4,7 +4,7 @@ version = "1.1.7"
edition = "2021"
build = "buildscript/main.rs"
license = "GPL-3.0-only"
-description = "A high-precision terminal scientific calculator."
+description = "A pretty TUI scientific calculator."
repository = "https://git.betalupi.com/Mark/daisy"
homepage = "https://git.betalupi.com/Mark/daisy"
readme = "README.md"
diff --git a/README.md b/README.md
index 9f7e4ea..d301b1f 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
![](./server/site/resources/readme-banner.png)
-A high-precision scientific calculator with support for units, derivatives, and more.
+A pretty, general-purpose scientific calculator with support for units, derivatives, and more.
Many features are missing, this is still under development.
@@ -33,9 +33,7 @@ in
# 🛠️ 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)
+ - Carefully designed and easy-to-read prompt
- Supports many physical units, with metric and binary prefixes
- Supports exponential notation
- Clear syntax, parsed input is always re-printed as a sanity check.
@@ -77,6 +75,10 @@ Daisy instead provides four functions (`fromCelsius`, `toCelsius`, `fromFahrenhe
- "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`
+Functions `FtoC` and `CtoF` are also provided:
+ - `FtoC(x) = toCelsius(fromFahrenheit(x))`
+ - `CtoF(x) = toFahrenheit(fromCelsius(x))`
+
## Multiplication Order
diff --git a/server/site/index.html b/server/site/index.html
index 9053391..becaefd 100644
--- a/server/site/index.html
+++ b/server/site/index.html
@@ -86,7 +86,7 @@
-
A high-precision, general-purpose scientific calculator
+
A pretty, general-purpose scientific calculator
diff --git a/src/command/mod.rs b/src/command/mod.rs
index ee7bdf5..2482387 100644
--- a/src/command/mod.rs
+++ b/src/command/mod.rs
@@ -57,8 +57,8 @@ pub fn do_command(
t.push(
concat!(
- "Daisy is a high-precision, general-purpose\n",
- "scientific calculator.\n",
+ "Daisy is a pretty, general-purpose\n",
+ "TUI scientific calculator.\n",
"\n",
" - Use Up/Down arrows to navigate history.\n",
" - Use Ctrl-C or Ctrl-D to quit.\n",
@@ -152,6 +152,9 @@ pub fn do_command(
" Fahrenheit to Kelvin [c]fromF, fromFahrenheit[n]\n",
" Kelvin to Fahrenheit [c]toF, toFahrenheit[n]\n",
"\n",
+ " Celsius to Fahrenheit [c]CtoF[n]\n",
+ " Fahrenheit to Celsius [c]FtoC[n]\n",
+ "\n",
" convert to base unit [c]tobase[n]\n",
" remove units [c]nounit[n]\n",
"\n\n"
diff --git a/src/evaluate/function.rs b/src/evaluate/function.rs
index 5f3b101..ad8efc4 100644
--- a/src/evaluate/function.rs
+++ b/src/evaluate/function.rs
@@ -1,3 +1,5 @@
+use std::collections::VecDeque;
+
use crate::parser::Expression;
use crate::parser::Function;
use crate::parser::Operator;
@@ -9,6 +11,7 @@ use crate::quantity::Quantity;
use crate::quantity::Scalar;
use crate::errors::DaisyError;
use crate::context::Context;
+use super::evaluate;
// If unitless, do nothing
// If compatible with radians, convert to radians and return unitless
@@ -151,6 +154,33 @@ pub fn eval_function(context: &mut Context, g: &Expression) -> Result