Skip to content

Linalg

Auto-generated from src/stdlib/linalg.mcrs — do not edit manually.

API


vec2d_dot v2.0.0

Dot product of two 2D vectors.

redscript
fn vec2d_dot(ax: double, ay: double, bx: double, by: double): double

Parameters

ParameterDescription
axX component of vector A
ayY component of vector A
bxX component of vector B
byY component of vector B

Returns: ax*bx + ay*by

Example

redscript
let d: double = vec2d_dot(1.0d, 0.0d, 0.0d, 1.0d)

vec2d_length v2.0.0

Euclidean length of a 2D vector.

redscript
fn vec2d_length(x: double, y: double): double

Parameters

ParameterDescription
xX component
yY component

Returns: sqrt(x² + y²)

Example

redscript
let len: double = vec2d_length(3.0d, 4.0d)

vec2d_dist v2.0.0

Euclidean distance between two 2D points.

redscript
fn vec2d_dist(ax: double, ay: double, bx: double, by: double): double

Parameters

ParameterDescription
axX coordinate of point A
ayY coordinate of point A
bxX coordinate of point B
byY coordinate of point B

Returns: sqrt((ax-bx)² + (ay-by)²)

Example

redscript
let dist: double = vec2d_dist(0.0d, 0.0d, 3.0d, 4.0d)

vec2d_normalize_x v2.0.0

X component of the normalized unit vector for a 2D vector.

Returns 0.0 if the vector has zero length.

redscript
fn vec2d_normalize_x(x: double, y: double): double

Parameters

ParameterDescription
xX component
yY component

Returns: x / ||(x, y)||, or 0.0 for a zero vector

Example

redscript
let nx: double = vec2d_normalize_x(3.0d, 4.0d)

vec2d_normalize_y v2.0.0

Y component of the normalized unit vector for a 2D vector.

Returns 0.0 if the vector has zero length.

redscript
fn vec2d_normalize_y(x: double, y: double): double

Parameters

ParameterDescription
xX component
yY component

Returns: y / ||(x, y)||, or 0.0 for a zero vector

Example

redscript
let ny: double = vec2d_normalize_y(3.0d, 4.0d)

vec3d_dot v2.0.0

Dot product of two 3D vectors.

redscript
fn vec3d_dot(ax: double, ay: double, az: double, bx: double, by: double, bz: double): double

Parameters

ParameterDescription
axX component of vector A
ayY component of vector A
azZ component of vector A
bxX component of vector B
byY component of vector B
bzZ component of vector B

Returns: ax*bx + ay*by + az*bz

Example

redscript
let d: double = vec3d_dot(1.0d, 0.0d, 0.0d, 0.0d, 1.0d, 0.0d)

vec3d_length v2.0.0

Euclidean length of a 3D vector.

redscript
fn vec3d_length(x: double, y: double, z: double): double

Parameters

ParameterDescription
xX component
yY component
zZ component

Returns: sqrt(x² + y² + z²)

Example

redscript
let len: double = vec3d_length(1.0d, 2.0d, 2.0d)

vec3d_dist v2.0.0

Euclidean distance between two 3D points.

redscript
fn vec3d_dist(ax: double, ay: double, az: double, bx: double, by: double, bz: double): double

Parameters

ParameterDescription
axX coordinate of point A
ayY coordinate of point A
azZ coordinate of point A
bxX coordinate of point B
byY coordinate of point B
bzZ coordinate of point B

Returns: sqrt((ax-bx)² + (ay-by)² + (az-bz)²)


vec3d_cross_x v2.0.0

X component of the cross product a × b.

redscript
fn vec3d_cross_x(ax: double, ay: double, az: double, bx: double, by: double, bz: double): double

Parameters

ParameterDescription
axX of A @param ay Y of A @param az Z of A
bxX of B @param by Y of B @param bz Z of B

Returns: ay*bz - az*by


vec3d_cross_y v2.0.0

Y component of the cross product a × b.

redscript
fn vec3d_cross_y(ax: double, ay: double, az: double, bx: double, by: double, bz: double): double

Parameters

ParameterDescription
axX of A @param ay Y of A @param az Z of A
bxX of B @param by Y of B @param bz Z of B

Returns: az*bx - ax*bz


vec3d_cross_z v2.0.0

Z component of the cross product a × b.

redscript
fn vec3d_cross_z(ax: double, ay: double, az: double, bx: double, by: double, bz: double): double

Parameters

ParameterDescription
axX of A @param ay Y of A @param az Z of A
bxX of B @param by Y of B @param bz Z of B

Returns: ax*by - ay*bx


vec3d_normalize_x v2.0.0

X component of the normalized unit vector for a 3D vector.

Returns 0.0 if the vector has zero length.

redscript
fn vec3d_normalize_x(x: double, y: double, z: double): double

Parameters

ParameterDescription
xX component @param y Y component @param z Z component

Returns: x / ||(x, y, z)||, or 0.0 for a zero vector

Example

redscript
let nx: double = vec3d_normalize_x(3.0d, 4.0d, 0.0d)

