C ++ - переход в NaN в рутине оптимизации - PullRequest
0 голосов
/ 23 марта 2012

Я написал процедуру оптимизации, и допуск уменьшается на каждой итерации. Сравнение выполняется на каждой итерации с пороговым допуском 1e-10. Я вычислил лог для последовательных итераций и заметил, что в какой-то момент допуск значительно уменьшается от одной итерации к следующей, и от 0,000573789 становится -1. # IND (NaN, верно?) И порог не обнаружен. Итерации идут дальше, хотя порог толерантности достигнут.

Должен ли я сравнить текущий допуск как с 1e-10, так и с NaN? Откуда может возникнуть проблема? Все вещи двойные.

Спасибо и всего наилучшего.

1 Ответ

2 голосов
/ 23 марта 2012

Во-первых, вам не нужно иметь NaN.Включите сигналы для NaN, запустите в отладчике и исправьте ваш код.

Вы можете найти эту статью полезной.

...