Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.06.2013, 04:03   #1
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию Магия. Без дебага появляется NAN и floating point exception

Код:
const
  specN = 18;
type
  TSpecArray = array[0..specN-1] of Single;
  TSingleArray = array of Single;


...

procedure MinimizeFFT(inbuf, outbuf: TSingleArray; inlen, outlen: Cardinal);
begin
  for X := 1 to outlen do
  begin
    ...
    outbuf[X-1]:=Sqrt(Sum);
  end;
  ShowMessage(FormatFloat('0.0', outbuf[specN-2]));
end;
...

if GetFFT(@fft, fftFormat) then
begin
    ShowMessage(FormatFloat('0.0', aData[specN-2]));
    MinimizeFFT(@fft, @aData, fftLen, specN);
    ShowMessage(FormatFloat('0.0', aData[specN-2]));     
end;
Получаю вот что:
0,0 (перед функцией)
0,0 (в функции MinimizeFFT)
NAN (после функции)

Причём, если запускать с отладкой, то такого не бывает. А без отладки почти постоянно (была тяжело найти место в проге, где была ошибка -.-).
Куда копать?
TwiX вне форума Ответить с цитированием
Старый 17.06.2013, 04:24   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

MadExcept'ом смотрелись баги?
Человек_Борща вне форума Ответить с цитированием
Старый 17.06.2013, 04:48   #3
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Нашёл строчку с ошибкой. Это я и без него знал)
TwiX вне форума Ответить с цитированием
Старый 18.06.2013, 17:08   #4
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Ап .
TwiX вне форума Ответить с цитированием
Старый 18.06.2013, 17:26   #5
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Может функция не так отрабатывает?
Человек_Борща вне форума Ответить с цитированием
Старый 18.06.2013, 18:22   #6
TwiX
Участник клуба
 
Аватар для TwiX
 
Регистрация: 28.07.2009
Сообщений: 1,510
По умолчанию

Так. До этого там просто Sum считается по входному массиву. Но за пределы там ничего не вылазит. Да и в дебаге была бы ошибка..
TwiX вне форума Ответить с цитированием
Старый 18.06.2013, 23:44   #7
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

У меня как-то эта Ваша "магия" 10 часов моск трахала из-за неверного знака в алгебраической формуле (вместо вычитания производил сложение).

Привели бы полный код. А еще лучше - архив с проектом.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...

Последний раз редактировалось Sciv; 18.06.2013 в 23:46.
Sciv вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Floating point division by zero Dimabara Компоненты Delphi 6 03.02.2013 20:59
Floating point division by zero flouwjke Помощь студентам 2 27.04.2012 19:26
floating point division by zero Helene Rolles Помощь студентам 0 18.12.2011 21:42
Floating point exception Gorbunov89 Общие вопросы C/C++ 0 19.12.2009 23:05
s not a valid floating point value prod87 Помощь студентам 1 02.12.2009 20:57