Этот вопрос уже задавался здесь , когда использовать python функцию expm1 вместо exp-1 , но только в качестве дополнительного дополнения, а также он не получил ответа.
Справочная информация для тех, кто не знаком с expm1
: Как вы знаете, exp
числа eps
, близкого к нулю, близко к единице. Если вам нужно оценить 1-e^eps
, что не является редкостью, то это пример из учебника утраты значимости путем отмены. На самом деле эта проблема настолько распространена, что есть библиотечная подпрограмма под названием expm1
, которая обозначает экспоненциальный минус 1.
Теперь в моем приложении мне приходится иметь дело с большим количеством показателей, некоторые из которых очень близки к нулю. некоторые вообще нет (но нет << 0). И мне нужно в какой-то момент вычесть 1. </p>
Так что мой вопрос заключается в том, должен ли я просто использовать expm1
для всего этого или я должен отсортировать показатели в близкие к нулю и другие? Я использую numpy
, поэтому я не могу заменить алгоритмы переключения, мне придется сначала отсортировать аргументы, а затем обработать два блока. Это может привести к значительным накладным расходам, поэтому я предпочел бы избежать этого.
Есть ли у expm1
серьезные недостатки, такие как меньшая точность или худшая производительность в любом месте?