math::linalg
math::linalg
Section titled “math::linalg”The linalg module provides vector operations on plain Array<number>
values: dot/cross products, norms, normalization, distance, and element-wise
arithmetic.
Import
Section titled “Import”use std::math::linalgFunctions
Section titled “Functions”linalg::dot(a, b) -> number
Section titled “linalg::dot(a, b) -> number”Dot product of two vectors of equal length.
linalg::dot([1, 2, 3], [4, 5, 6]) // 32linalg::cross(a, b) -> Array<number>
Section titled “linalg::cross(a, b) -> Array<number>”Cross product of two 3D vectors.
linalg::cross([1, 0, 0], [0, 1, 0]) // [0, 0, 1]linalg::norm(v) -> number
Section titled “linalg::norm(v) -> number”Euclidean (L2) length of a vector.
linalg::norm([3, 4]) // 5linalg::normalize(v) -> Array<number>
Section titled “linalg::normalize(v) -> Array<number>”Scale a vector to unit length. Returns the input unchanged when its norm is zero.
linalg::normalize([3, 4]) // [0.6, 0.8]linalg::distance(a, b) -> number
Section titled “linalg::distance(a, b) -> number”Euclidean distance between two vectors.
linalg::distance([0, 0], [3, 4]) // 5linalg::scale(v, s) -> Array<number>
Section titled “linalg::scale(v, s) -> Array<number>”Multiply every element of v by scalar s.
linalg::scale([1, 2, 3], 2) // [2, 4, 6]linalg::add(a, b) -> Array<number>
Section titled “linalg::add(a, b) -> Array<number>”Element-wise addition.
linalg::add([1, 2], [3, 4]) // [4, 6]linalg::sub(a, b) -> Array<number>
Section titled “linalg::sub(a, b) -> Array<number>”Element-wise subtraction (a - b).
linalg::sub([3, 4], [1, 2]) // [2, 2]See Also
Section titled “See Also”- math::rotation — 3D rotation math
- math::interpolation — bilinear/trilinear interpolation