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.