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.
Implements
Section titled “Implements”IRing<QuaternionNum>
Properties
Section titled “Properties”IDENTITY
Section titled “IDENTITY”
readonlystaticIDENTITY:QuaternionNum
Defined in: quaternion/quaternion-num.ts:31
The quaternion 1 + 0i + 0j + 0k.
Accessors
Section titled “Accessors”scalar
Section titled “scalar”Get Signature
Section titled “Get Signature”get scalar():
number
Defined in: quaternion/quaternion-num.ts:57
Scalar (real) part: the a in a + bi + cj + dk.
Returns
Section titled “Returns”number
vector
Section titled “vector”Get Signature
Section titled “Get Signature”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.
Returns
Section titled “Returns”readonly [number, number, number]
Methods
Section titled “Methods”add(
other):QuaternionNum
Defined in: quaternion/quaternion-num.ts:88
The additive operation a + b.
Parameters
Section titled “Parameters”QuaternionNum
Returns
Section titled “Returns”QuaternionNum
Implementation of
Section titled “Implementation of”IRing.add
conj()
Section titled “conj()”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.
Returns
Section titled “Returns”QuaternionNum
inv():
QuaternionNum
Defined in: quaternion/quaternion-num.ts:84
Multiplicative inverse q⁻¹ = conj(q) / ‖q‖².
Returns
Section titled “Returns”QuaternionNum
Throws
Section titled “Throws”When called on the zero quaternion.
mul(
other):QuaternionNum
Defined in: quaternion/quaternion-num.ts:101
Hamilton product this · other — non-commutative.
Parameters
Section titled “Parameters”QuaternionNum
Returns
Section titled “Returns”QuaternionNum
Implementation of
Section titled “Implementation of”IRing.mul
neg():
QuaternionNum
Defined in: quaternion/quaternion-num.ts:96
The additive inverse −a.
Returns
Section titled “Returns”QuaternionNum
Implementation of
Section titled “Implementation of”IRing.neg
norm()
Section titled “norm()”norm():
number
Defined in: quaternion/quaternion-num.ts:75
Norm ‖q‖ = √(a² + b² + c² + d²). Always non-negative.
Returns
Section titled “Returns”number
sub(
other):QuaternionNum
Defined in: quaternion/quaternion-num.ts:92
Subtraction a − b, equivalent to a.add(b.neg()).
Parameters
Section titled “Parameters”QuaternionNum
Returns
Section titled “Returns”QuaternionNum
Implementation of
Section titled “Implementation of”IRing.sub
toTuple()
Section titled “toTuple()”toTuple():
Quaternion
Defined in: quaternion/quaternion-num.ts:52
The underlying [b, c, d, a] tuple, for callers working at the arithmetic
layer.
Returns
Section titled “Returns”from()
Section titled “from()”
staticfrom(scalar,vector):QuaternionNum
Defined in: quaternion/quaternion-num.ts:36
Creates a quaternion from its scalar part and its i, j, k vector part.
Parameters
Section titled “Parameters”scalar
Section titled “scalar”number
vector
Section titled “vector”readonly [number, number, number]
Returns
Section titled “Returns”QuaternionNum
fromTuple()
Section titled “fromTuple()”
staticfromTuple(value):QuaternionNum
Defined in: quaternion/quaternion-num.ts:44
Wraps an already-computed Quaternion tuple [b, c, d, a].
Parameters
Section titled “Parameters”Returns
Section titled “Returns”QuaternionNum