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 18:03:40 +02:00
kalk Fixed merge issues, updated version numbers, and updated README with syntax instructions. 2020-06-18 18:03:40 +02:00
kalk_cli Fixed merge issues, updated version numbers, and updated README with syntax instructions. 2020-06-18 18:03:40 +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 merge issues, updated version numbers, and updated README with syntax instructions. 2020-06-18 18:03:40 +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 Fixed merge issues, updated version numbers, and updated README with syntax instructions. 2020-06-18 18:03:40 +02:00

kalk

Crates.io GitHub Docs.rs Build status

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

Features

  • Operators: +, -, *, /, !
  • Groups: (), ⌈⌉, ⌋⌊
  • Pre-defined functions and constants
  • User-defined functions and variables. f(x, y) = xy, x = 5
  • User-defined units (experimental). unit m = cm/100, 2m/50cm, 50cm to m
  • 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
  • Misc: separate expressions by a semicolon to write them on the same line, use the ans variable to get the value of the previously calculated expression.

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

Syntax

Functions

Defining: name(parameter1, parameter2, ...) = expression
Example: f(x) = 2x+3

Using: name(argument1, argument2)
Example: f(2)

Variables

Defining: name = expression
Example: x = 3

Using: name
Example: x

Units

Note: You only need to define the relationship between two units once. You will be able to convert between both of them. Defining: unit name = expression
Example: unit deg = (rad*180)/π

Using: Use them freely in expressions.
Example: 2m/50cm

Converting: expression to unit
Example: 2 m to cm