|
Математика с float на Cortex-M3. |
|
|
|
Sep 1 2015, 12:05
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 13-09-12
Пользователь №: 73 530

|
Если есть FPU, то умножать быстрее будет, иначе точно не скажешь - нужно тестировать.
|
|
|
|
|
Sep 1 2015, 13:44
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Jenya7 @ Sep 1 2015, 15:22)  да. забыл уточнить. делю флоат на инт. А в первом сообщении Цитата Если я заменю (100/3.5) на (100 * 0.286) все наоборот озвучивалось. Скорее всего, имеет место быть "преждевременная оптимизация", а это, как известно, зло)) Без "махинаций" не работает?
|
|
|
|
|
Sep 1 2015, 14:06
|

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

|
QUOTE (adnega @ Sep 1 2015, 16:44)  Скорее всего, имеет место быть "преждевременная оптимизация", а это, как известно, зло)) Часто слышу эту глупость  , когда услышав звон, не поняли о чем он  QUOTE Без "махинаций" не работает? Не худо бы для начала выяснить, что на "не работает" вообще никто не жалуется.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Sep 1 2015, 14:51
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(zltigo @ Sep 1 2015, 17:06)  Часто слышу эту глупость  , когда услышав звон, не поняли о чем он  Не худо бы для начала выяснить, что на "не работает" вообще никто не жалуется. А хамить не нужно)) На вопрос Цитата повлияет это на размер/скорость кода? или компилятор сам автоматически оптимизирует математические операции? отвечу "повлияет на размер и скорость выполнения; компилятор не умеет оптимизировать математику, не имея дополнительной информации о переменных". Такого ответа желал услышать ТС? В чем смысл созданной темы в ветке "ARM"? Просто поболтать, или насущная необходимость в оптимизации появилась? Я поспешно предположил второе. Если вы тут просто пообщаться собрались, то прошу прощения, что влез, а власть имущих прошу перенести тему в соответствующий раздел) Если хотите, чтобы с вами поделились опытом в вопросе "грамотной перестановки слагаемых", то задавайте конкретный вопрос, чтоб проблематика была понятна, а обмусоливать такты и байты... не в "ARM,32"
|
|
|
|
|
Sep 1 2015, 15:26
|
Профессионал
    
Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075

|
Цитата(adnega @ Sep 1 2015, 19:51)  А хамить не нужно))
На вопрос
отвечу "повлияет на размер и скорость выполнения; компилятор не умеет оптимизировать математику, не имея дополнительной информации о переменных".
Такого ответа желал услышать ТС? В чем смысл созданной темы в ветке "ARM"? Просто поболтать, или насущная необходимость в оптимизации появилась? Я поспешно предположил второе. Если вы тут просто пообщаться собрались, то прошу прощения, что влез, а власть имущих прошу перенести тему в соответствующий раздел)
Если хотите, чтобы с вами поделились опытом в вопросе "грамотной перестановки слагаемых", то задавайте конкретный вопрос, чтоб проблематика была понятна, а обмусоливать такты и байты... не в "ARM,32" все работает. все делиться и результаты правильные. просто прибор работает на батарейке и я пытаюсь сэкономить на всем. вот я и решил заменить деление умножением. может сэкономлю кванты энергии которые в конечном счете помогут продлить жизнь батарейке.
|
|
|
|
|
Sep 1 2015, 16:24
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Jenya7 @ Sep 1 2015, 18:26)  помогут продлить жизнь батарейке. Тут все еще сложнее) Что выгоднее: понижать тактовую CPU или увеличивать ее (с учетом возможности сна)? Или разница не значительна? Мне кажется, чем больше частота и чем больше транзисторов переключается, тем выше потребление. Можно провести эксперимент: x*y и x/y запустить миллион таких операций и замерить произведение времени выполнения на потребляемый ток. Затем сравнить два этих числа и сделать вывод на сколько процентов отличается. Пробовали?
|
|
|
|
|
Sep 1 2015, 18:04
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(ЯadiatoR @ Sep 1 2015, 20:54)  А разве препроцессор обрабатывает float значения? Я про float не горовил, но в свое время пользовался так Код #define Vc (1430.0) //!< Напряжение при V25, мВ. #define Ta (4.3) //!< Крутизна преобразования, мВ/C. #define Tb (25.0) //!< Температура V25, C.
#define TCPU_MIN (-40.0) //!< Нижняя температура, C. #define TCPU_MAX (85.0) //!< Верхняя температура, C. #define TCPU_HYST (5.0) //!< Гистерезис температуры, C.
#define TCPU(T) (Vc - Ta * ((T) - Tb))
#define TCPU_COLD ((int)(TCPU(TCPU_MIN))) #define TCPU_HOT ((int)(TCPU(TCPU_MAX))) #define TCPU_NORMAL_MIN ((int)(TCPU(TCPU_MIN + TCPU_HYST))) #define TCPU_NORMAL_MAX ((int)(TCPU(TCPU_MAX - TCPU_HYST))) и имел TCPU_COLD, TCPU_HOT, TCPU_NORMAL_MIN, TCPU_NORMAL_MAX в виде int-овых констант.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|