일부 파이썬 코드를 C 코드로 변환 중입니다.NumPy.exp가 C에서 exp와 다른 결과를 표시하는 이유
이하 파이썬 NumPy는 복소수에 대해 (6.12323399574e-17-1j)
k=1
, l=4
에 대해 출력합니다.
numpy.exp(-2.0*1j*np.pi*k/l)
아래와 같이 C 코드로 변환합니다. 그러나 출력은 1.000000
입니다.
#include <complex.h>
#define PI 3.1415926535897932384626434
exp(-2.0*I*PI*k/l)
무엇이 누락 되었습니까?
Y o는 C 버전에서'cexp()'를 사용해야한다. – kindall
'exp' 란 무엇입니까? C++ 또는'tgmath.h '를 사용하고 있습니까? C의'exp' 함수는 일반적으로 복소수를 취하지 않습니다. 그리고 어쨌든 결과를 어떻게 검토하고 있습니까? 실행 가능한 코드를 보여주십시오. – user2357112
'exp '를'cexp'로 바꾸면 numpy와 c가 같은 대답을 낼 것이라고 생각합니다. 정답은 -1i입니다. 그것은 6e-17이 실제로 0이라고 가정 할 때 numpy가 실제로 말하는 것입니다. – bruceg