Нан встречается при использовании numba - PullRequest
0 голосов
/ 19 июня 2020

Я использую Numba для ускорения работы функции, и я столкнулся со следующей проблемой. При использовании декоратора @njit (или @jit) поведение некоторой функции numpy изменяется. Например, если я использую следующую функцию для вычисления tanh

from numba import njit
import numpy as np    
@njit
    def check_tanh(z):
        return np.tanh(z)

и запускаю ее для реальных значений z, я получаю то же самое, что и np.tanh (z), как и должно быть. Если вместо этого я перемещаюсь параллельно реальной оси, но с мнимой частью, например z = x + 1.j, и увеличиваю x, numpy tanh сходится к 1. + 0.j, а check_tanh (z) вернет нан (на моем компьютере это происходит, когда x> 360).

Кто-нибудь знает, что происходит и как это исправить? Заранее спасибо!

1 Ответ

0 голосов
/ 19 июня 2020

Использование tanh из cmath решает проблему. Кажется, это все еще проблема в Numba https://github.com/numba/numba/issues/2919

...