Reference · Linear Algebra
Linear Algebra
28 words. Sorted alphabetically.
->MATRIX ( a:number rows:integer cols:integer -- m:matrix )
Build N×M matrix. Stack: v[0][0]...v[N-1][M-1] rows cols (row-major, TOS=last element).
->MX3 ( e11:number e12:number e13:number e21:number e22:number e23:number e31:number e32:number e33:number -- m:mx3 )
Create a 3×3 matrix from 9 doubles (row-major: e11..e33).
->VEC ( a:number n:integer -- v:vector )
Build a vector from N doubles. TOS=N; below = elements bottom→TOS = v[0]...v[N-1].
COLS ( m:matrix -- cols:integer )
Number of columns of a matrix.
COLVEC->VEC ( m:matrix -- v:vector )
Convert an N×1 matrix to a vector.
CRAMER ( A:matrix b:vector -- x:vector )
Solve A·x = b for x via Cramer's rule. A must be square and non-singular; b.size must equal A.rows.
CROSS3 ( a:vec3 b:vec3 -- cross:vec3 )
Cross product: v1 v2 CROSS3 → v1×v2.
DET ( m:matrix -- det:number )( m:mx3 -- det:number )
Determinant of a square matrix.
DOT3 ( a:vec3 b:vec3 -- dot:number )
Dot product of two Vec3 vectors.
GETCOL ( m:matrix n:number -- v:vector )
Extract column N (1-based) of a matrix as a vector.
GETROW ( m:matrix n:number -- v:vector )
Extract row N (1-based) of a matrix as a vector.
IDENTITY ( n:integer -- m:matrix )
Push an N×N identity matrix.
MATRIX-> ( m:matrix -- a:number rows:integer cols:integer )
Decompose matrix: pushes elements row-major, then rows, then cols.
MX3-> ( m:mx3 -- e11:number e12:number e13:number e21:number e22:number e23:number e31:number e32:number e33:number )
Explode a 3×3 matrix to 9 doubles (row-major).
MX3DIAG ( v:vec3 -- m:mx3 )
Create a diagonal 3×3 matrix from a Vec3.
NORM3 ( v:vec3 -- norm:number )
Euclidean norm (length) of a Vec3.
ROWS ( m:matrix -- rows:integer )
Number of rows of a matrix.
SETCOL ( m:matrix v:vector n:number -- m':matrix )
Replace column N (1-based) of a matrix with a vector; vector length must equal matrix.rows.
SETROW ( m:matrix v:vector n:number -- m':matrix )
Replace row N (1-based) of a matrix with a vector; vector length must equal matrix.cols.
SIZE ( v:vector -- n:integer )( array -- integer )
( array -- n ) Push element count of an array as an integer. Same word overloads on Vector (matrix-dict) when both packages are loaded.
TRANS ( m:matrix -- transpose:matrix )( m:mx3 -- transpose:mx3 )
Transpose of a matrix.
VDOT ( a:vector b:vector -- dot:number )
Dot product of two equal-length vectors (NOS · TOS).
VEC-> ( v:vector -- a:number n:integer )
Decompose vector: pushes v[0]...v[N-1] then N.
VEC->COLVEC ( v:vector -- m:matrix )
Convert a vector to an N×1 column-vector matrix.
VEC->ROWVEC ( v:vector -- m:matrix )
Convert a vector to a 1×N row-vector matrix.
VEC->VEC3 ( v:vector -- result:vec3 )
Convert a 3-element vector to a VEC3.
VEC3->VEC ( v:vec3 -- result:vector )
Convert a VEC3 to a 3-element vector.
VNORM ( v:vector -- norm:number )
L2 (Euclidean) norm of a vector.