QkComplex64
Eine komplexe, doppeltgenaue Zahlendarstellung. Dieser Datentyp wird verwendet, um komplexe Zahlen in Qiskit sicher zu verwenden, ist aber nicht unbedingt für eine einfache Manipulation auf der Benutzerseite gedacht. Stattdessen bieten wir Funktionen zur Konvertierung von compilernativen Darstellungen (z. B. complex double für GNU- oder Clang-Compiler), die eine ergonomische Handhabung ermöglichen, zu Qiskits QkComplex64 Repräsentation, die für die Übergabe an Qiskit-Funktionen und -Strukturen gedacht ist.
Qiskit geht explizit davon aus, dass der compilernative komplexe Zahlentyp in C für Windows MSVC _Dcomplex ist (wenn _MSC_VER definiert ist) und ansonsten double _Complex . In C++ (wenn __cplusplus definiert ist), ist der Typ der komplexen Zahl immer std::complex<double>.
Datentypen
QkComplex64
struct QkComplex64
Ein komplexes Doppel.
Siehe auch qk_complex64_to_native und qk_complex64_from_native , um diese Struktur in eine compilernative komplexe Zahlendarstellung zu konvertieren (oder von ihr abzuleiten).
doppeltes Re
Der reale Teil.
doppeltes Ich
Der imaginäre Teil.
Funktionen
qk_complex64_to_native
static CMPLX_DOUBLE qk_complex64_to_native(QkComplex64 *value)
Konvertiert eine QkComplex64 in eine compilernative komplexe Zahlendarstellung. Beachten Sie, dass CMPLX_DOUBLE ein Platzhalter für den compilernativen komplexen Zahlentyp ist, siehe oben auf der Seite für weitere Details.
Beispiel
Unter der Annahme eines GNU/clang-Compilers mit complex double als nativer komplexer Zahl ergibt sich
QkComplex64 qk_value = {1, 1}; // represents 1 + i
complex double value = qk_complex64_to_native(&qk_value);Sicherheit
Das Verhalten ist undefiniert, wenn value kein gültiger, nicht-null Zeiger auf QkComplex64 ist.
Parameter
value - Ein Zeiger auf die zu konvertierende QkComplex64 .
Rückgabe
Eine native Darstellung der komplexen Zahl.
qk_complex64_from_native
static QkComplex64 qk_complex64_from_native(CMPLX_DOUBLE *value)
Konvertiert eine compiler-native komplexe Zahl in eine QkComplex64. Beachten Sie, dass CMPLX_DOUBLE ein Platzhalter für den compilernativen komplexen Zahlentyp ist, siehe oben auf der Seite für weitere Details.
Beispiel
Unter der Annahme eines GNU/clang-Compilers mit complex double als nativer komplexer Zahl ergibt sich
complex double value = 1 + I;
QkComplex64 qk_value = qk_complex64_from_native(&value);Sicherheit
Das Verhalten ist undefiniert, wenn value kein gültiger, nicht-null Zeiger auf QkComplex64 ist.
Parameter
value - Ein Zeiger auf die native komplexe Zahl.
Rückgabe
Eine QkComplex64 Darstellung der komplexen Zahl.