Быстрый целочисленный sqrt с использованием Math.SqrtC#

Место общения программистов C#
Anonymous
Быстрый целочисленный sqrt с использованием Math.Sqrt

Сообщение Anonymous »

Я пытаюсь вычислить квадратный корень из целочисленных значений. Он не обязательно должен быть очень точным, но он должен быть быстрым и детерминированным на разных платформах. Я использую это для игры в реальном времени с фиксированной сетью.
Я подумываю просто привести значение к double и использовать Math.Sqrt, который, как я предполагаю, имеет аппаратное ускорение и должен быть достаточно быстрым. Но могу ли я рассчитывать на то, что это будет совершенно детерминировано на всех платформах для всех возможных входных данных (скажем, uint64), включая приведение обратно к целому числу? Судя по моим поискам в Google по этому вопросу, кажется, что sqrt с плавающей запятой обычно детерминирован на разных платформах (в отличие, например, от cos/tan), но кто-нибудь знает об этом больше?

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