Cython: используя я из не могу заставить его работать - PullRequest
0 голосов
/ 29 марта 2020

Я слежу за этой веткой, и она хорошо решена: Сложные числа в Cython - I или 1j?

Однако, когда я пытался, это просто не работает. Это мой довольно простой пример:

cdef extern from "<complex.h>"  nogil:
    double cos( double x )
    double sin( double x )
    double complex I

@cython.boundscheck(False)      # turn off bounds-checking for entire function
@cython.wraparound (False)      # turn off negative index wrapping for entire function
@cython.cdivision  (True )
cdef double complex c_exp_i (double z) nogil:
    return cos( z ) + sin( z ) * I 

Я получаю такое сообщение об ошибке:

error C2676: binary '*': '__pyx_t_double_complex' does not define this operator or a conversion to a type acceptable to the predefined operator

Я не вижу, что я делаю неправильно / отличается от предыдущего поста. Есть идеи, как заставить это работать? РЕДАКТИРОВАТЬ: Это больше любопытство, чем цель эффективности.

EDIT2: Использование MSV C 2017, использование C ++ в python файл setup.py.

...