|
FastLED 3.10.6
|
Does a + b fit an i64, for operands already known to be in range?
The negative bound stops one short of i64's minimum, deliberately. divideCoefficientQ16 and roundedDivI64 both negate the determinant, and negating the minimum is undefined behaviour – so this is what guarantees they never see it.
It is reachable, not theoretical. A single term cannot be the minimum because productFitsI64 rejects any product that large, but a sum can: 2^63 - 1 factors as 7^2 * 73 * 127 * 337 * 92737 * 649657, so one term can be made exactly -(2^63 - 1) from i32 entries and a second can contribute the remaining -1. tests/fl/gfx/device_solve.cpp carries the matrix.
Definition at line 56 of file device_solve.cpp.hpp.
References fl::FL_NO_EXCEPT, kI64Max, and sumFitsI64().
Referenced by cofactorQ32(), and sumFitsI64().
Here is the call graph for this function:
Here is the caller graph for this function: