The Quantum Exact Simulation Toolkit v4.0.0
Loading...
Searching...
No Matches

Functions for applying the individual one-qubit Pauli operators. More...

Functions

void applyControlledPauliX (Qureg qureg, int control, int target)
 
void applyControlledPauliY (Qureg qureg, int control, int target)
 
void applyControlledPauliZ (Qureg qureg, int control, int target)
 
void applyMultiControlledPauliX (Qureg qureg, int *controls, int numControls, int target)
 
void applyMultiControlledPauliX (Qureg qureg, std::vector< int > controls, int target)
 
void applyMultiControlledPauliY (Qureg qureg, int *controls, int numControls, int target)
 
void applyMultiControlledPauliY (Qureg qureg, std::vector< int > controls, int target)
 
void applyMultiControlledPauliZ (Qureg qureg, int *controls, int numControls, int target)
 
void applyMultiControlledPauliZ (Qureg qureg, std::vector< int > controls, int target)
 
void applyMultiStateControlledPauliX (Qureg qureg, int *controls, int *states, int numControls, int target)
 
void applyMultiStateControlledPauliX (Qureg qureg, std::vector< int > controls, std::vector< int > states, int target)
 
void applyMultiStateControlledPauliY (Qureg qureg, int *controls, int *states, int numControls, int target)
 
void applyMultiStateControlledPauliY (Qureg qureg, std::vector< int > controls, std::vector< int > states, int target)
 
void applyMultiStateControlledPauliZ (Qureg qureg, int *controls, int *states, int numControls, int target)
 
void applyMultiStateControlledPauliZ (Qureg qureg, std::vector< int > controls, std::vector< int > states, int target)
 
void applyPauliX (Qureg qureg, int target)
 
void applyPauliY (Qureg qureg, int target)
 
void applyPauliZ (Qureg qureg, int target)
 
void multiplyPauliX (Qureg qureg, int target)
 
void multiplyPauliY (Qureg qureg, int target)
 
void multiplyPauliZ (Qureg qureg, int target)
 

Detailed Description

Functions for applying the individual one-qubit Pauli operators.

Function Documentation

◆ applyControlledPauliX()

