All Projects → PaddiM8 → Kalk

PaddiM8 / Kalk

Licence: mit
A calculator/expression evaluator written in rust that supports variables and functions.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Kalk

node calculator
Create Maya node-network by entering a math-formula.
Stars: ✭ 56 (-58.21%)
Mutual labels:  calculator, math
Calculatex
in progress pretty printing calculator language
Stars: ✭ 302 (+125.37%)
Mutual labels:  math, calculator
quich
Just an advanced terminal calculator.
Stars: ✭ 59 (-55.97%)
Mutual labels:  calculator, math
Calc
C-style arbitrary precision calculator
Stars: ✭ 127 (-5.22%)
Mutual labels:  math, calculator
Notecalc3
NoteCalc is a handy calculator trying to bring the advantages of Soulver to the web.
Stars: ✭ 879 (+555.97%)
Mutual labels:  math, calculator
string-math
Evaluates a math expression from a string. Supports variables and custom operators.
Stars: ✭ 14 (-89.55%)
Mutual labels:  calculator, math
keisan
A Ruby-based expression parser, evaluator, and programming language
Stars: ✭ 48 (-64.18%)
Mutual labels:  calculator, math
kalker
Kalker/kalk is a calculator with math syntax that supports user-defined variables and functions, complex numbers, and estimation of derivatives and integrals
Stars: ✭ 1,237 (+823.13%)
Mutual labels:  calculator, math
Php Math Parser
Simple mathematical expression parser and calculator.
Stars: ✭ 24 (-82.09%)
Mutual labels:  math, calculator
Nasc
Do maths like a normal person
Stars: ✭ 396 (+195.52%)
Mutual labels:  math, calculator
fcal
Extensive math expression evaluator library for JavaScript and Node.js
Stars: ✭ 86 (-35.82%)
Mutual labels:  calculator, math
String Calc
PHP calculator library for mathematical terms (expressions) passed as strings
Stars: ✭ 60 (-55.22%)
Mutual labels:  math, calculator
Mather
A powerful expression-based calculator, unit converter, and general computation engine for Android
Stars: ✭ 49 (-63.43%)
Mutual labels:  calculator, math
rclc
Mathematical expression calculator with big integers, floats, common fractions, and complex numbers support
Stars: ✭ 24 (-82.09%)
Mutual labels:  calculator, math
Atosym
algebraic expressions parsing and evaluation through a property system based algorithm
Stars: ✭ 15 (-88.81%)
Mutual labels:  calculator, math
desktop
Extendable calculator for the 21st Century ⚡
Stars: ✭ 85 (-36.57%)
Mutual labels:  calculator, math
Computator.net
Computator.NET is a special kind of numerical software that is fast and easy to use but not worse than others feature-wise. It's features include: - Real and complex functions charts - Real and complex calculator - Real functions numerical calculations including different methods - Over 107 Elementary functions - Over 141 Special functions - Over 21 Matrix functions and operations - Scripting language with power to easy computations including matrices - You can declare your own custom functions with scripting language
Stars: ✭ 174 (+29.85%)
Mutual labels:  math, calculator
cpc
Text calculator with support for units and conversion
Stars: ✭ 89 (-33.58%)
Mutual labels:  calculator, math
Algebraicengine Fraction
a calculating engine~
Stars: ✭ 311 (+132.09%)
Mutual labels:  math, calculator
Sharpmath
A small .NET math library.
Stars: ✭ 36 (-73.13%)
Mutual labels:  math, calculator

kalk

Crates.io npm GitHub Docs.rs Build status

Kalk is a calculator (both program and library) that supports user-defined variables, functions, and units (experimental, limited). It runs on Windows, macOS, Linux, Android, and in web browsers (with WebAssembly).

Kanban | Website

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.

Libraries

There are currently three different libraries related to kalk.

  • kalk: The Rust crate that powers it all.
  • @paddim8/kalk: JavaScript bindings to kalk. This lets you use it in the browser, thanks to WebAssembly.
  • @paddim8/kalk-component: A web component that acts as a frontend to @paddim8/kalk, which lets you use kalk in the browser with a command line-like interface.

Installation

Binaries

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 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).

Cargo

Run cargo install kalk_cli

Manually

  1. Go into the kalk_cli directory.
  2. Run cargo build --release
  3. Grab the binary from targets/release

Syntax

A more complete reference can be found on the website

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 (experimental, are likely to not work properly)

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].