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.

Contact

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