linToOklab function
Linear sRGB → OKLab (sign-matched cube root).
Implementation
Lab linToOklab(LinRgb c) {
final (r, g, b) = c;
final l = detCbrt(_rgb2lms[0] * r + _rgb2lms[1] * g + _rgb2lms[2] * b);
final m = detCbrt(_rgb2lms[3] * r + _rgb2lms[4] * g + _rgb2lms[5] * b);
final s = detCbrt(_rgb2lms[6] * r + _rgb2lms[7] * g + _rgb2lms[8] * b);
return (
_lms2lab[0] * l + _lms2lab[1] * m + _lms2lab[2] * s,
_lms2lab[3] * l + _lms2lab[4] * m + _lms2lab[5] * s,
_lms2lab[6] * l + _lms2lab[7] * m + _lms2lab[8] * s,
);
}