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

 
 
> Ошибк при передаче значений переменной в функцию
Vladimir_T
сообщение Apr 26 2014, 03:52
Сообщение #1


Знающий
****

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



Здравствуйте, подскажите, пожалуйста... Странная ситуация, не должно быть так, но у меня то есть....
Мне нужно быстро вычислять значения функции синус, для чего стал использовать разложение в степенной ряд,
первым членом ограничился. Стал отлаживать, а функция постоянно мне выдает бесконечно малую величину, стал смотреть отладчиком в Кейле 5.4, в самой функции и вижу, что в функцию постоянно передается значение
X = 1.084202e-019, тогда, как передаются значения от 0 до pi/4. Никаких вложенных прерываний, чтобы стек нарушался - нет. Где моя ошибка? Подскажите, пожалуйста!

Код
#define  Factr_3  0.0556

float Rough_Sinus (float X)
{float Ret = X - X*X*X / Factr_3;
return Ret;
}
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Apr 26 2014, 13:12
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Проверьте еще, на месте ли прототип вызываемой функции.
Go to the top of the page
 
+Quote Post
Vladimir_T
сообщение Apr 27 2014, 05:24
Сообщение #3


Знающий
****

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



Цитата(aaarrr @ Apr 26 2014, 17:12) *
Проверьте еще, на месте ли прототип вызываемой функции.

Прототип описан в .h - файле. Компиляция идет без ошибок.



Цитата(Vladimir_T @ Apr 26 2014, 17:02) *
Спасибо, оптимизация включена по умолчанию, поставлю нулевую и проверю!
Степень я не делю, а домножаю на коэффициент.
Да, с коэффициентом я ошибся: нужно 1/3! = 0.166667, а я взял 1/3*3! = 0.0556.
Т.е. вместо деления, делаю умножение на обратную величину. С элементарной математикой здесь нет ошибки, я проверил все на ПК, точность для меня приемлема. А на АРМе 966 не идет по Кейл.



Цитата(Golikov A. @ Apr 26 2014, 17:39) *
X*X*X / Factr_3 - вы делитеsm.gif

X*X*X * Koef - вот так умножатьsm.gif...

отладка кейла - это отдельная песня, там еще есть трудности с переменным не влезающими к регистры, он их просто не отображает и так далее, но 90% проблем отладки под кейлом это отладка оптимизированного кода, я сначала думал что мир разрушился прежде чем понял что происходит


Потратил время на отладку, хотелось бы получить ожидаемый результат. Мне можно было бы большую таблицу сгенерить и расположить на куче, но это уже другая реализация задачи...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


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


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