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

 
 
> Математика с float на Cortex-M3.
Jenya7
сообщение Sep 1 2015, 08:42
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Если я заменю (100/3.5) на (100 * 0.286) повлияет это на размер/скорость кода? или компилятор сам автоматически оптимизирует математические операции?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
adnega
сообщение Sep 1 2015, 10:55
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Jenya7 @ Sep 1 2015, 11:42) *
Если я заменю (100/3.5) на (100 * 0.286) повлияет это на размер/скорость кода? или компилятор сам автоматически оптимизирует математические операции?

1/3.5 != 0.286

А что хотите получить в итоге? Если константу, то на этапе компиляции все значения будут вычислены и заменены одним числом: целым или с ПТ в зависимости от контекста.

Если нужна математика с переменными, то x/y не может быть заменен на x * (1/y) компилятором самовольно - такая оптимизация ваша задача.
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 1 2015, 11:56
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(adnega @ Sep 1 2015, 15:55) *
1/3.5 != 0.286

А что хотите получить в итоге? Если константу, то на этапе компиляции все значения будут вычислены и заменены одним числом: целым или с ПТ в зависимости от контекста.

Если нужна математика с переменными, то x/y не может быть заменен на x * (1/y) компилятором самовольно - такая оптимизация ваша задача.


этот момент я и хотел выяснить. операция деления тяжелей умножения поэтому я хочу заменить деление умножением.


а вот еще такой вопрос. что предпочтительней - поделить на целое или умножитьна флоат. x/167 или x* 0.005988?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 1 2015, 12:13
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(Jenya7 @ Sep 1 2015, 14:56) *
что предпочтительней - поделить на целое
Перед делением целое будет приведено в плавающую точку (см. правила приведения типов).


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 1 2015, 12:18
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Сергей Борщ @ Sep 1 2015, 15:13) *
Перед делением целое будет приведено в плавающую точку (см. правила приведения типов).

Вообще-то автор не сказал какой тип он собирается делить и какой получить. Так что для ответа нужно точно сформулировать вопрос.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 1 2015, 12:22
Сообщение #6


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(zltigo @ Sep 1 2015, 17:18) *
Вообще-то автор не сказал какой тип он собирается делить и какой получить. Так что для ответа нужно точно сформулировать вопрос.

да. забыл уточнить. делю флоат на инт.
Go to the top of the page
 
+Quote Post
adnega
сообщение Sep 1 2015, 13:44
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(Jenya7 @ Sep 1 2015, 15:22) *
да. забыл уточнить. делю флоат на инт.

А в первом сообщении
Цитата
Если я заменю (100/3.5) на (100 * 0.286)

все наоборот озвучивалось.

Скорее всего, имеет место быть "преждевременная оптимизация", а это, как известно, зло))
Без "махинаций" не работает?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 1 2015, 14:06
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (adnega @ Sep 1 2015, 16:44) *
Скорее всего, имеет место быть "преждевременная оптимизация", а это, как известно, зло))

Часто слышу эту глупость sad.gif, когда услышав звон, не поняли о чем он sad.gif
QUOTE
Без "махинаций" не работает?

Не худо бы для начала выяснить, что на "не работает" вообще никто не жалуется.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
adnega
сообщение Sep 1 2015, 14:51
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Цитата(zltigo @ Sep 1 2015, 17:06) *
Часто слышу эту глупость sad.gif, когда услышав звон, не поняли о чем он sad.gif

Не худо бы для начала выяснить, что на "не работает" вообще никто не жалуется.

А хамить не нужно))

На вопрос
Цитата
повлияет это на размер/скорость кода? или компилятор сам автоматически оптимизирует математические операции?

отвечу "повлияет на размер и скорость выполнения; компилятор не умеет оптимизировать математику, не имея дополнительной информации о переменных".

Такого ответа желал услышать ТС? В чем смысл созданной темы в ветке "ARM"? Просто поболтать, или насущная необходимость в оптимизации появилась?
Я поспешно предположил второе. Если вы тут просто пообщаться собрались, то прошу прощения, что влез, а власть имущих прошу перенести тему в соответствующий раздел)

Если хотите, чтобы с вами поделились опытом в вопросе "грамотной перестановки слагаемых",
то задавайте конкретный вопрос, чтоб проблематика была понятна, а обмусоливать такты и байты... не в "ARM,32"
Go to the top of the page
 
+Quote Post
Jenya7
сообщение Sep 1 2015, 15:26
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Цитата(adnega @ Sep 1 2015, 19:51) *
А хамить не нужно))