void applyControlledPauliX ( Qureg qureg,
int control,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 910 of file operations.cpp.

910 {
911 validate_quregFields(qureg, __func__);
912 validate_controlAndTarget(qureg, control, target, __func__);
913
914 // harmlessly re-validates
915 applyMultiStateControlledPauliX(qureg, &control, nullptr, 1, target);
916}
void applyMultiStateControlledPauliX(Qureg qureg, int *controls, int *states, int numControls, int target)

◆ applyControlledPauliY()

void applyControlledPauliY ( Qureg qureg,
int control,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 918 of file operations.cpp.

918 {
919 validate_quregFields(qureg, __func__);
920 validate_controlAndTarget(qureg, control, target, __func__);
921
922 // harmlessly re-validates
923 applyMultiStateControlledPauliY(qureg, &control, nullptr, 1, target);
924}
void applyMultiStateControlledPauliY(Qureg qureg, int *controls, int *states, int numControls, int target)

◆ applyControlledPauliZ()

void applyControlledPauliZ ( Qureg qureg,
int control,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 926 of file operations.cpp.

926 {
927 validate_quregFields(qureg, __func__);
928 validate_controlAndTarget(qureg, control, target, __func__);
929
930 // harmlessly re-validates
931 applyMultiStateControlledPauliZ(qureg, &control, nullptr, 1, target);
932}
void applyMultiStateControlledPauliZ(Qureg qureg, int *controls, int *states, int numControls, int target)

◆ applyMultiControlledPauliX() [1/2]

void applyMultiControlledPauliX ( Qureg qureg,
int * controls,
int numControls,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 934 of file operations.cpp.

934 {
935 validate_quregFields(qureg, __func__);
936 validate_controlsAndTarget(qureg, controls, numControls, target, __func__);
937
938 // harmlessly re-validates
939 applyMultiStateControlledPauliX(qureg, controls, nullptr, numControls, target);
940}

Referenced by applyMultiControlledPauliX().

◆ applyMultiControlledPauliX() [2/2]

void applyMultiControlledPauliX ( Qureg qureg,
std::vector< int > controls,
int target )
Warning
This function has not yet been unit tested and may contain bugs. Please use with caution!
Attention
This function's input validation has not yet been unit tested, so erroneous usage may produce unexpected output. Please use with caution!
Note
Documentation for this function or struct is under construction!
Remarks
This function is only available in C++.

Definition at line 988 of file operations.cpp.

988 {
989
990 applyMultiControlledPauliX(qureg, controls.data(), controls.size(), target);
991}
void applyMultiControlledPauliX(Qureg qureg, int *controls, int numControls, int target)

◆ applyMultiControlledPauliY() [1/2]

void applyMultiControlledPauliY ( Qureg qureg,
int * controls,
int numControls,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 942 of file operations.cpp.

942 {
943 validate_quregFields(qureg, __func__);
944 validate_controlsAndTarget(qureg, controls, numControls, target, __func__);
945
946 // harmlessly re-validates
947 applyMultiStateControlledPauliY(qureg, controls, nullptr, numControls, target);
948}

Referenced by applyMultiControlledPauliY().

◆ applyMultiControlledPauliY() [2/2]

void applyMultiControlledPauliY ( Qureg qureg,
std::vector< int > controls,
int target )
Warning
This function has not yet been unit tested and may contain bugs. Please use with caution!
Attention
This function's input validation has not yet been unit tested, so erroneous usage may produce unexpected output. Please use with caution!
Note
Documentation for this function or struct is under construction!
Remarks
This function is only available in C++.

Definition at line 993 of file operations.cpp.

993 {
994
995 applyMultiControlledPauliY(qureg, controls.data(), controls.size(), target);
996}
void applyMultiControlledPauliY(Qureg qureg, int *controls, int numControls, int target)

◆ applyMultiControlledPauliZ() [1/2]

void applyMultiControlledPauliZ ( Qureg qureg,
int * controls,
int numControls,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 950 of file operations.cpp.

950 {
951 validate_quregFields(qureg, __func__);
952 validate_controlsAndTarget(qureg, controls, numControls, target, __func__);
953
954 // harmlessly re-validates
955 applyMultiStateControlledPauliZ(qureg, controls, nullptr, numControls, target);
956}

Referenced by applyMultiControlledPauliZ().

◆ applyMultiControlledPauliZ() [2/2]

void applyMultiControlledPauliZ ( Qureg qureg,
std::vector< int > controls,
int target )
Warning
This function has not yet been unit tested and may contain bugs. Please use with caution!
Attention
This function's input validation has not yet been unit tested, so erroneous usage may produce unexpected output. Please use with caution!
Note
Documentation for this function or struct is under construction!
Remarks
This function is only available in C++.

Definition at line 998 of file operations.cpp.

998 {
999
1000 applyMultiControlledPauliZ(qureg, controls.data(), controls.size(), target);
1001}
void applyMultiControlledPauliZ(Qureg qureg, int *controls, int numControls, int target)

◆ applyMultiStateControlledPauliX() [1/2]

void applyMultiStateControlledPauliX ( Qureg qureg,
int * controls,
int * states,
int numControls,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 958 of file operations.cpp.

958 {
959 validate_quregFields(qureg, __func__);
960 validate_controlsAndTarget(qureg, controls, numControls, target, __func__);
961 validate_controlStates(states, numControls, __func__); // permits states==nullptr
962
963 // harmlessly re-validates
964 applyMultiStateControlledPauliStr(qureg, controls, states, numControls, getPauliStr("X", {target}));
965}
void applyMultiStateControlledPauliStr(Qureg qureg, int *controls, int *states, int numControls, PauliStr str)
PauliStr getPauliStr(const char *paulis, int *indices, int numPaulis)
Definition paulis.cpp:296

Referenced by applyControlledPauliX(), applyMultiControlledPauliX(), applyMultiStateControlledPauliX(), and applyPauliX().

◆ applyMultiStateControlledPauliX() [2/2]

void applyMultiStateControlledPauliX ( Qureg qureg,
std::vector< int > controls,
std::vector< int > states,
int target )
Warning
This function has not yet been unit tested and may contain bugs. Please use with caution!
Attention
This function's input validation has not yet been unit tested, so erroneous usage may produce unexpected output. Please use with caution!
Note
Documentation for this function or struct is under construction!
Remarks
This function is only available in C++.

Definition at line 1003 of file operations.cpp.

1003 {
1004 validate_controlsMatchStates(controls.size(), states.size(), __func__);
1005
1006 applyMultiStateControlledPauliX(qureg, controls.data(), states.data(), controls.size(), target);
1007}

◆ applyMultiStateControlledPauliY() [1/2]

void applyMultiStateControlledPauliY ( Qureg qureg,
int * controls,
int * states,
int numControls,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 967 of file operations.cpp.

967 {
968 validate_quregFields(qureg, __func__);
969 validate_controlsAndTarget(qureg, controls, numControls, target, __func__);
970 validate_controlStates(states, numControls, __func__); // permits states==nullptr
971
972 // harmlessly re-validates
973 applyMultiStateControlledPauliStr(qureg, controls, states, numControls, getPauliStr("Y", {target}));
974}

Referenced by applyControlledPauliY(), applyMultiControlledPauliY(), applyMultiStateControlledPauliY(), and applyPauliY().

◆ applyMultiStateControlledPauliY() [2/2]

void applyMultiStateControlledPauliY ( Qureg qureg,
std::vector< int > controls,
std::vector< int > states,
int target )
Warning
This function has not yet been unit tested and may contain bugs. Please use with caution!
Attention
This function's input validation has not yet been unit tested, so erroneous usage may produce unexpected output. Please use with caution!
Note
Documentation for this function or struct is under construction!
Remarks
This function is only available in C++.

Definition at line 1009 of file operations.cpp.

1009 {
1010 validate_controlsMatchStates(controls.size(), states.size(), __func__);
1011
1012 applyMultiStateControlledPauliY(qureg, controls.data(), states.data(), controls.size(), target);
1013}

◆ applyMultiStateControlledPauliZ() [1/2]

void applyMultiStateControlledPauliZ ( Qureg qureg,
int * controls,
int * states,
int numControls,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 976 of file operations.cpp.

976 {
977 validate_quregFields(qureg, __func__);
978 validate_controlsAndTarget(qureg, controls, numControls, target, __func__);
979 validate_controlStates(states, numControls, __func__); // permits states==nullptr
980
981 // harmlessly re-validates
982 DiagMatr1 matr = getDiagMatr1({1, -1});
983 applyMultiStateControlledDiagMatr1(qureg, controls, states, numControls, target, matr);
984}
static DiagMatr1 getDiagMatr1(qcomp *in)
Definition matrices.h:345
void applyMultiStateControlledDiagMatr1(Qureg qureg, int *controls, int *states, int numControls, int target, DiagMatr1 matrix)

Referenced by applyControlledPauliZ(), applyMultiControlledPauliZ(), applyMultiStateControlledPauliZ(), and applyPauliZ().

◆ applyMultiStateControlledPauliZ() [2/2]

void applyMultiStateControlledPauliZ ( Qureg qureg,
std::vector< int > controls,
std::vector< int > states,
int target )
Warning
This function has not yet been unit tested and may contain bugs. Please use with caution!
Attention
This function's input validation has not yet been unit tested, so erroneous usage may produce unexpected output. Please use with caution!
Note
Documentation for this function or struct is under construction!
Remarks
This function is only available in C++.

Definition at line 1015 of file operations.cpp.

1015 {
1016 validate_controlsMatchStates(controls.size(), states.size(), __func__);
1017
1018 applyMultiStateControlledPauliZ(qureg, controls.data(), states.data(), controls.size(), target);
1019}

◆ applyPauliX()

void applyPauliX ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 886 of file operations.cpp.

886 {
887 validate_quregFields(qureg, __func__);
888 validate_target(qureg, target, __func__);
889
890 // harmlessly re-validates
891 applyMultiStateControlledPauliX(qureg, nullptr, nullptr, 0, target);
892}

◆ applyPauliY()

void applyPauliY ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 894 of file operations.cpp.

894 {
895 validate_quregFields(qureg, __func__);
896 validate_target(qureg, target, __func__);
897
898 // harmlessly re-validates
899 applyMultiStateControlledPauliY(qureg, nullptr, nullptr, 0, target);
900}

◆ applyPauliZ()

void applyPauliZ ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!

Definition at line 902 of file operations.cpp.

902 {
903 validate_quregFields(qureg, __func__);
904 validate_target(qureg, target, __func__);
905
906 // harmlessly re-validates
907 applyMultiStateControlledPauliZ(qureg, nullptr, nullptr, 0, target);
908}

◆ multiplyPauliX()

void multiplyPauliX ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!

◆ multiplyPauliY()

void multiplyPauliY ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!

◆ multiplyPauliZ()

void multiplyPauliZ ( Qureg qureg,
int target )
Note
Documentation for this function or struct is under construction!