The Quantum Exact Simulation Toolkit v4.1.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)
 
void multiplyMultiQubitNot (Qureg qureg, 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 1690 of file operations.cpp.

1690 {
1691 validate_quregFields(qureg, __func__);
1692 validate_controlAndTargets(qureg, control, targets, numTargets, __func__);
1693
1694 // harmlessly re-validates
1695 applyMultiStateControlledMultiQubitNot(qureg, &control, nullptr, 1, targets, numTargets);
1696}
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 1698 of file operations.cpp.

1698 {
1699 validate_quregFields(qureg, __func__);
1700 validate_controlsAndTargets(qureg, controls, numControls, targets, numTargets, __func__);
1701
1702 // harmlessly re-validates
1703 applyMultiStateControlledMultiQubitNot(qureg, controls, nullptr, numControls, targets, numTargets);
1704}

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 1682 of file operations.cpp.

1682 {
1683 validate_quregFields(qureg, __func__);
1684 validate_targets(qureg, targets, numTargets, __func__);
1685
1686 // harmlessly re-validates
1687 applyMultiStateControlledMultiQubitNot(qureg, nullptr, nullptr, 0, targets, numTargets);
1688}

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 1706 of file operations.cpp.

1706 {
1707 validate_quregFields(qureg, __func__);
1708 validate_controlsAndTargets(qureg, controls, numControls, targets, numTargets, __func__);
1709 validate_controlStates(states, numControls, __func__);
1710
1711 // treat as an all-X PauliStr
1712 PauliStr str = getPauliStr(std::string(numTargets, 'X'), targets, numTargets);
1713
1714 // harmlessly re-validates
1715 applyMultiStateControlledPauliStr(qureg, controls, states, numControls, str);
1716}
void applyMultiStateControlledPauliStr(Qureg qureg, int *controls, int *states, int numControls, PauliStr str)
PauliStr getPauliStr(const char *paulis, int *indices, int numPaulis)
Definition paulis.cpp:306

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

◆ multiplyMultiQubitNot()

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

Definition at line 1674 of file operations.cpp.

1674 {
1675 validate_quregFields(qureg, __func__);
1676 validate_targets(qureg, targets, numTargets, __func__);
1677
1678 // harmlessly re-validates
1679 multiplyPauliStr(qureg, getPauliStr(std::string(numTargets, 'X'), targets, numTargets));
1680}
void multiplyPauliStr(Qureg qureg, PauliStr str)

Referenced by multiplyMultiQubitNot().