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

Function measure_pow

tests/fl/math/fixed_point.cpp:1547–1565  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1545}
1546
1547AccuracyResult measure_pow(float exponent, float baseLo, float baseHi) {
1548 AccuracyResult r = {};
1549 const int N = 10; // Spot testing: 10 key points adequate for base range coverage (was 50)
1550 float sumErr = 0;
1551 int count = 0;
1552 for (int i = 0; i < N; ++i) {
1553 float base = baseLo + (baseHi - baseLo) * i / (N - 1);
1554 float ref = fl::powf(base, exponent);
1555 if (ref > 32000.0f || ref < 0.0f) continue;
1556 float got = s16x16::pow(s16x16(base), s16x16(exponent)).to_float();
1557 float err = fl::fabsf(got - ref);
1558 sumErr += err;
1559 ++count;
1560 if (err > r.maxErr) { r.maxErr = err; r.worstInput = base; }
1561 }
1562 r.avgErr = count > 0 ? sumErr / count : 0;
1563 r.nSamples = count;
1564 return r;
1565}
1566
1567AccuracyResult measure_smoothstep() {
1568 AccuracyResult r = {};

Callers 1

FL_TEST_FILEFunction · 0.85

Calls 5

powfFunction · 0.85
fabsfFunction · 0.85
powFunction · 0.50
s16x16Class · 0.50
to_floatMethod · 0.45

Tested by

no test coverage detected