Skip to content

QuaternionNum

Defined in: quaternion/quaternion-num.ts:23

A quaternion a + bi + cj + dk, boxed as a value with its own ring API.

The contract shell over Quaternion. Every operation delegates to the free functions in quaternion.ts; no arithmetic happens in this class. The underlying tuple stores components as [b, c, d, a] — vector, then scalar; scalar and vector present the a + bi + cj + dk reading.

  • IRing<QuaternionNum>

readonly static IDENTITY: QuaternionNum

Defined in: quaternion/quaternion-num.ts:31

The quaternion 1 + 0i + 0j + 0k.

get scalar(): number

Defined in: quaternion/quaternion-num.ts:57

Scalar (real) part: the a in a + bi + cj + dk.

number


get vector(): readonly [number, number, number]

Defined in: quaternion/quaternion-num.ts:62

Vector (pure-quaternion) part: [b, c, d] for i, j, k components.

readonly [number, number, number]

add(other): QuaternionNum

Defined in: quaternion/quaternion-num.ts:88

The additive operation a + b.

QuaternionNum

QuaternionNum

IRing.add


conj(): QuaternionNum

Defined in: quaternion/quaternion-num.ts:70

Conjugate conj(a + bi + cj + dk) = a − bi − cj − dk. Negates the vector part; leaves the scalar part unchanged.

QuaternionNum


inv(): QuaternionNum

Defined in: quaternion/quaternion-num.ts:84

Multiplicative inverse q⁻¹ = conj(q) / ‖q‖².

QuaternionNum

When called on the zero quaternion.


mul(other): QuaternionNum

Defined in: quaternion/quaternion-num.ts:101

Hamilton product this · other — non-commutative.

QuaternionNum

QuaternionNum

IRing.mul


neg(): QuaternionNum

Defined in: quaternion/quaternion-num.ts:96

The additive inverse −a.

QuaternionNum

IRing.neg


norm(): number

Defined in: quaternion/quaternion-num.ts:75

Norm ‖q‖ = √(a² + b² + c² + d²). Always non-negative.

number


sub(other): QuaternionNum

Defined in: quaternion/quaternion-num.ts:92

Subtraction a − b, equivalent to a.add(b.neg()).

QuaternionNum

QuaternionNum

IRing.sub


toTuple(): Quaternion

Defined in: quaternion/quaternion-num.ts:52

The underlying [b, c, d, a] tuple, for callers working at the arithmetic layer.

Quaternion


static from(scalar, vector): QuaternionNum

Defined in: quaternion/quaternion-num.ts:36

Creates a quaternion from its scalar part and its i, j, k vector part.

number

readonly [number, number, number]

QuaternionNum


static fromTuple(value): QuaternionNum

Defined in: quaternion/quaternion-num.ts:44

Wraps an already-computed Quaternion tuple [b, c, d, a].

Quaternion

QuaternionNum