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

 
 
> Как проверить корректность математических операций, с плавающей точкой?
ANT
сообщение Apr 18 2011, 18:52
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 187
Регистрация: 22-06-04
Пользователь №: 127



Никак не могу решить следующую проблему в EWARM 6.10: есть вычислительная функция double f(double x, double y); внутри которой производятся вычисления с помощью библиотечных функций sqrt, log, exp, pow и т.д. Ввиду того, что x и y меняются в широких пределах, аргументы библиотечных функций могут принимать некорректные значения, например sqrt(-1), возможны переполнения, деление на 0 и т.д. IAR спокойно делит на 0, вычисляет кв.корень из отрицательного числа и не грохается. Но мне при выходе из функции надо знать, что на промежуточных этапах не было такого рода ошибок. Как это сделать стандартными средствами IAR?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
scifi
сообщение Apr 19 2011, 07:16
Сообщение #2


Гуру
******

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



Вот тут можно почитать: errno
В двух словах: перед операцией обнуляем errno, а после операции проверяем и интерпретируем: 0 - всё хорошо, EDOM или ERANGE - ошибка.
Go to the top of the page
 
+Quote Post



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

 


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


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