MCPcopy Create free account
hub / github.com/FastLED/FastLED / easeInOutQuad16

Function easeInOutQuad16

src/fl/math/ease.cpp.hpp:195–213  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

193}
194
195u16 easeInOutQuad16(u16 x) {
196 // 16-bit quadratic ease-in / ease-out function
197 constexpr u32 MAX = 0xFFFF; // 65535
198 constexpr u32 HALF = (MAX + 1) >> 1; // 32768
199 constexpr u32 DENOM = MAX; // divisor
200 constexpr u32 ROUND = DENOM >> 1; // for rounding
201
202 if (x < HALF) {
203 // first half: y = 2·(x/MAX)² → y_i = 2·x² / MAX
204 fl::u64 xi = x;
205 fl::u64 num = 2 * xi * xi + ROUND; // 2*x², +half for rounding
206 return u16(num / DENOM);
207 } else {
208 // second half: y = 1 − 2·(1−x/MAX)² → y_i = MAX − (2·(MAX−x)² / MAX)
209 fl::u64 d = MAX - x;
210 fl::u64 num = 2 * d * d + ROUND; // 2*(MAX−x)², +half for rounding
211 return u16(MAX - (num / DENOM));
212 }
213}
214
215u16 easeInOutCubic16(u16 x) {
216 const u32 MAX = 0xFFFF; // 65535

Callers 2

ease16Function · 0.85
FL_TEST_FILEFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected