The Quantum Exact Simulation Toolkit v4.2.0
Loading...
Searching...
No Matches
Many-not gates

Functions for effecting many-qubit NOT gates. More...

Functions

void applyControlledMultiQubitNot (Qureg qureg, int control, int *targets, int numTargets)
 
void applyMultiControlledMultiQubitNot (Qureg qureg, int *controls, int numControls, int *targets, int numTargets)
 
void applyMultiQubitNot (Qureg qureg, int *targets, int numTargets)
 
void applyMultiStateControlledMultiQubitNot (Qureg qureg, int *controls, int *states, int numControls, int *targets, int numTargets)
 

Detailed Description

Functions for effecting many-qubit NOT gates.

Function Documentation

◆ applyControlledMultiQubitNot()

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

Definition at line 1498 of file operations.cpp.

1498 {
1499 validate_quregFields(qureg, __func__);
1500 validate_controlAndTargets(qureg, control, targets, numTargets, __func__);
1501
1502 // harmlessly re-validates
1503 applyMultiStateControlledMultiQubitNot(qureg, &control, nullptr, 1, targets, numTargets);
1504}
void applyMultiStateControlledMultiQubitNot(Qureg qureg, int *controls, int *states, int numControls, int *targets, int numTargets)

Referenced by applyControlledMultiQubitNot().

◆ applyMultiControlledMultiQubitNot()

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

Definition at line 1506 of file operations.cpp.

1506 {
1507 validate_quregFields(qureg, __func__);
1508 validate_controlsAndTargets(qureg, controls, numControls, targets, numTargets, __func__);
1509
1510 // harmlessly re-validates
1511 applyMultiStateControlledMultiQubitNot(qureg, controls, nullptr, numControls, targets, numTargets);
1512}

Referenced by applyMultiControlledMultiQubitNot().

◆ applyMultiQubitNot()

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

Definition at line 1490 of file operations.cpp.

1490 {
1491 validate_quregFields(qureg, __func__);
1492 validate_targets(qureg, targets, numTargets, __func__);
1493
1494 // harmlessly re-validates
1495 applyMultiStateControlledMultiQubitNot(qureg, nullptr, nullptr, 0, targets, numTargets);
1496}

Referenced by applyMultiQubitNot().

◆ applyMultiStateControlledMultiQubitNot()

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

Definition at line 1514 of file operations.cpp.

1514 {
1515 validate_quregFields(qureg, __func__);
1516 validate_controlsAndTargets(qureg, controls, numControls, targets, numTargets, __func__);
1517 validate_controlStates(states, numControls, __func__);
1518
1519 // treat as an all-X PauliStr
1520 PauliStr str = getPauliStr(std::string(numTargets, 'X'), targets, numTargets);
1521
1522 // harmlessly re-validates
1523 applyMultiStateControlledPauliStr(qureg, controls, states, numControls, str);
1524}
void applyMultiStateControlledPauliStr(Qureg qureg, int *controls, int *states, int numControls, PauliStr str)
PauliStr getPauliStr(const char *paulis, int *indices, int numPaulis)
Definition paulis.cpp:76

Referenced by applyControlledMultiQubitNot(), applyMultiControlledMultiQubitNot(), applyMultiQubitNot(), and applyMultiStateControlledMultiQubitNot().