Reference · Math

Math

65 words. Sorted alphabetically.

-
  • ( a:number b:number -- diff:number )
  • ( a:complex b:complex -- result:complex )
  • ( a:complex b:number -- result:complex )
  • ( a:number b:complex -- result:complex )
  • ( a:complex b:integer -- result:complex )
  • ( a:integer b:complex -- result:complex )
  • ( a:vec3 b:vec3 -- result:vec3 )
  • ( v:vec3 n:number -- result:vec3 )
  • ( v:vec3 n:integer -- result:vec3 )
  • ( n:number v:vec3 -- result:vec3 )
  • ( n:integer v:vec3 -- result:vec3 )
  • ( a:vector b:vector -- diff:vector )
  • ( a:matrix b:matrix -- diff:matrix )
  • ( a:mx3 b:mx3 -- diff:mx3 )
  • ( a:quantity b:quantity -- diff:quantity )
  • ( q:quantity n:number -- diff:quantity )
  • ( n:number q:quantity -- diff:quantity )
  • ( int frac )
  • ( double frac )
  • ( frac int )
  • ( frac double )
  • ( frac frac )
  • ( hms hms -- hms )
  • ( dms dms -- dms )
  • ( hms qtime -- quantity )
  • ( qtime hms -- quantity )
  • ( dms qangle -- quantity )
  • ( qangle dms -- quantity )
  • ( symbolic symbolic )

Quantity subtraction. Q-Q auto-converts; Q-number and number-Q promote the bare to Q's display unit. Offset units refuse the promotion form.

->COMPLEX
  • ( double double )
  • ( integer double )
  • ( double integer )
  • ( integer integer )

Create a complex number from real (NOS) and imaginary (TOS) parts.

->EXPR
  • ( string )

->POLAR
  • ( m:number a:number -- z:complex )

Construct a Complex from magnitude (NOS) and angle (TOS). Angle interpreted in current angle mode.

!
  • ( n:number -- result:number )

Factorial (generalized). n! = Gamma(n+1). Works for real n.

*
  • ( a:number b:number -- product:number )
  • ( a:complex b:complex -- result:complex )
  • ( a:complex b:number -- result:complex )
  • ( a:number b:complex -- result:complex )
  • ( a:complex b:integer -- result:complex )
  • ( a:integer b:complex -- result:complex )
  • ( v:vector s:number -- scaled:vector )
  • ( v:vector s:integer -- scaled:vector )
  • ( s:number v:vector -- scaled:vector )
  • ( s:integer v:vector -- scaled:vector )
  • ( a:matrix b:matrix -- product:matrix )
  • ( m:matrix v:vector -- result:vector )
  • ( m:matrix s:number -- scaled:matrix )
  • ( m:matrix s:integer -- scaled:matrix )
  • ( s:number m:matrix -- scaled:matrix )
  • ( s:integer m:matrix -- scaled:matrix )
  • ( v:vec3 s:number -- scaled:vec3 )
  • ( v:vec3 s:integer -- scaled:vec3 )
  • ( s:number v:vec3 -- scaled:vec3 )
  • ( s:integer v:vec3 -- scaled:vec3 )
  • ( m:mx3 v:vec3 -- result:vec3 )
  • ( a:mx3 b:mx3 -- product:mx3 )
  • ( m:mx3 s:number -- scaled:mx3 )
  • ( m:mx3 s:integer -- scaled:mx3 )
  • ( s:number m:mx3 -- scaled:mx3 )
  • ( s:integer m:mx3 -- scaled:mx3 )
  • ( a:quantity b:quantity -- product:quantity )
  • ( q:quantity n:number -- scaled:quantity )
  • ( n:number q:quantity -- scaled:quantity )
  • ( int frac )
  • ( double frac )
  • ( frac int )
  • ( frac double )
  • ( frac frac )
  • ( hms double -- hms )
  • ( double hms -- hms )
  • ( hms integer -- hms )
  • ( integer hms -- hms )
  • ( dms double -- dms )
  • ( double dms -- dms )
  • ( dms integer -- dms )
  • ( integer dms -- dms )
  • ( symbolic symbolic )

Quantity multiplication. Compound dimensions/symbols; refuses offset units.