vec3d_normalize_y v2.0.0

Y component of the normalized unit vector for a 3D vector.

Returns 0.0 if the vector has zero length.

redscript
fn vec3d_normalize_y(x: double, y: double, z: double): double

Parameters

ParameterDescription
xX component @param y Y component @param z Z component

Returns: y / ||(x, y, z)||, or 0.0 for a zero vector


vec3d_normalize_z v2.0.0

Z component of the normalized unit vector for a 3D vector.

Returns 0.0 if the vector has zero length.

redscript
fn vec3d_normalize_z(x: double, y: double, z: double): double

Parameters

ParameterDescription
xX component @param y Y component @param z Z component

Returns: z / ||(x, y, z)||, or 0.0 for a zero vector


mat2d_det v2.0.0

Determinant of a 2×2 matrix [[a, b], [c, d]].

redscript
fn mat2d_det(a: double, b: double, c: double, d: double): double

Parameters

ParameterDescription
aElement [0,0] @param b Element [0,1]
cElement [1,0] @param d Element [1,1]

Returns: a*d - b*c

Example

redscript
let det: double = mat2d_det(1.0d, 2.0d, 3.0d, 4.0d)

mat2d_mul_r0c0 v2.0.0

Element [0,0] of the 2×2 matrix product M0 × M1.

redscript
fn mat2d_mul_r0c0(a0: double, b0: double, c0: double, d0: double, a1: double, b1: double, c1: double, d1: double): double

Parameters

ParameterDescription
a0M0 row-major elements (a0, b0, c0, d0)
a1M1 row-major elements (a1, b1, c1, d1)

Returns: a0*a1 + b0*c1


mat2d_mul_r0c1 v2.0.0

Element [0,1] of the 2×2 matrix product M0 × M1.

redscript
fn mat2d_mul_r0c1(a0: double, b0: double, c0: double, d0: double, a1: double, b1: double, c1: double, d1: double): double

Parameters

ParameterDescription
a0M0 row-major elements @param a1 M1 row-major elements

Returns: a0*b1 + b0*d1


mat2d_mul_r1c0 v2.0.0

Element [1,0] of the 2×2 matrix product M0 × M1.

redscript
fn mat2d_mul_r1c0(a0: double, b0: double, c0: double, d0: double, a1: double, b1: double, c1: double, d1: double): double

Parameters

ParameterDescription
a0M0 row-major elements @param a1 M1 row-major elements

Returns: c0*a1 + d0*c1


mat2d_mul_r1c1 v2.0.0

Element [1,1] of the 2×2 matrix product M0 × M1.

redscript
fn mat2d_mul_r1c1(a0: double, b0: double, c0: double, d0: double, a1: double, b1: double, c1: double, d1: double): double

Parameters

ParameterDescription
a0M0 row-major elements @param a1 M1 row-major elements

Returns: c0*b1 + d0*d1


mat2d_vecmul_x v2.0.0

X component of the 2×2 matrix–vector product M × v.

redscript
fn mat2d_vecmul_x(a: double, b: double, c: double, d: double, vx: double, vy: double): double

Parameters

ParameterDescription
aM[0,0] @param b M[0,1] @param c M[1,0] @param d M[1,1]
vxVector X component @param vy Vector Y component

Returns: a*vx + b*vy


mat2d_vecmul_y v2.0.0

Y component of the 2×2 matrix–vector product M × v.

redscript
fn mat2d_vecmul_y(a: double, b: double, c: double, d: double, vx: double, vy: double): double

Parameters

ParameterDescription
aM[0,0] @param b M[0,1] @param c M[1,0] @param d M[1,1]
vxVector X component @param vy Vector Y component

Returns: c*vx + d*vy


solve2d_x v2.0.0

X solution of the 2×2 linear system [a b; c d] * [x; y] = [ex; ey] via Cramer's rule.

Caller must ensure det(a, b, c, d) ≠ 0.

redscript
fn solve2d_x(a: double, b: double, c: double, d: double, ex: double, ey: double): double

Parameters

ParameterDescription
aM[0,0] @param b M[0,1]
cM[1,0] @param d M[1,1]
exRHS x @param ey RHS y

Returns: (ex*d - b*ey) / det

Example

redscript
let x: double = solve2d_x(1.0d, 0.0d, 0.0d, 1.0d, 3.0d, 4.0d)

solve2d_y v2.0.0

Y solution of the 2×2 linear system [a b; c d] * [x; y] = [ex; ey] via Cramer's rule.

Caller must ensure det(a, b, c, d) ≠ 0.

redscript
fn solve2d_y(a: double, b: double, c: double, d: double, ex: double, ey: double): double

Parameters

ParameterDescription
aM[0,0] @param b M[0,1]
cM[1,0] @param d M[1,1]
exRHS x @param ey RHS y

Returns: (a*ey - ex*c) / det

Example

redscript
let y: double = solve2d_y(1.0d, 0.0d, 0.0d, 1.0d, 3.0d, 4.0d)

Released under the MIT License.