Gast
#6773812
Für eine Firmware habe ich eine LUT implementiert, die std::lerp benutzt. Ich wurde jetzt jedoch überrascht, dass ein lookup mit NaN eine Zahl ergab (also nicht NaN). Das macht gar keinen Sinn. Als compiler benutze ich GCC9. Stellt sich heraus, dass
1 | |
2 | |
siehe hier: https://godbolt.org/z/Y6dKqqKP6 Link zu lerp: https://en.cppreference.com/w/cpp/numeric/lerp Bonus: std::lerp() ist gemäß c++20 constexpr, aber GCC hat da anscheinend einen bug und std::lerp() ist nicht constexpr wenn t==NaN. Da std::lerp a + t*(b - a) implementieren soll, scheint die Implementierung von GCC fehlerhaft zu sein.