|
FastLED 3.10.6
|
| bool fl::anonymous_namespace{device_solve.cpp.hpp}::emitterColumnQ16 | ( | const i32(&) | xy[2], |
| i32 | luminance, | ||
| i64(&) | column[3] ) |
One emitter's XYZ column at its own luminance, all in s16.16.
xyY_to_XYZ is x * Y * inv_y, which C++ groups left to right and so scales before it divides. This divides first, deliberately: in fixed point x * Y discards low bits the divide would have used. Measured against the float derivation over the study's corpus and four luminance sets, the worst coefficient error is 2899 ULP dividing first against 7363 scaling first, and the colour figure is the same either way. See ci/color_fixed_profile_study.py.
Definition at line 158 of file device_solve.cpp.hpp.
References emitterColumnQ16(), fl::FL_NO_EXCEPT, kQ16One, roundedDivideQ16(), fl::x, xy(), fl::y, and z.
Referenced by emitterColumnQ16().
Here is the call graph for this function:
Here is the caller graph for this function: