Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: FP-математика
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
UniBomb
В общем сабж...

Есть ли у кого готовые алгоритмы высчитывания произведения, деления, вычитания и сложения многобайтных вещественных чисел. Если есть то попрошу поделится... Только не надо говорить, что есть такие замечательные вещи как книги и поисковики (а так же что есть готовые библиотечные функции и т.д. ибо мне по любому нужен ассемблерный код (avrasm), а следовательно вместо тупого переписывания кода из библиотек я хочу ещё и понять "как" и "что")... лучше на самом деле помогите дельным советом (в краёнем случае даёте ссылки на предлагаемые источники). Или вот что, на аднный момент я оперирую целочисленными числами, максимальная длина любого числа два байта, не катастрофически, если я добавлю ещё два байта (под дробую часть), тогда у меня получится число m.n, где m - его целая часть, а n - дробная. отсюда вопрос - как мне получить эту дробную часть скажем при делении (скажем нужно просто поделить остаток на делитель?)? и вообще, что будет представлять из себя эта дробная часть? Можно упростить задачу тем, что я оперирую беззнаковыми чмслами (в исходных даннных нет отрицательных значений).


ЗЫ:. помимо этого я также хочу собрать "коллекцию" алгоритмов математических операций(8*8=16, 16/16=8+8, 16*16=32, 32*32=64 и т.д.)
_Bill
Цитата(UniBomb @ Jul 24 2006, 14:55) *
В общем сабж...

Есть ли у кого готовые алгоритмы высчитывания произведения, деления, вычитания и сложения многобайтных вещественных чисел. Если есть то попрошу поделится... Только не надо говорить, что есть такие замечательные вещи как книги и поисковики (а так же что есть готовые библиотечные функции и т.д. ибо мне по любому нужен ассемблерный код (avrasm), а следовательно вместо тупого переписывания кода из библиотек я хочу ещё и понять "как" и "что")... лучше на самом деле помогите дельным советом (в краёнем случае даёте ссылки на предлагаемые источники). Или вот что, на аднный момент я оперирую целочисленными числами, максимальная длина любого числа два байта, не катастрофически, если я добавлю ещё два байта (под дробую часть), тогда у меня получится число m.n, где m - его целая часть, а n - дробная. отсюда вопрос - как мне получить эту дробную часть скажем при делении (скажем нужно просто поделить остаток на делитель?)? и вообще, что будет представлять из себя эта дробная часть? Можно упростить задачу тем, что я оперирую беззнаковыми чмслами (в исходных даннных нет отрицательных значений).


ЗЫ:. помимо этого я также хочу собрать "коллекцию" алгоритмов математических операций(8*8=16, 16/16=8+8, 16*16=32, 32*32=64 и т.д.)

Для начала ссылка AN575
Для чисел с фиксированной точкой лучше использовать либо только целые (точка фиксирована после младшего значащего разряда), либо только дробные (точкак фиксирована после старшего, знакового, разаряда). Иначе процедуры арифметических действий сильно усложнятся. Прще перейти к арифметике с плавающей точкой.
Что касается AVR, то можно посмотреть библиотеку libc. Я думаю, по ней можно вполне разобраться.
UniBomb
ну хоть кто то ответил... по ходу решения задачи (правда я ничего так и не нашёл) задача всё усложнялась... в общем в итоге я пришёл к тому, что без фещественных чисел мне не обойтись... причём чмсла знаковые... я вот теперь не знаю, какого типа числа мне подойдут - с фиксированной или с плавающей запятой - числа у меня не такие, но зато точность иногда бывает нужна до шестого-седьмого знака. библиотеки для сишных сред лечше мне давать, ибо весь проект написан на асме, а си - я не то что не знаю си, я просто никогда не работал в этих средах и пройдёт довольно много времени прежде чем я их овою.... поэтому помогите чисто теоретически - кто сслыкой на подходящую литературу, кто алгоритмом (сами мы не месные ^_^)...
_Bill
Цитата(UniBomb @ Aug 7 2006, 23:22) *
ну хоть кто то ответил... по ходу решения задачи (правда я ничего так и не нашёл) задача всё усложнялась... в общем в итоге я пришёл к тому, что без фещественных чисел мне не обойтись... причём чмсла знаковые... я вот теперь не знаю, какого типа числа мне подойдут - с фиксированной или с плавающей запятой - числа у меня не такие, но зато точность иногда бывает нужна до шестого-седьмого знака. библиотеки для сишных сред лечше мне давать, ибо весь проект написан на асме, а си - я не то что не знаю си, я просто никогда не работал в этих средах и пройдёт довольно много времени прежде чем я их овою.... поэтому помогите чисто теоретически - кто сслыкой на подходящую литературу, кто алгоритмом (сами мы не месные ^_^)...

А контроллер какой?
BratherLU
http://telesys.ru/wwwboards/dsp/258/messages/34535.shtml
Посмотрите тему, может найдете что-то для себя
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.