kalk | ||
kalk_cli | ||
.gitignore | ||
.travis.yml | ||
Cargo.lock | ||
Cargo.toml | ||
example.png | ||
LICENSE | ||
README.md |
kalk
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 as2*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
- Go into the
kalk_cli
directory. - Run
cargo build --release
- 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