FastLED 3.10.6
Loading...
Searching...
No Matches
fl::anonymous_namespace{device_solve.cpp.hpp} Namespace Reference

Functions

bool cofactorQ32 (i32 e, i32 i_, i32 f, i32 h, i64 *out) FL_NO_EXCEPT
 e * i - f * h, or false if any part of it leaves i64.
 
i64 divideCoefficientQ16 (i64 cofactor_q32, i64 determinant_q48) FL_NO_EXCEPT
 round(cofactor_q32 * 2^32 / determinant_q48), in s16.16, without a 128-bit intermediate.
 
i32 dotSolveRowQ16 (const i32(&row)[3], const i32(&v)[3]) FL_NO_EXCEPT
 
bool emitterColumnQ16 (const i32(&xy)[2], i32 luminance, i64(&column)[3]) FL_NO_EXCEPT
 One emitter's XYZ column at its own luminance, all in s16.16.
 
bool productFitsI64 (i64 a, i64 b) FL_NO_EXCEPT
 Does a * b fit an i64?
 
i64 roundedDivI64 (i64 numerator, i64 denominator) FL_NO_EXCEPT
 Nearest integer, halves away from zero.
 
i64 roundedDivideQ16 (i64 numerator, i64 denominator) FL_NO_EXCEPT
 Nearest integer of numerator / denominator, halves away from zero.
 
bool sumFitsI64 (i64 a, i64 b) FL_NO_EXCEPT
 Does a + b fit an i64, for operands already known to be in range?
 

Variables

constexpr i64 kI64Max = 9223372036854775807LL
 
constexpr i32 kMaxCoefficient = 21845
 Largest coefficient magnitude the build accepts, in whole units.
 
constexpr i64 kQ16One = 65536
 One, in s16.16.