linear_srgb_to_oklab = function(c) {
let l = 0.4121656120 * c.r + 0.5362752080 * c.g + 0.0514575653 * c.b;
let m = 0.2118591070 * c.r + 0.6807189584 * c.g + 0.1074065790 * c.b;
let s = 0.0883097947 * c.r + 0.2818474174 * c.g + 0.6302613616 * c.b;
let l_ = Math.cbrt(l);
let m_ = Math.cbrt(m);
let s_ = Math.cbrt(s);
return {
L: 0.2104542553 * l_ + 0.7936177850 * m_ - 0.0040720468 * s_,
a: 1.9779984951 * l_ - 2.4285922050 * m_ + 0.4505937099 * s_,
b: 0.0259040371 * l_ + 0.7827717662 * m_ - 0.8086757660 * s_
};
}