На вопрос

отвечу "повлияет на размер и скорость выполнения; компилятор не умеет оптимизировать математику, не имея дополнительной информации о переменных".

Такого ответа желал услышать ТС? В чем смысл созданной темы в ветке "ARM"? Просто поболтать, или насущная необходимость в оптимизации появилась?
Я поспешно предположил второе. Если вы тут просто пообщаться собрались, то прошу прощения, что влез, а власть имущих прошу перенести тему в соответствующий раздел)

Если хотите, чтобы с вами поделились опытом в вопросе "грамотной перестановки слагаемых",
то задавайте конкретный вопрос, чтоб проблематика была понятна, а обмусоливать такты и байты... не в "ARM,32"


все работает. все делиться и результаты правильные. просто прибор работает на батарейке и я пытаюсь сэкономить на всем. вот я и решил заменить деление умножением.
может сэкономлю кванты энергии которые в конечном счете помогут продлить жизнь батарейке.

Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Математика с float на Cortex-M3.   Sep 1 2015, 08:42
||- - menzoda   Если есть FPU, то умножать быстрее будет, иначе то...   Sep 1 2015, 12:05
||- - adnega   Цитата(Jenya7 @ Sep 1 2015, 18:26) помогу...   Sep 1 2015, 16:24
||- - Jenya7   Цитата(adnega @ Sep 1 2015, 21:24) Тут вс...   Sep 1 2015, 16:37
|- - ЯadiatoR   Цитата(adnega @ Sep 1 2015, 13:55) 1/3.5 ...   Sep 1 2015, 17:54
|- - adnega   Цитата(ЯadiatoR @ Sep 1 2015, 20:54) А ра...   Sep 1 2015, 18:04
||- - ViKo   Цитата(adnega @ Sep 1 2015, 21:04) Я про ...   Sep 2 2015, 05:42
||- - adnega   Цитата(ViKo @ Sep 2 2015, 08:42) Поясните...   Sep 2 2015, 05:58
||- - ViKo   Цитата(adnega @ Sep 2 2015, 08:58) Но опр...   Sep 2 2015, 07:47
||- - adnega   Цитата(ViKo @ Sep 2 2015, 10:47) Еще раз ...   Sep 2 2015, 08:29
|- - jcxz   Цитата(ЯadiatoR @ Sep 1 2015, 23:54) А ра...   Sep 2 2015, 02:24
- - ViKo   Проверил на своих макро в Кейле. DELAY(1, _MS); ...   Sep 2 2015, 09:48
|- - CrimsonPig   Цитата(ViKo @ Sep 2 2015, 10:48) Работают...   Sep 2 2015, 10:10
|- - ViKo   Цитата(CrimsonPig @ Sep 2 2015, 13:10) go...   Sep 2 2015, 10:59
|- - CrimsonPig   Цитата(ViKo @ Sep 2 2015, 11:59) Конкретн...   Sep 2 2015, 11:29
|- - megajohn   Цитата(CrimsonPig @ Sep 2 2015, 14:29) Ещ...   Sep 2 2015, 11:37
|- - ViKo   Цитата(CrimsonPig @ Sep 2 2015, 14:29) Ещ...   Sep 2 2015, 11:38
- - sigmaN   При компиляции с оптимизацией компилятор считает к...   Oct 21 2015, 13:14
|- - ViKo   Цитата(sigmaN @ Oct 21 2015, 16:14) Как м...   Oct 21 2015, 13:31
- - sigmaN   ЦитатаВыходит, компилятор внутре себя имеет неенку...   Oct 21 2015, 16:47
|- - dxp   QUOTE (sigmaN @ Oct 21 2015, 22:47) Если ...   Oct 22 2015, 10:56
|- - blackfin   Цитата(dxp @ Oct 22 2015, 13:56) Алгоритм...   Oct 22 2015, 11:08
||- - dxp   QUOTE (blackfin @ Oct 22 2015, 17:08) Исп...   Oct 23 2015, 07:22
|- - _Pasha   Цитата(dxp @ Oct 22 2015, 13:56) На AVR о...   Oct 23 2015, 13:18
|- - ViKo   Цитата(_Pasha @ Oct 23 2015, 16:18) упс. ...   Oct 23 2015, 14:10
- - sigmaN   ЦитатаНа AVR о 8-ми мегагерцах тактовой оный полин...   Oct 22 2015, 16:25


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

 


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


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