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

 
 
> Не считает функция log().
-Игорь-
сообщение Oct 21 2014, 16:50
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 42
Регистрация: 8-10-11
Пользователь №: 67 615



Споткнулся на ровном месте. Надо подсчитывать натуральный логарифм. Иcпользую функцию log(), logf(), но как-то странно работает. send_base массив 16 битных слов.
В таком виде не работает.
Код
volatile float x=((adc_ext_result[i]/5*20000.0)/(65535.0-adc_ext_result[i]/5));
send_base[adc_ext_index[i]]=logf(x);

x=21521.0; log(x)= 65535.

А так работает:
Код
volatile float x=((adc_ext_result[i]/5*20000.0)/(65535.0-adc_ext_result[i]/5));
float r=21521.0;
send_base[adc_ext_index[i]]=logf(r);


logf®=9;

arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.8.4 20140725 (release) [ARM/embedded-4_8-branch revision 213147]
на работе пробовал компилить другим тулчайном резльтат тот же. Не могу понять где копать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Golikov A.
сообщение Oct 22 2014, 15:36
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454



Цитата
Каждый раз веселюсь, когда вижу, как свойства языка Си снова открывают эмпирическим путём


тут это уже на уровне руки помнят. То есть всю жизнь было так и я всегда это применял, но когда увидел запись что нет, задумался... вдруг это не закон а просто всегда везлоsm.gif. Такой фигни много бывает, стирается из памяти источник знаний, остаются только факты и опыт применений. Весело, возможно, но что не стыдно сто пудовоsm.gif...

У флоат если мне не изменяет память есть спец символ +- бесконечность. Может на него так log реагирует? exp(65535) - это прям дофига-дофигища, и число уж больно интересное 16 единичек...

проверил, виндовый калькулятор на e^65535 честно заявляет переполнение, хотя и на 65534 тоже), где то в районе 22000 предел наступает. При этом я уверен он считает в даблах, так что для флота переполнение еще раньше. Скорее всего полученный ответ - это какой-то флаг...

Go to the top of the page
 
+Quote Post
scifi
сообщение Oct 22 2014, 16:06
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Golikov A. @ Oct 22 2014, 19:36) *
Такой фигни много бывает, стирается из памяти источник знаний, остаются только факты и опыт применений. Весело, возможно, но что не стыдно сто пудовоsm.gif...

Расскажу по секрету: есть такие полезные штуки - "справочники" называются. Очень помогают. А в наш век тырнетов и гуглов они все на расстоянии вытянутой руки. Пользуйтесь, пока санкции тырнет не отрубили :-)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- -Игорь-   Не считает функция log().   Oct 21 2014, 16:50
- - AHTOXA   А у вас стек выровнен на 8 байт?   Oct 21 2014, 17:57
- - -Игорь-   был выровнен на 4 байта. Поставил 8. Ничего не изм...   Oct 21 2014, 18:16
|- - AHTOXA   Оставьте 8, так надо. -lm линкеру не забыли? Ещё с...   Oct 21 2014, 18:32
- - -Игорь-   -lm поставил последним ключом. Поставил 8. Не счит...   Oct 21 2014, 18:47
|- - scifi   Кстати, выражение "adc_ext_result[i]/5*20000....   Oct 21 2014, 19:05
||- - sidy   Цитата(scifi @ Oct 21 2014, 23:05) Кстати...   Oct 22 2014, 04:26
|- - AHTOXA   Да не за что Кстати, если вы по какой-то причине х...   Oct 21 2014, 19:07
- - -Игорь-   Спасибо про суффикс попробую запомнить, float испо...   Oct 22 2014, 04:11
- - Golikov A.   вообще то log(12570) != 9; он равен 9.43906830...   Oct 22 2014, 04:45
- - -Игорь-   Я могу посмотреть только целые, поэтому и вижу 9. ...   Oct 22 2014, 05:20
- - Golikov A.   а что такое _PARAMS ? попробуйте так, ну чтобы на...   Oct 22 2014, 05:24
- - -Игорь-   Криво.   Oct 22 2014, 05:30
- - -Игорь-   Глюк мой. Плохое понимание преобразования типов. О...   Oct 22 2014, 09:42
- - Golikov A.   странно, обычно знаковое преобразуется в знаковое...   Oct 22 2014, 10:21
- - -Игорь-   Да. Вы правы. Проверил, преобразовывает именно так...   Oct 22 2014, 10:48
|- - scifi   Цитата(-Игорь- @ Oct 22 2014, 14...   Oct 22 2014, 11:00
- - -Игорь-   Читал, не единожды. Видимо голова небольшого объем...   Oct 22 2014, 11:15
- - Golikov A.   вы все известные вам факты, от которых вы забыли и...   Oct 22 2014, 17:33
|- - scifi   Цитата(Golikov A. @ Oct 22 2014, 21:33) в...   Oct 22 2014, 19:12
- - Golikov A.   не делаете ничего нового, наверное?   Oct 22 2014, 20:05


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

 


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


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