Ich konvertiere einige Python-Code in C-Code.Warum zeigt NumPy.exp ein anderes Ergebnis als exp in C
Unten Python NumPy exp on komplexe Anzahl Ausgänge (6.12323399574e-17-1j)
für k=1
, l=4
.
numpy.exp(-2.0*1j*np.pi*k/l)
Ich konvertiere es in C-Code wie unten. Aber die Ausgabe ist 1.000000
.
#include <complex.h>
#define PI 3.1415926535897932384626434
exp(-2.0*I*PI*k/l)
Was fehlt mir?
Y ou sollte 'cexp()' in der C-Version verwenden, nein? – kindall
Was ist 'exp'? Verwenden Sie C++ oder 'tgmath.h'? Die 'exp'-Funktion in C nimmt normalerweise keine komplexen Zahlen. Und wie untersuchen Sie das Ergebnis? Zeigen Sie uns ausführbaren Code. – user2357112
Ich denke, dass numpy und c beide die gleiche Antwort erzeugen werden, wenn man 'exp' in' cexp' umschaltet. Die richtige Antwort ist -1i. Das sagt numpy wirklich, wenn man annimmt, dass 6e-17 wirklich Null ist. – bruceg