The Quantum Exact Simulation Toolkit v4.0.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 1674 of file operations.cpp.

1674 {
1675 validate_quregFields(qureg, __func__);
1676 validate_controlAndTargets(qureg, control, targets, numTargets, __func__);
1677
1678 // harmlessly re-validates
1679 applyMultiStateControlledMultiQubitNot(qureg, &control, nullptr, 1, targets, numTargets);
1680}
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 1682 of file operations.cpp.

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

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

1666 {
1667 validate_quregFields(qureg, __func__);
1668 validate_targets(qureg, targets, numTargets, __func__);
1669
1670 // harmlessly re-validates
1671 applyMultiStateControlledMultiQubitNot(qureg, nullptr, nullptr, 0, targets, numTargets);
1672}

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

1690 {
1691 validate_quregFields(qureg, __func__);
1692 validate_controlsAndTargets(qureg, controls, numControls, targets, numTargets, __func__);
1693 validate_controlStates(states, numControls, __func__);
1694
1695 // treat as an all-X PauliStr
1696 PauliStr str = getPauliStr(std::string(numTargets, 'X'), targets, numTargets);
1697
1698 // harmlessly re-validates
1699 applyMultiStateControlledPauliStr(qureg, controls, states, numControls, str);
1700}
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 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 1658 of file operations.cpp.

1658 {
1659 validate_quregFields(qureg, __func__);
1660 validate_targets(qureg, targets, numTargets, __func__);
1661
1662 // harmlessly re-validates
1663 multiplyPauliStr(qureg, getPauliStr(std::string(numTargets, 'X'), targets, numTargets));
1664}
void multiplyPauliStr(Qureg qureg, PauliStr str)

Referenced by multiplyMultiQubitNot().