Core utility functions for generic mathematical and array operations.
This module provides common helpers used across the color library.
Members
(static, constant) D65_WHITE_POINT_XYZ :Readonly.<{X: number, Y: number, Z: number}>
Standard CIE Illuminant D65 reference white point in XYZ, scaled to Y=100.
Type:
- Readonly.<{X: number, Y: number, Z: number}>
- Source:
- See:
Methods
(static) clamp(value, min, max) → {number}
Clamps a value between a minimum and maximum.
Parameters:
Name | Type | Description |
---|---|---|
value |
number | The value to clamp. |
min |
number | The minimum value. |
max |
number | The maximum value. |
Returns:
The clamped value.
- Type
- number
(static) degreesToRadians(degrees) → {number}
Converts an angle from degrees to radians.
Parameters:
Name | Type | Description |
---|---|---|
degrees |
number | The angle in degrees. |
Throws:
-
if degrees is not a number.
- Type
- TypeError
Returns:
The angle in radians.
- Type
- number
Example
const rad = degreesToRadians(180); // Math.PI
(static) lerp(a, b, t) → {number}
Performs linear interpolation between two values.
Parameters:
Name | Type | Description |
---|---|---|
a |
number | The start value. |
b |
number | The end value. |
t |
number | The interpolation factor (usually between 0 and 1). |
Returns:
The interpolated value.
- Type
- number
(static) multiplyMatrixVector(matrix, vector) → {Array.<number>}
Multiplies a 3x3 matrix by a 3x1 column vector.
Optimized inline implementation from abridged version.
Parameters:
Name | Type | Description |
---|---|---|
matrix |
ReadonlyArray.<ReadonlyArray.<number>> | The 3x3 matrix. |
vector |
ReadonlyArray.<number> | The 3-element vector. |
Throws:
-
if inputs are not valid matrix/vector.
- Type
- TypeError
Returns:
The resulting 3-element vector.
- Type
- Array.<number>
(static) normalizeHue(h) → {number}
Normalizes a hue angle to the range [0, 360).
Parameters:
Name | Type | Description |
---|---|---|
h |
number | The hue angle in degrees. |
Returns:
The normalized hue angle.
- Type
- number
(static) radiansToDegrees(radians) → {number}
Converts an angle from radians to degrees.
Parameters:
Name | Type | Description |
---|---|---|
radians |
number | The angle in radians. |
Throws:
-
if radians is not a number.
- Type
- TypeError
Returns:
The angle in degrees.
- Type
- number
Example
const deg = radiansToDegrees(Math.PI); // 180
(static) signPreservingPow(value, exponent) → {number}
Applies an exponent to the absolute value of a number, then reapplies the original sign.
result = sign(value) * (abs(value) ^ exponent)
Parameters:
Name | Type | Description |
---|---|---|
value |
number | The base value. |
exponent |
number | The exponent. |
Throws:
-
if inputs are not numbers.
- Type
- TypeError
Returns:
The result of the sign-preserving power operation.
- Type
- number
Example
signPreservingPow(-8, 1/3); // -2 (cube root of -8)
signPreservingPow(9, 0.5); // 3 (square root of 9)