Сейчас я смотрю на конкретный алгоритм вычисления квадратного корня, который возвращает целую часть квадратного корня и остаток.
Так например: mysqrt(140) = 11*11 + 19 = integer 11, remainder 19
Вопрос в том, могу ли я вычислить квадратный корень как число с плавающей запятой, например квадратный корень из 140 составляет ~ 11,8321 ....?
редактировать из комментариев
Я смотрю на реализацию VHDL квадратного корня с фиксированной точкой, которая использует только двоичные операции, такие как сдвиг влево / вправо, сложение и вычитание.
... алгоритма было бы достаточно.
ИЗМЕНИТЬ 2. Я на самом деле читаю этот алгоритм здесь: http://pioneer.netserv.chula.ac.th/~achatcha/Publications/0012.pdf
Кажется, что лучшую точность можно получить, сдвинув подкоренное выражение влево на 2n. Я не совсем уверен, почему это работает? Может ли кто-нибудь объяснить мне
remainder 9
вместо19
). - person NPE   schedule 17.01.2012