### A scientific calculator that supports math-like syntax with user-defined variables, functions, derivation, integration, and complex numbers.

>> f(x) = x(3x + 1) ← Declare functions >> a = 1/6 ← Declare variables >> 6ia√(f'(a))← Derivation 1.4142135624i 2i ← Complex numbers >> (0, π, sin2ix, dx) + e^(πi) / 3 ← Integration -0.3333333333 + 133.3733807458i ≈ -1/3 + 133.3733807458i >> Σ(0, 720, 1/n!) ← Calculating sums 2.7182818285 e
Open a kalker session in a new tab

## Features

• Operators: +, -, *, /, !, %
• Groups: (), ⌈ceil⌉, ⌊floor⌋, [iverson]
• Pre-defined functions and constants
• User-defined functions and variables
• Derivation (prime notation) and integration (eg. integral(a, b, x dx)
The value of an integral is estimated using Simpson's 3/8 rule,
while derivatives are estimated using the symmetric difference quotinent (and derivatives of higher order can be a bit inaccurate as of now).
• Complex numbers
• Understands fairly ambiguous syntax. Eg. 2sinx + 2xy
• Syntax highlighting
• 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.
• Completion for special symbols on tab
• Sum function
• Load a file including predefined functions and constants

## Usage

### All the calculator features and how they're used.

#### Operators

• `+`, `-`, `*`, `/`
• `!` Factorial, eg. `5!` gives `120`
• `%` Percent, eg. `5%` gives `0.05`, `10 + 50%` gives `15`
• `%` Modulus (remainder), eg. `23 % 3` gives `2`

#### Completion for special symbols

You can type special symbols (such as √) by typing the normal function or constant name and pressing tab.

• `sqrt` becomes `√`
• `deg` becomes `°`
• `pi` becomes `π`
• `sum` becomes `Σ()`
• `integrate` becomes `∫()`
• `tau` becomes `τ`
• `phi` becomes `ϕ`
• `floor` becomes `⌊⌋`
• `ceil` becomes `⌈⌉`
• `gamma` becomes `Γ`
• `(` becomes `()`

#### Variables

Variables are defined with the following syntax: `name = value`

Examples: `x = 3/4`

#### Functions

Functions are defined with the following syntax: `name(param1, param2, etc.) = value`

Examples: `f(x) = 2x+3` `A(x, y) = (xy)/2`

They are used like this: `name(arg1, arg2, etc.)`

Examples: `f(3) + 3` `A(2, 3)`

Derivation can be done like this: `name'(arg1)`

Examples: `f'(3) + 3` `sin'(pi)`

#### Predefined functions

• `sin`, `cos`, `tan`, `cot`, `cosec`, `sec`
• `sinh`, `cosh`, `tanh`, `coth`, `cosech`, `sech`
• `asin`, `acos`, `atan`, `acot`, `acosec`, `asec`
• `asinh`, `acosh`, `atanh`, `acoth`, `acosech`, `asech`
• `abs`, `ceil` or `⌈⌉`, `floor` or `⌊⌋`, `frac`, `round`, `trunc`
• `sqrt` or `√`, `cbrt`, `exp`, `log`, `ln`, `arg`, `Re`, `Im`
• `gamma` or `Γ`
• `asinh`, `acosh`, `atanh`, `acoth`, `acosech`, `asech`
• `min`, `max`, `hypot`
• `log` Eg. `log(1000, 10)` is the same as log10(1000)
• `root` Eg. `root(16, 3)` is the same as 3√16
• `integrate` Eg. `integrate(0, pi, sin(x) dx)` is the same as
• `sum` Eg. `sum(1, 4, 2n)` is the same as

#### Constants

`pi` or `π` = `3.14159265`
`e` = `2.71828182`
`tau` or `τ` = `6.2831853`
`phi` or `ϕ` = `1.61803398`