НЕТ! НЕТ! (+)
(«Телесистемы»: Конференция 'Микроконтроллеры и их применение')

миниатюрный аудио-видеорекордер mAVR

Отправлено SM 19 августа 2004 г. 14:06
В ответ на: т.е. v -- это как бы первое приближение результата? отправлено bialix 19 августа 2004 г. 13:47

Надо похоже Вам сменить тормозную жидкость :)

Имеем v.
1) y=1/v; // приближенно, табличкой. Например получили старшие значащие 4 бита мантиссы.
2) y = y*(2 - v*y); // Имеем уже точность 8 бит.
3) y = y*(2 - v*y); // Имеем уже точность 16 бит.
4) y = y*(2 - v*y); // Имеем уже точность 32 бит

имеем y с точностью, достаточной для IEEE float.

Например для ЦП TMS320C6711 это реализуется так (вход в регистре A4, выход в A5, линейный ассемблер):


RCPSP .S1 A4,A5 ; A5=1/A4 8-бит точность
MVKL .S1 FLT_CONST_2,A6
MVKH .S1 FLT_CONST_2,A6
MPYSP .M1 A4,A5,A7
SUBSP .L1 A6,A7,A7
MPYSP .M1 A7,A5,A5 ; A5 уже имеет 16 бит точность
MPYSP .M1 A4,A5,A7
SUBSP .L1 A6,A7,A7
MPYSP .M1 A7,A5,A5 ; A5 уже имеет 32 бит точность, что более чем достаточно


Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru