Scientific calculator with math syntax that supports user-defined variables and functions, complex numbers, and estimation of derivatives and integrals
Go to file
2020-06-18 17:41:57 +02:00
kalk Added units to prelude functions. 2020-06-18 17:41:57 +02:00
kalk_cli Added environment variables to help. 2020-06-18 17:01:09 +02:00
.gitignore Updated README to ignore .vscode. 2020-06-15 21:31:55 +02:00
.travis.yml Travis allow failures for release builds. 2020-06-12 18:43:49 +02:00
Cargo.lock Fixed the broken unit tests in the parser and completed the test_angle_units test in the interpreter. 2020-06-15 21:30:52 +02:00
Cargo.toml Created a workspace Cargo.toml to unify the library and binary. 2020-06-12 14:11:42 +02:00
example.png Added example image and expanded feature list. 2020-06-12 00:34:50 +02:00
LICENSE Create LICENSE 2020-06-11 23:38:03 +02:00
README.md Added Kolan link to README 2020-06-13 19:26:23 +02:00

kalk

Crates.io GitHub Docs.rs Build status

Kalk is a calculator (both program and library) that supports user-defined variables and functions.
Project kanban board (Kolan)

Features

  • Operators: +, -, *, /, !
  • Groups: (), ⌈⌉, ⌋⌊
  • Pre-defined functions and constants
  • User-defined functions and variables. f(x, y) = xy, x = 5
  • Understands fairly ambiguous syntax. Eg. 2sin50 + 2xy
  • Syntax highlighting
  • Special-symbol completion on tab. Eg. write sqrt and press tab. It will be turned into .
  • Sum function: sum(start, to, expression) Eg. sum(1, 3, 2n+1) is the same as 2*1+1 + 2*2+1 + 2*3+1 = 15
  • Load a file including predefined functions and constants. For example, if you're going to use Kalk for physics, you load up your file with physics functions/constants when starting Kalk. -i file

Installing

Make sure you have diffutils gcc make and m4 installed. If you use windows: follow the instructions here
If anyone knows how to get gmp_mpfr_sys on Windows on Travis, let me know.

Cargo install

Run cargo install kalk_cli

Compiling yourself

  1. Go into the kalk_cli directory.
  2. Run cargo build --release
  3. Grab the binary from targets/release