7#include "../rapid/numeric_array.hpp"
8#include "../geometry/matrix.hpp"
9#include "../geometry/scale.hpp"
13[[nodiscard]]
constexpr matrix3
14color_primaries_to_RGBtoXYZ(
float wx,
float wy,
float rx,
float ry,
float gx,
float gy,
float bx,
float by)
noexcept
16 ttlet w = vector3{wx, wy, 1.0f - wx - wy};
17 ttlet r = vector3{rx, ry, 1.0f - rx - ry};
18 ttlet g = vector3{gx, gy, 1.0f - gx - gy};
19 ttlet b = vector3{bx, by, 1.0f - bx - by};
22 ttlet W = vector3{1.0f * (w.x() / w.y()), 1.0f, 1.0f * (w.z() / w.y())};
25 ttlet C = matrix3{r, g, b};
28 ttlet S = scale3{~C * W};