/
  • ( a:number b:number -- quotient:number )
  • ( a:complex b:complex -- result:complex )
  • ( a:complex b:number -- result:complex )
  • ( a:number b:complex -- result:complex )
  • ( a:complex b:integer -- result:complex )
  • ( a:integer b:complex -- result:complex )
  • ( m:mx3 s:number -- result:mx3 )
  • ( m:mx3 s:integer -- result:mx3 )
  • ( s:number m:mx3 -- result:mx3 )
  • ( s:integer m:mx3 -- result:mx3 )
  • ( a:quantity b:quantity -- quotient:quantity )
  • ( q:quantity n:number -- scaled:quantity )
  • ( n:number q:quantity -- inverse:quantity )
  • ( int frac )
  • ( double frac )
  • ( frac int )
  • ( frac double )
  • ( frac frac )
  • ( hms double -- hms )
  • ( hms integer -- hms )
  • ( hms hms -- double )
  • ( dms double -- dms )
  • ( dms integer -- dms )
  • ( dms dms -- double )
  • ( symbolic symbolic )

Quantity division. Compound dimensions/symbols; refuses offset units and divide-by-zero.

^
  • ( base:number exponent:number -- result:number )
  • ( base:complex exponent:complex -- result:complex )
  • ( base:complex exponent:number -- result:complex )
  • ( base:number exponent:complex -- result:complex )
  • ( base:complex exponent:integer -- result:complex )
  • ( base:integer exponent:complex -- result:complex )
  • ( q:quantity n:integer -- q':quantity )
  • ( int frac )
  • ( double frac )
  • ( frac int )
  • ( frac double )
  • ( frac frac )
  • ( symbolic symbolic )

Quantity exponentiation (integer exponent only). Refuses offset units and non-integer exponents.

+
  • ( a:number b:number -- sum:number )
  • ( a:complex b:complex -- result:complex )
  • ( a:complex b:number -- result:complex )
  • ( a:number b:complex -- result:complex )
  • ( a:complex b:integer -- result:complex )
  • ( a:integer b:complex -- result:complex )
  • ( object:object key:string value:any -- object:object )
  • ( value:any key:string object:object -- object:object )
  • ( array:array item:any -- array:array )
  • ( item:any array:array -- array:array )
  • ( a:vec3 b:vec3 -- result:vec3 )
  • ( v:vec3 n:number -- result:vec3 )
  • ( v:vec3 n:integer -- result:vec3 )
  • ( n:number v:vec3 -- result:vec3 )
  • ( n:integer v:vec3 -- result:vec3 )
  • ( a:vector b:vector -- sum:vector )
  • ( a:matrix b:matrix -- sum:matrix )
  • ( a:mx3 b:mx3 -- sum:mx3 )
  • ( a:quantity b:quantity -- sum:quantity )
  • ( q:quantity n:number -- sum:quantity )
  • ( n:number q:quantity -- sum:quantity )
  • ( int frac )
  • ( double frac )
  • ( frac int )
  • ( frac double )
  • ( frac frac )
  • ( hms hms -- hms )
  • ( dms dms -- dms )
  • ( hms qtime -- quantity )
  • ( qtime hms -- quantity )
  • ( dms qangle -- quantity )
  • ( qangle dms -- quantity )
  • ( symbolic symbolic )

Quantity addition. Q+Q auto-converts right to left's units; Q+number and number+Q promote the bare to Q's display unit. Offset units refuse the promotion form.

ABS
  • ( z:complex -- magnitude:number )
  • ( a:number -- result:number )
  • ( hms -- hms )
  • ( dms -- dms )
  • ( symbolic )

Absolute value.

ACOS
  • ( z:complex -- angle:complex )
  • ( x:number -- angle:number )
  • ( symbolic )

Arccosine. Result in current angle mode.

ACOSH
  • ( z:complex -- result:complex )
  • ( x:number -- result:number )

Inverse hyperbolic cosine. Domain: x >= 1.

ARG
  • ( z:complex -- angle:number )

Argument (angle) of a complex in current angle mode.

ASIN
  • ( z:complex -- angle:complex )
  • ( x:number -- angle:number )
  • ( symbolic )

Arcsine. Result in current angle mode.

ASINH
  • ( z:complex -- result:complex )
  • ( x:number -- result:number )

Inverse hyperbolic sine.

ATAN
  • ( z:complex -- angle:complex )
  • ( x:number -- angle:number )
  • ( symbolic )

Arctangent. Result in current angle mode.

ATAN2
  • ( x:number y:number -- angle:number )
  • ( symbolic symbolic )

Four-quadrant arctangent of (x, y). TOS=y, NOS=x. Result in current angle mode.

ATANH
  • ( z:complex -- result:complex )
  • ( x:number -- result:number )

Inverse hyperbolic arctangent. Domain: |x| < 1.

CEIL
  • ( a:number -- result:number )
  • ( symbolic )

Round up to nearest integer value (result is double).

CHS
  • ( a:number -- result:number )

Change sign: negate TOS.

CONJ
  • ( z:complex -- result:complex )

Complex conjugate: (a+bi) → (a-bi).

COS
  • ( angle:complex -- result:complex )
  • ( angle:number -- result:number )
  • ( angle:quantity -- result:number )
  • ( symbolic )

Cosine. Angle interpreted in current mode (DEG / RAD / GRAD).

COSH
  • ( z:complex -- result:complex )
  • ( x:number -- result:number )

Hyperbolic cosine.

CUBIC
  • ( number number number number -- array )

( a b c d -- roots-array ) Solve ax^3 + bx^2 + cx + d = 0 via Cardano's formula. Returns 3 roots (Real ascending then Complex).

D->R
  • ( degrees:number -- radians:number )

Convert degrees to radians.

DEGREE
  • ( mathexpr name -- integer )

( mathexpr target-name -- degree ) Polynomial degree of the equation in target-name IF polynomial-normal; Integer(-1) otherwise. No CAS distribution.

EXP
  • ( z:complex -- result:complex )
  • ( a:number -- result:number )
  • ( symbolic )

e raised to the power of TOS.

FACT
  • ( n:number -- result:number )

Factorial. Alias for !.

FLOOR
  • ( a:number -- result:number )
  • ( symbolic )

Round down to nearest integer value (result is double).

GAMMA
  • ( a:number -- result:number )

Gamma function Γ(x). Generalizes factorial: n! = GAMMA(n+1).

GCD
  • ( a:number b:number -- result:number )

Greatest common divisor (Euclidean algorithm).

HYPOT
  • ( a:number b:number -- c:number )

Euclidean distance: sqrt(a² + b²).

IM
  • ( z:complex -- im:number )

Extract the imaginary part of a complex.

INV
  • ( z:complex -- result:complex )
  • ( a:number -- result:number )
  • ( m:matrix -- inverse:matrix )
  • ( m:mx3 -- inverse:mx3 )
  • ( f:fraction -- inv:fraction )
  • ( symbolic )

Reciprocal or inverse — overloaded by type (1/x for numbers, fraction reciprocal, matrix / Mx3 inverse).

LCM
  • ( a:number b:number -- result:number )

Least common multiple.

LET
  • ( symbolic symbolic symbolic )

LGAMMA
  • ( a:number -- result:number )

Natural logarithm of the gamma function ln Γ(x). Useful for large arguments.

LHS
  • ( mathexpr -- mathexpr )

( mathexpr -- lhs-mathexpr ) Left-hand side of an Equal-rooted MathExpr. Non-Equal roots return the whole expression (implicit = 0 model).

LN
  • ( z:complex -- result:complex )
  • ( a:number -- result:number )
  • ( symbolic )

Natural logarithm (base e).

LOG10
  • ( z:complex -- result:complex )
  • ( a:number -- result:number )
  • ( symbolic )

Logarithm base 10.

LOG2
  • ( a:number -- result:number )
  • ( symbolic )

Logarithm base 2.

MAG
  • ( z:complex -- magnitude:number )

Magnitude |z| of a complex.

MAX
  • ( a:number b:number -- max:number )
  • ( symbolic symbolic )

Return the larger of two values.

MIN
  • ( a:number b:number -- min:number )
  • ( symbolic symbolic )

Return the smaller of two values.

MOD
  • ( a:number b:number -- remainder:number )

Modulo: NOS mod TOS. Integer or double.

nCr
  • ( n:number r:number -- result:number )

Combinations: n choose r = n! / (r! * (n-r)!).

nPr
  • ( n:number r:number -- result:number )

Permutations: n P r = n! / (n-r)!.

QUAD
  • ( double double double )
  • ( integer double double )
  • ( double integer double )
  • ( integer integer double )
  • ( double double integer )
  • ( integer double integer )
  • ( double integer integer )
  • ( integer integer integer )
  • ( symbolic symbolic symbolic )

Solve quadratic a·x²+b·x+c=0. Pops a, b, c; pushes two roots (real or complex).

QUARTIC
  • ( number number number number number -- array )

( a b c d e -- roots-array ) Solve ax^4 + bx^3 + cx^2 + dx + e = 0 via Ferrari's method. Returns 4 roots (Real ascending then Complex).

R->D
  • ( radians:number -- degrees:number )

Convert radians to degrees.

RE
  • ( z:complex -- re:number )

Extract the real part of a complex.

RHS
  • ( mathexpr -- mathexpr )

( mathexpr -- rhs-mathexpr ) Right-hand side of an Equal-rooted MathExpr. Non-Equal roots return Value(Integer(0)) — the implicit RHS in the = 0 model.

ROUND
  • ( a:number -- result:number )
  • ( symbolic )

Round to nearest integer value (result is double).

SIGN
  • ( a:number -- sign:number )

SIN
  • ( angle:complex -- result:complex )
  • ( angle:number -- result:number )
  • ( angle:quantity -- result:number )
  • ( symbolic )

Sine. Angle interpreted in current mode (DEG / RAD / GRAD).

SINH
  • ( z:complex -- result:complex )
  • ( x:number -- result:number )

Hyperbolic sine.

SOLUTION
  • ( mathexpr -- any )
  • ( mathexpr name -- any )
  • ( mathexpr object -- any )
  • ( mathexpr name object -- any )

Same as SOLVE but returns Object { ...bindings, target: value } — the complete picture. Auto-degrade case adds __satisfied__ field.

SOLVE
  • ( mathexpr -- any )
  • ( mathexpr name -- any )
  • ( mathexpr object -- any )
  • ( mathexpr name object -- any )

Solve an equation MathExpr for its sole unknown; return the bare value (or Array for multi-root). Four arities: ( eq -- ), ( eq name -- ), ( eq obj -- ), ( eq name obj -- ). Arity-2-obj auto-degrades to Boolean when all bound. See SOLUTION for the Object shape and SOLVE-EQ for the equation shape.

SOLVE-EQ
  • ( mathexpr -- any )
  • ( mathexpr name -- any )
  • ( mathexpr object -- any )
  • ( mathexpr name object -- any )

Same as SOLVE but returns MathExpr(target = value) — the equation form. Chains into further MathExpr work (LHS, RHS, DEPARSE, SUBST). Auto-degrade case returns MathExpr(target = <same-bindings-object>) — not typically useful; use SOLVE for that case.

SOLVE-RESID
  • ( mathexpr object -- number )
  • ( mathexpr -- number )

( eq [bindings] -- residual ) Evaluate lhs - rhs (or the whole expression if root is non-Equal) at the given bindings. Not a solver — no iteration, no target inference. All free variables must be resolvable.

SQ
  • ( z:complex -- result:complex )
  • ( n:number -- result:number )
  • ( f:fraction -- sq:fraction )

Square a fraction.

SQRT
  • ( z:complex -- result:complex )
  • ( a:number -- result:number )
  • ( f:fraction -- root:fraction )
  • ( symbolic )

Square root of a fraction (returns a fraction approximation).

SYMBOLS
  • ( mathexpr -- array )

( mathexpr -- names-array ) Free-Name set of the MathExpr with Constants filtered out. <expr> SYMBOLS SIZE 1_ == is the arity-1 SOLVE precondition idiom (Integer literal — SIZE returns Integer).

TAN
  • ( angle:complex -- result:complex )
  • ( angle:number -- result:number )
  • ( angle:quantity -- result:number )
  • ( symbolic )

Tangent. Angle interpreted in current mode (DEG / RAD / GRAD).

TANH
  • ( z:complex -- result:complex )
  • ( x:number -- result:number )

Hyperbolic tangent.

Contact

Send us a message — we'll reply by email.