we want to know the shape of the srgb/dp3/bt2020 gamut in oklab space. we know that their respective gamut function dont affect their shape. only the distribution of points on the shape. 

anyway, srgb starts off as the shape (p, q, r) where p, q, r ∈ [0, 1]. then it gets transformed by srgb_to_lms matrix. then we take its cbrt. then it gets transformed by lms_to_oklab matrix

    r, g, b = rgb

    r = r / 12.92 if r <= 0.04045 else ((r + 0.055) / 1.055) ** 2.4
    g = g / 12.92 if g <= 0.04045 else ((g + 0.055) / 1.055) ** 2.4
    b = b / 12.92 if b <= 0.04045 else ((b + 0.055) / 1.055) ** 2.4

    l = (0.4121764591770371  * r + 0.536273974269589   * g + 0.05144037229550145 * b) ** 0.3333333333333333
    m = (0.2119091995880486  * r + 0.680717870982313   * g + 0.10739984387775395 * b) ** 0.3333333333333333
    s = (0.08834481407213206 * r + 0.28185396309857735 * g + 0.6302808688015095  * b) ** 0.3333333333333333
    
    return (0.21045426827458136  * l + 0.7936177747300267 * m - 0.004072043004608034 * s,
            1.9779985323885083   * l - 2.428592241936286  * m + 0.450593709547778    * s,
            0.025904042487658187 * l + 0.7827717124269178 * m - 0.808675754914576    * s)
	

	Lab = LMS_TO_OKLAB × cbrt(SRGB_TO_LMS × srgb)
