7#include "../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 = f32x4{wx, wy, 1.0f - wx - wy};
17 ttlet r = f32x4{rx, ry, 1.0f - rx - ry};
18 ttlet g = f32x4{gx, gy, 1.0f - gx - gy};
19 ttlet b = f32x4{bx, by, 1.0f - bx - by};
22 ttlet W = f32x4{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).xyz1()};