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

Functions for applying general many-target dense matrices, as CompMatr. More...

Functions

void applyCompMatr (Qureg qureg, int *targets, int numTargets, CompMatr matr)
 
void applyCompMatr (Qureg qureg, std::vector< int > targets, CompMatr matr)
 
void applyControlledCompMatr (Qureg qureg, int control, int *targets, int numTargets, CompMatr matr)
 
void applyControlledCompMatr (Qureg qureg, int control, std::vector< int > targets, CompMatr matr)
 
void applyMultiControlledCompMatr (Qureg qureg, int *controls, int numControls, int *targets, int numTargets, CompMatr matr)
 
void applyMultiControlledCompMatr (Qureg qureg, std::vector< int > controls, std::vector< int > targets, CompMatr matr)
 
void applyMultiStateControlledCompMatr (Qureg qureg, int *controls, int *states, int numControls, int *targets, int numTargets, CompMatr matr)
 
void applyMultiStateControlledCompMatr (Qureg qureg, std::vector< int > controls, std::vector< int > states, std::vector< int > targets, CompMatr matr)
 
void multiplyCompMatr (Qureg qureg, int *targets, int numTargets, CompMatr matr)
 
void multiplyCompMatr (Qureg qureg, std::vector< int > targets, CompMatr matr)
 

Detailed Description

Functions for applying general many-target dense matrices, as CompMatr.

Function Documentation

◆ applyCompMatr() [1/2]

void applyCompMatr ( Qureg qureg,
int * targets,
int numTargets,
CompMatr matr )
Note
Documentation for this function or struct is under construction!

Definition at line 186 of file operations.cpp.

186 {
187
188 validateAndApplyAnyCtrlAnyTargUnitaryMatrix(qureg, nullptr, nullptr, 0, targets, numTargets, matrix, __func__);
189}

Referenced by applyCompMatr().

◆ applyCompMatr() [2/2]

void applyCompMatr ( Qureg qureg,
std::vector< int > targets,
CompMatr matr )
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 213 of file operations.cpp.

213 {
214
215 applyCompMatr(qureg, targets.data(), targets.size(), matr);
216}
void applyCompMatr(Qureg qureg, int *targets, int numTargets, CompMatr matrix)

◆ applyControlledCompMatr() [1/2]

void applyControlledCompMatr ( Qureg qureg,
int control,
int * targets,
int numTargets,
CompMatr matr )
Note
Documentation for this function or struct is under construction!

Definition at line 191 of file operations.cpp.

191 {
192
193 validateAndApplyAnyCtrlAnyTargUnitaryMatrix(qureg, &control, nullptr, 1, targets, numTargets, matrix, __func__);
194}

Referenced by applyControlledCompMatr().

◆ applyControlledCompMatr() [2/2]

void applyControlledCompMatr ( Qureg qureg,
int control,
std::vector< int > targets,
CompMatr matr )
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 218 of file operations.cpp.

218 {
219
220 applyControlledCompMatr(qureg, control, targets.data(), targets.size(), matr);
221}
void applyControlledCompMatr(Qureg qureg, int control, int *targets, int numTargets, CompMatr matrix)

◆ applyMultiControlledCompMatr() [1/2]

void applyMultiControlledCompMatr ( Qureg qureg,
int * controls,
int numControls,
int * targets,
int numTargets,
CompMatr matr )
Note
Documentation for this function or struct is under construction!

Definition at line 196 of file operations.cpp.

196 {
197
198 validateAndApplyAnyCtrlAnyTargUnitaryMatrix(qureg, controls, nullptr, numControls, targets, numTargets, matrix, __func__);
199}

Referenced by applyMultiControlledCompMatr().

◆ applyMultiControlledCompMatr() [2/2]

void applyMultiControlledCompMatr ( Qureg qureg,
std::vector< int > controls,
std::vector< int > targets,
CompMatr matr )
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 223 of file operations.cpp.

223 {
224
225 applyMultiControlledCompMatr(qureg, controls.data(), controls.size(), targets.data(), targets.size(), matr);
226}
void applyMultiControlledCompMatr(Qureg qureg, int *controls, int numControls, int *targets, int numTargets, CompMatr matrix)

◆ applyMultiStateControlledCompMatr() [1/2]

void applyMultiStateControlledCompMatr ( Qureg qureg,
int * controls,
int * states,
int numControls,
int * targets,
int numTargets,
CompMatr matr )
Note
Documentation for this function or struct is under construction!

Definition at line 201 of file operations.cpp.

201 {
202
203 validateAndApplyAnyCtrlAnyTargUnitaryMatrix(qureg, controls, states, numControls, targets, numTargets, matrix, __func__);
204}

Referenced by applyMultiStateControlledCompMatr().

◆ applyMultiStateControlledCompMatr() [2/2]

void applyMultiStateControlledCompMatr ( Qureg qureg,
std::vector< int > controls,
std::vector< int > states,
std::vector< int > targets,
CompMatr matr )
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 228 of file operations.cpp.

228 {
229 validate_controlsMatchStates(controls.size(), states.size(), __func__);
230
231 applyMultiStateControlledCompMatr(qureg, controls.data(), states.data(), controls.size(), targets.data(), targets.size(), matr);
232}
void applyMultiStateControlledCompMatr(Qureg qureg, int *controls, int *states, int numControls, int *targets, int numTargets, CompMatr matrix)

◆ multiplyCompMatr() [1/2]

void multiplyCompMatr ( Qureg qureg,
int * targets,
int numTargets,
CompMatr matr )
Note
Documentation for this function or struct is under construction!

Definition at line 176 of file operations.cpp.

176 {
177 validate_quregFields(qureg, __func__);
178 validate_targets(qureg, targets, numTargets, __func__);
179 validate_matrixDimMatchesTargets(matrix, numTargets, __func__); // also validates fields and is-sync, but not unitarity
180 validate_mixedAmpsFitInNode(qureg, numTargets, __func__);
181
182 bool conj = false;
183 localiser_statevec_anyCtrlAnyTargDenseMatr(qureg, {}, {}, util_getVector(targets, numTargets), matrix, conj);
184}

Referenced by multiplyCompMatr().

◆ multiplyCompMatr() [2/2]

void multiplyCompMatr ( Qureg qureg,
std::vector< int > targets,
CompMatr matr )
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 208 of file operations.cpp.

208 {
209
210 multiplyCompMatr(qureg, targets.data(), targets.size(), matr);
211}
void multiplyCompMatr(Qureg qureg, int *targets, int numTargets, CompMatr matrix)