Проблема с округлениями чисел float и "необычные" последствия всего этого на примере большой учетной системы. Читать далее
В этой статье мы поговорим о «магической» константе 0x5f3759df, лежащей в основе элегантного алгоритмического трюка для быстрого вычисления обратного квадратного корня. Вот полная реализация этого алгоритма: float FastInvSqrt(float x) { float xhalf = 0.5f * x; int i = *(int*)&x; // представим биты float в виде…
В 2005 году id Software опубликовала под лицензией GPL-2 исходный код своей игры 1999 года Quake III Arena. В файле code/game/q_math.c есть функция для вычисления обратного квадратного корня числа, которая на первый взгляд выглядит очень любопытным алгоритмом: float Q_rsqrt( float number ) { long i; float x2, y; const float threehalfs =…
Большинство компаний до сих пор уверены, что налоговая «проверяет документы». Договор есть, акт подписан, оплата прошла — значит, всё в порядке. Проблема в том, что эта логика больше не работает.Сегодня налоговая — это не про инспектора с папкой. Это система, которая сравнивает…