WizCalc
Input:
Output:
Constants▼
Named Constants▼
The following named constants are available:
| Name(s) | Approximate value | |
|---|---|---|
e | 2.718281828459045… | |
π | pi | 3.141592653589793… |
τ | tau | 6.283185307179586… |
Numeric Constants▼
A numeric constant can have an integer part, a fractional part, or both, optionally followed by an exponent part:
an integer part consists of one or more decimal digits
a fractional part consists of a radix point
.followed by one or more decimal digitsan exponent part consists of
Eore, optionally followed by+or-, followed by one or more decimal digits
| Examples | ||
|---|---|---|
1 | .5 | 1.5 |
1e2 | .5e2 | 1.5e2 |
1E2 | .5E2 | 1.5E2 |
1e+2 | .5e+2 | 1.5e+2 |
1E+2 | .5E+2 | 1.5E+2 |
1e-2 | .5e-2 | 1.5e-2 |
1E-2 | .5E-2 | 1.5E-2 |
Operators▼
The following operators are available for use in expressions:
| Category | Precedence | Associativity | Operator | Description | Example |
|---|---|---|---|---|---|
| Primary | highest | none | () | Subexpression | (1 + e) |
| Postfix | 2nd highest | left to right | () | Function | lcm(3, 4) |
! | Factorial | 4! | |||
| Power | 3rd highest | right to left | ^ | Exponentiation | 2^6 |
| Prefix | 4th highest | right to left | + | Unary plus | +3 |
- | Negation | -7 | |||
√ | Square Root | √2 | |||
| Multiplicative | 5th highest | left to right | | Implicit multiplication | 2pi |
* | Explicit multiplication | 2 * pi | |||
/ | Division | pi / 2 | |||
% | Remainder | 12 % 5 | |||
| Additive | lowest | left to right | + | Addition | e + 1 |
- | Subtraction | e - 1 |
When a named constant is immediately followed by a numeric constant or named function, implicit multiplication is not recognizable. For example, pi2 and esin4 are in error, whereas 2pi, pi 2, and e sin 4 are valid.
Functions▼
The following functions are available for use in expressions. Function names are case sensitive.
The operand of a unary function need not be parenthesized. For example, ln 2 and sin sqrt 2 are valid.
When used in this manner, the function name behaves as a prefix operator. For example, sin 2π is parsed as (sin 2) × π and ln 2 ^ 4 is parsed as ln(24).
Rounding▼
| Function | Description |
|---|---|
ceil(x) | returns the smallest integer not less than x |
floor(x) | returns the largest integer not greater than x |
int(x) | returns the integer portion of x |
round(x) | returns the integer value nearest to x (ties are rounded away from zero) |
trunc(x) | returns the integer portion of x |
Roots, Exponents, and Logarithms▼
| Function | Description |
|---|---|
cbrt(x) | returns the cube root of x |
exp(x) | returns ex |
exp2(x) | returns 2x |
exp10(x) | returns 10x |
ln(x) | returns the natural logarithm of x |
log(x, b) | returns the base b logarithm of x |
log2(x) | returns the base 2 logarithm of x |
log10(x) | returns the base 10 logarithm of x |
sqrt(x) | returns the square root of x |
Trigonometry▼
| Function | Description |
|---|---|
acos(x) | returns the arccosine of x |
acosh(x) | returns the inverse hyperbolic cosine of x |
acot(x) | returns the arccotangent of x |
acoth(x) | returns the inverse hyperbolic cotangent of x |
acsc(x) | returns the arccosecant of x |
acsch(x) | returns the inverse hyperbolic cosecant of x |
asec(x) | returns the arcsecant of x |
asech(x) | returns the inverse hyperbolic secant of x |
asin(x) | returns the arcsine of x |
asinh(x) | returns the inverse hyperbolic sine of x |
atan(x) | returns the arctangent of x |
atan2(y, x) | returns the two-argument arctangent of y and x |
atanh(x) | returns the inverse hyperbolic tangent of x |
cos(x) | returns the cosine of x |
cosh(x) | returns the hyperbolic cosine of x |
cot(x) | returns the cotangent of x |
coth(x) | returns the hyperbolic cotangent of x |
csc(x) | returns the cosecant of x |
csch(x) | returns the hyperbolic cosecant of x |
hypot(x, y) | returns the hypotenuse of x and y |
sec(x) | returns the secant of x |
sech(x) | returns the hyperbolic secant of x |
sin(x) | returns the sine of x |
sinc(x) | returns the cardinal sine of x |
sinh(x) | returns the hyperbolic sine of x |
tan(x) | returns the tangent of x |
tanh(x) | returns the hyperbolic tangent of x |
Miscellaneous▼
| Function | Description |
|---|---|
abs(x) | returns the absolute value of x |
avg(x, y) | returns the average of x and y |
combin(n, k) | returns the number of ways to select k items out of n items (binomial coefficient) |
gcd(x, y) | returns the greatest common divisor of x and y |
hgd(k, n, K, N) | returns the probability of selecting k items out of n items, given that K items are selected from N items |
interp(x, x0, y0, x1, y1) | returns the linearly-interpolated y value for x given the coordinates (x0, y0) and (x1, y1) |
lcm(x, y) | returns the least common multiple of x and y |
max(x, y) | returns the maximum of x and y |
min(x, y) | returns the minimum of x and y |
nabs(x) | returns the negated absolute value of x |
permut(n, k) | returns the number of ways to arrange k items out of n items |
sign(x) | returns −1, 0, or +1 according to the value of x |
Syntax▼
The following EBNF-like notation describes the expression syntax:
expression:
| additive-expression
;
additive-expression:
| multiplicative-expression
| additive-expression '+' multiplicative-expression
| additive-expression '-' multiplicative-expression
;
multiplicative-expression:
| prefix-expression
| multiplicative-expression prefix-expression
| multiplicative-expression '*' prefix-expression
| multiplicative-expression '/' prefix-expression
| multiplicative-expression '%' prefix-expression
;
prefix-expression:
| '+' prefix-expression
| '-' prefix-expression
| '√' prefix-expression
| unary-function prefix-expression
| power-expression
;
unary-function:
| 'ceil' | 'floor'
| 'int' | 'trunc'
| 'round'
| 'sqrt' | 'cbrt'
| 'exp' | 'exp2' | 'exp10'
| 'ln' | 'log' | 'log2' | 'log10'
| 'sin' | 'asin' | 'sinh' | 'asinh' | 'sinc'
| 'cos' | 'acos' | 'cosh' | 'acosh'
| 'tan' | 'tanh' | 'atan' | 'atanh'
| 'sec' | 'asec' | 'sech' | 'asech'
| 'csc' | 'acsc' | 'csch' | 'acsch'
| 'cot' | 'acot' | 'coth' | 'acoth'
| 'abs' | 'nabs' | 'sign'
;
power-expression:
| postfix-expression
| postfix-expression '^' prefix-expression
;
postfix-expression:
| function
| primary-expression
| postfix-expression '!'
;
function:
| function-name '(' argument-list ')'
;
function-name:
| 'floor' | 'ceil'
| 'int' | 'trunc'
| 'round'
| 'sqrt' | 'cbrt'
| 'exp' | 'exp2' | 'exp10'
| 'ln' | 'log' | 'log2' | 'log10'
| 'hypot'
| 'sin' | 'asin' | 'sinh' | 'asinh' | 'sinc'
| 'cos' | 'acos' | 'cosh' | 'acosh'
| 'tan' | 'tanh' | 'atan' | 'atanh' | 'atan2'
| 'sec' | 'asec' | 'sech' | 'asech'
| 'csc' | 'acsc' | 'csch' | 'acsch'
| 'cot' | 'acot' | 'coth' | 'acoth'
| 'abs' | 'nabs' | 'sign'
| 'min' | 'max' | 'avg'
| 'gcd' | 'lcm'
| 'combin' | 'permut' | 'hgd'
| 'interp'
;
argument-list:
| expression
| argument-list ',' expression
;
primary-expression:
| constant
| '(' expression ')'
;
constant:
| named-constant
| numeric-constant
;
named-constant:
| 'e'
| 'π' | 'pi'
| 'τ' | 'tau'
;
numeric-constant:
| integer-part [ fraction-part ] [ exponent-part ]
| fraction-part [ exponent-part ]
;
integer-part:
| digit { digit }
;
digit:
| '0' | '1' | '2' | '3' | '4'
| '5' | '6' | '7' | '8' | '9'
;
fraction-part:
| '.' integer-part
;
exponent-part:
| exponent-char [ exponent-sign ] integer-part
;
exponent-char:
| 'E'
| 'e'
;
exponent-sign:
| '+'
| '-'
;
