Штраф на производительность: денормализованные цифры по сравнению с ошибками филиала.C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Штраф на производительность: денормализованные цифры по сравнению с ошибками филиала.

Сообщение Anonymous »

Для тех, кто уже измерял или обладает глубокими знаниями о такого рода соображениях, предположим, что вам нужно сделать следующее (просто чтобы выбрать любой для примера) оператор с плавающей запятой: < /p>
< 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»