Название: int_sqrt
Нотация: самописная функция, предназначенная для вычисления корня у значений целочисленного типа. Аналог нативного floatsqroot и си-шного sqrt.
Производительность: при 10k итераций тесты возвращают результат, равный 0-2 ms.
Плюсы реализации:
• При написании независимых систем вам не придётся подгружать библиотеку float для подсчётов, с применением лишь одной функции.
• Не требует преобразований целочисленных значений в вещественные, в отличие от того же floatsqroot.
Минусы реализации: думаю, что объяснять причины отсутствия поддержки функцией значений вещественного типа - не нужно.
Пример использования(работоспособность):
Исходный код:PHP код:
main()
{
new
test_value = 250;
printf("%d", int_sqrt(test_value + 5));
//result = 15
}
Автор: SooBad.PHP код:
stock int_sqrt(value)
{
new
result,
temp,
degr_count;
for(new i = 3; i >= 0; i--)
{
temp = degr_count |= 0b11 << (0b10 * i) & value;
returning:
result ^= 0b1 << i;
if(temp < (result * result))
goto returning;
}
return result;
}