Kalker is a calculator that supports user-defined variables, functions, derivation, and integration. It runs on Windows, macOS, Linux, Android, and in web browsers (with WebAssembly).
Features:
- Operators: +, -, *, /, !
- Groups: (), [], ⌈ceil⌉, ⌊floor⌋
- Vectors: (x, y, z, ...)
- Matrices: [x, y, z; a, b, c; ...]
- Pre-defined functions and constants
- User-defined functions and variables. f(x, y) = xy, x = 5
- Root finding using Newton's method (eg. x^2 = 64). Note: estimation and limited to one root
- 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 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
- 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. This is done either using the -i file flag or by putting files in a certain directory and then doing load filename inside kalker. More about files here
- Different number bases: Either with a format like 0b1101, 0o5.3, 0xff or a format like 1101_2. The latter does not support letters, as they would be interpreted as variables
- 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