реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> 64-x битный double
Skaf
сообщение Jan 13 2012, 06:22
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 228
Регистрация: 4-06-09
Пользователь №: 49 940



Цитата
Можно ссылку?


http://www.mikrocontroller.net/topic/85256#new
Go to the top of the page
 
+Quote Post
maksimp
сообщение Jan 13 2012, 08:51
Сообщение #17


Местный
***

Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023



Цитата(Skaf @ Jan 13 2012, 09:22) *

Спасибо! Очень интересно посмотреть. И под другие процессоры можно приспособить. Скорость указанная там интересна - 1000 умножений в секунду или 400 делений в секунду на ATMega32 (16 MHz).
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 13 2012, 10:52
Сообщение #18


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(maksimp @ Jan 13 2012, 12:51) *
Скорость указанная там интересна - 1000 умножений в секунду или 400 делений в секунду на ATMega32 (16 MHz).


Цитата
float64_t f_div(float64_t fa, float64_t fb )
/***********************************************************/
{
float64_t x;

x=f_inverse(fb);
x=f_mult(fa,x);
return(x);
}

А в инверсии - CORDIC ...хм... Интересно вникнуть, кто будет быстрее - прямое деление на асме или тяжелые вычисления на Си. Вообще, на первый взгляд, либа тяжелющщщщая.
ЗЫ если быть точнее, то это не CORDIC, только я не знаю, как оно называется sm.gif

Сообщение отредактировал _Pasha - Jan 13 2012, 10:56
Go to the top of the page
 
+Quote Post
Skaf
сообщение Jan 13 2012, 11:26
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 228
Регистрация: 4-06-09
Пользователь №: 49 940



Похоже правда тяжелющщщая.. с либой прога весит 20332 байт флеша, а без - 1222 байт.
Go to the top of the page
 
+Quote Post
maksimp
сообщение Jan 13 2012, 15:58
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 313
Регистрация: 2-07-11
Пользователь №: 66 023



Цитата(_Pasha @ Jan 13 2012, 14:52) *
либа тяжелющщщщая.

Посмотрел в дизассемблере. Очень много уходит на копировние 64 битных чисел. По 8 команд, байт за байтом. Вероятно можно заметно уменьшить размер если передавать числа по адресу.
Вместо
Код
float64_t f_div(float64_t fa, float64_t fb )

сделать
Код
void f_div(float64_t *fa, float64_t *fb, float64_t *fr) // *fr = *fa / *fb

и так далее.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 13 2012, 20:27
Сообщение #21


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(maksimp @ Jan 13 2012, 18:58) *
Посмотрел в дизассемблере. Очень много уходит на копировние 64 битных чисел. По 8 команд, байт за байтом. Вероятно можно заметно уменьшить размер если передавать числа по адресу.

Вероятно, алгоритмы в либе оставляют желать лучшего.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th July 2025 - 14:32
Рейтинг@Mail.ru


Страница сгенерированна за 0.01772 секунд с 7
ELECTRONIX ©2004-2016