< Br />float calc(float y, float z)
{ return sqrt(y * y + z * z) / 100; }
Где y и z могут быть ненормальными числами, давайте предположим две возможные ситуации, когда только y, только z или, возможно, оба, в совершенно случайным образом, могут быть ненормальными числами
- 50% случаев
-
Что будет хуже, штраф за неправильное представление филиала (для 50% или
, чтобы правильно интерпретировать, какие операции могут быть нормальными или денамальными в предыдущем кусочке кода, который я хотел бы получить, чтобы получить некоторые одноклассные, но совершенно необязательные ответы о следующих тесно связанных вопросах : < /p>
float x = 0f; // Will x be just 0 or maybe some number like 1e-40;
float y = 0.; // I assume the conversion is just thin-air here and the compiler will see just a 0.
0; // Is "exact zero" a normal or a denormal number?
float z = x / 1; // Will this "no-op" (x == 0) cause z be something like 1e-40 and thus denormal?
float zz = x / c; // What about a "no-op" operating against any compiler-time constant?
bool yzero = y < 1e-37; // Have comparisions any performance penalty when y is denormal or they don't?
Подробнее здесь: https://stackoverflow.com/questions/609 ... redictions
Мобильная версия