Module: utils

Core utility functions for generic mathematical and array operations. This module provides common helpers used across the color library.
Source:

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.
Source:
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.
Source:
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).
Source:
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.
Source:
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.
Source:
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.
Source:
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.
Source:
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)