Форум: "Потрепаться";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];
Внизкак работает корень квадратный? Найти похожие ветки
← →
Vlad Oshin © (2005-07-29 14:40) [0]как реализаван fsqrt в сопроцессоре?
а то есть мнение...
← →
ocean (2005-07-29 14:44) [1]полагаю, приближает рядом Тэйлора
← →
Jeer © (2005-07-29 15:03) [2]Не факт.
← →
Плохиш © (2005-07-29 15:22) [3]Да ладно вам, обычный TStringList в формате <число>=<корень>.
← →
wal © (2005-07-29 15:23) [4]Возможно пополамным делением, возможно суммированием ряда, возможно там таблицы типа брадиса есть. Лично мне первый вариант нравится. А какая разница? Работает и не трогай :)
С уважением.
← →
jack128 © (2005-07-29 15:28) [5]wal © (29.07.05 15:23) [4]
Лично мне первый вариант нравится
скорее все таки каким то рядом... наврядли тейлора, наверника есть какие нить другие, которые быстрее сходятся...
← →
Anatoly Podgoretsky © (2005-07-29 15:36) [6]Давно читал, разложением рядов, каким именно не помню.
← →
DiamondShark © (2005-07-29 15:38) [7]Таблично.
← →
oldman © (2005-07-29 15:38) [8]
>
> Vlad Oshin © (29.07.05 14:40)
> как реализаван fsqrt в сопроцессоре?
> а то есть мнение...
хм...
Реши сам N способами. Заодно выяснишь, как реализован в сопроцессоре...
Хотя, если во всех N методах результат до 32 знака совпадет - какая разница?
← →
jack128 © (2005-07-29 15:39) [9]oldman © (29.07.05 15:38) [8]
Хотя, если во всех N методах результат до 32 знака совпадет - какая разница?
разница в скорости
← →
Vlad Oshin © (2005-07-29 16:03) [10]
> oldman © (29.07.05 15:38) [8]
решил
есть замечательная ф-ла? рассмотренная недавно, по методу г.Перельмана
и последствия из нее
labl1:
c:=b+(a-b*b)/2*b
if abs(и-c)>0.00001 then goto labl1;
такое дает тики на (52000-50000) по сравнению с обычным sqrt
правда если бать примерное значение и
т.е. b*b~a
например для а<10
хватит b=2.5
или a<100 >10
b=8
или 7, 9, 10, 6
сходимость очень быстрая
тиков очень мало, 20%
где то
единственная пробдлема - чему равно Б?
в принципице, оно может быт любым, или чем точнее Б к sqrt от А тем быстрее сходимость
← →
Vlad Oshin © (2005-07-29 16:07) [11]
> Anatoly Podgoretsky © (29.07.05 15:36) [6]
> Давно читал, разложением рядов, каким именно не помню.
чаще всего г.Ньютон фигурирует
← →
Jeer © (2005-07-29 16:11) [12]Для фиксированной сетки очень эффективны были методы "цифра за цифрой" (иные названия: алгоритм Волдера, CORDIC)
Кстати, у меня ощущение, что в сопроцессоре функция одновременного вычисления sin и cos ( SinCos() в Дельфи ) именно так и выполнена
← →
Anatoly Podgoretsky © (2005-07-29 16:11) [13]Главное, что раскладывают, пока относительно квадратным не станет.
← →
Vlad Oshin © (2005-07-30 02:58) [14]
> Jeer © (29.07.05 16:11) [12]
> Для фиксированной сетки очень эффективны были методы "цифра
> за цифрой" (иные названия: алгоритм Волдера, CORDIC)
>
> Кстати, у меня ощущение, что в сопроцессоре функция одновременного
> вычисления sin и cos ( SinCos() в Дельфи ) именно так и
> выполнена
не понял ничего
sin, как и fsqrt объявлен, но не описан
т.е. это работает аппаратно? как бы
получается так
и, получается, что можно усовершенствовать
?
> DiamondShark © (29.07.05 15:38) [7]
> Таблично.
точно?
← →
Vlad Oshin © (2005-07-30 03:17) [15]был у нас препод
кстати, это он с БГ жил вместе на одной кв., в Ленинграде
вот он говрил: если Вы вдруг чего0то изобрели - приходите ко мне, я Вам 2 поставлю, и делов то.
:)
можть к нему пора сходить :)
← →
Юрий Зотов © (2005-07-30 06:07) [16]Все вышесказанное - фигня.
Правильный ответ такой - бесшумно.
← →
vidiv © (2005-07-30 07:40) [17]
> Юрий Зотов © (30.07.05 06:07) [16]
Неправда, у меня проц начинает шуметь когда его напрягаешь! наверняка если напрягать его этой командой - он тоже шуметь будет!
← →
uw © (2005-07-30 08:36) [18]Ньютон сходится очень быстро, но все-таки требует много делений и сложений. Тем не менее, библиотеки С для микропроцессоров используют, как правило, именно Ньютона. Я их переписывал, используя школьный алгоритм извлечения корня: разбиваем число на группы по две цифры, начиная справа, для старшей группы подбираем наибольшее число, квадрат которого не превосходит значения этой групыы, и т.д. В двоичной арифметике этот алгоритм чрезвычайно эффективен, и извлечение корня оказывается только в пару раз медленнее, чем деление. Думаю, в сопроцессорах так и делается.
← →
SergP © (2005-07-30 09:08) [19]
> [17] vidiv © (30.07.05 07:40)
>
> > Юрий Зотов © (30.07.05 06:07) [16]
>
> Неправда, у меня проц начинает шуметь когда его напрягаешь!
>
Еще бы... Если там такая толпа битов бегает. :-))
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.08.21;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.033 c