Kalker (or "kalk") is a calculator program/website that supports user-defined variables, functions, derivation, and integration. It runs on Windows, macOS, Linux, Android, and in web browsers (with WebAssembly).
Kanban | Website - Try it out here! | Donate
- Operators:
+,-,*,/,! - Groups:
(),⌈ceil⌉,⌊floor⌋,[iverson] - Pre-defined functions and constants
- User-defined functions and variables.
f(x, y) = xy,x = 5 - Derivative of functions (derivatives of noisy functions or of higher order can be a bit inaccurate).
f'(2),sin'(-pi) - Integration.
∫(0, pi, sin(x) dx)or∫(0, π, sin(x) dx), maybe sometimes be slightly off - Understands fairly ambiguous syntax. Eg.
2sin50 + 2xy - Syntax highlighting
- Special-symbol completion on tab. Eg. write
sqrtand 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 - Piecewise functions:
f(x) = { f(x + 1) if x <= 1; x otherwise }, pressing enter before typing the final}will make a new line without submitting. - Load a file including predefined functions and constants. For example, if you're going to use kalker for physics, you load up your file with physics functions/constants when starting kalker.
-i file - Misc: separate expressions by a semicolon to write them on the same line, use the
ansvariable to get the value of the previously calculated expression.
brew install kalker
kalker in the AUR, eg. yay -S kalker
Kalker is available through nixpkgs.
The most up to date version is also available as a flake.
Pre-compiled binaries for Linux, Windows, and macOS (64-bit) are available in the releases page.
Minimum rust version: v1.36.0. Make sure you have diffutils gcc make and m4 installed. If you use windows: follow the instructions here (don't forget to install mingw-w64-x86_64-rust in MSYS2).
Run cargo install kalker
- Go into the
clidirectory. - Run
cargo build --release - Grab the binary from
targets/release
Kalker is completely free and open source. If you wish to support further development of Kalker, you can do so here: PayPal
There are currently three different libraries related to kalker.
- kalk: The Rust crate that powers it all.
- @paddim8/kalk: JavaScript bindings for
kalk. This lets you use it in the browser thanks to WebAssembly. - @paddim8/kalk-component: A web component that runs
@paddim8/kalk, which let's you use kalk in the browser with a command line-like interface.
A more complete reference can be found on the website
Defining: name(parameter1, parameter2, ...) = expression
Example: f(x) = 2x+3
Using: name(argument1, argument2)
Example: f(2)
Defining: name = expression
Example: x = 3
Using: name
Example: x
After making changes to the kalk library (in kalk/), you can easily try them out by going to the root of the project directory, and doing cargo run. This will start kalker (cli), with the new changes. If you're using Windows, you will need to follow the instructions here, but also make sure to install mingw-w64-x86_64-rust in MSYS2.
Run:
npm installnpm run dev- this will automatically re-compile the project when changes are made
Run:
npm installnpx cap sync- Build the project using Android Studio, or Gradle directly.