Kalker is a calculator program that supports user-defined variables, functions, derivation, and integration.
Kalker is a scientific calculator program designed to perform advanced mathematical computations with support for user-defined variables, functions, differentiation, and integration.
Key Features:
Support for complex mathematical operations, including derivatives, integrals, and root finding using Newton's method.
Ability to define custom functions and variables, enabling users to create tailored calculations.
Syntax highlighting and special-symbol completion on tab (e.g., converting "sqrt" to √).
Cross-platform compatibility, running on Windows, macOS, Linux, Android, and web browsers via WebAssembly.
Integration with package managers like winget for easy installation.
Audience & Benefit:
Ideal for students, researchers, engineers, and anyone requiring precise mathematical computations. Kalker streamlines complex calculations, reduces errors, and enhances productivity by providing a flexible and intuitive toolset for advanced mathematics.
README
Kalker is a calculator program/website that supports user-defined variables, functions, differentiation, and integration. It runs on Windows, macOS, Linux, Android, and in web browsers (with WebAssembly).
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
Pre-compiled binaries for Linux, Windows, and macOS (64-bit) are available in the releases page.
Compiling
Minimum rust version: v1.36.0. Make sure you have diffutilsgccmake and m4 installed. If you use windows:follow the instructions here (don't forget to install mingw-w64-x86_64-rust in MSYS2).
Cargo
Run cargo install kalker
Manually
Go into the cli directory.
Run cargo build --release
Grab the binary from targets/release
Libraries
There are currently three different libraries related to kalker.
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.
All Rust code is expected to be formatted with `rustfmt
web (Svelte, TypeScript, Sass)
Run:
npm install
npm run dev - this will automatically re-compile the project when changes are made
mobile (Android)
Run:
npm install
npm run build
npx cap sync
Build the project using Android Studio, or Gradle directly.