Очень часто, при цифровой обработке сигналов необходимо вычислить длинну вектора, обычно это делается по формуле A=SQR(X^2+Y^2). Здесь возвести в квадрат значение не сложно, но операция вычисления квадратного корня не является простой операцией, особенно для микроконтроллеров.…
В этой статье мы исследуем проблему извлечения квадратного корня из перестановки p, иными словами задачу нахождения такой перестановки x, что x * x = p. Будет сформулирован критерий возможности извлечения квадратного корня, алгоритм нахождения корней и формула их подсчёта в общем виде. Автор не смог найти подтверждение полученной формулы в авторитетных источниках, поэтому читатель может сам оценить корректность моих рассуждений. Читать далее
В статье описан процесс разработки алгоритма функции вычисления любой степени положительного числа, использующего «магическую константу». Приведены результаты её сравнения с исходной функцией вычисления обратного квадратного корня, а также со стандартной функцией вычисления степени Math.Pow. Читать далее
В этой статье мы поговорим о «магической» константе 0x5f3759df, лежащей в основе элегантного алгоритмического трюка для быстрого вычисления обратного квадратного корня. Вот полная реализация этого алгоритма: float FastInvSqrt(float x) { float xhalf = 0.5f * x; int i = *(int*)&x; // представим биты float в виде…