Source code for geqo.gates.fundamental_gates

from geqo.core.quantum_circuit import Sequence
from geqo.core.quantum_operation import QuantumOperation


[docs] class PauliX(QuantumOperation): """Pauli X gate on one qubit.""" def __init__(self): """ The constructor of this class. It has no parameters. Returns ------- PauliX : geqo.core.fundamental_gates.PauliX An object of this class. It has no parameters. """ pass def __repr__(self): """ Returns a representation of the object as character string. ------- string_representation : String Representation of the object as character string. """ return "PauliX()" def __eq__(self, other): """ Comparator with other objects. Parameters ---------- other : An object, which should be compared to this object. Returns ------- True : If the provided object is of the same class. False : else """ if not isinstance(other, PauliX): return False else: return True
[docs] def getInverse(self): """ Return the object itself because it is self-inverse. Returns ------- PauliX : geqo.core.fundamental_gates.PauliX The same object because it is self-inverse. """ return self
[docs] def getEquivalentSequence(self): """ Return an object of the class ```Sequence```, which does not contain any operators, because this operation is considered to be as a non-decomposable operation. Returns ------- sequence : geqo.core.Sequence An object of the class ```Sequence``` without operations, but with the appropriate bits and qubits. """ return Sequence([], [0], [(self, [0])])
[docs] def getNumberQubits(self): """ Return the number of qubits that are used by this operation. Returns ------- 1 : int The number of qubits, which are used by this gate. """ return 1
[docs] def getNumberClassicalBits(self): """ Returns ------- 0 : int The number of classical bits, which are used by PermuteQubits, is zero. """ return 0
[docs] def hasDecomposition(self): """ Returns ------- False : Bool This operation is considered to be as a non-decomposable operation. """ return False
[docs] def isUnitary(self): """ Returns ------- True : Bool This is a unitary operation. """ return True
[docs] class PauliY(QuantumOperation): """Pauli Y gate on one qubit.""" def __init__(self): """ The constructor of this class. It has no parameters. Returns ------- PauliY : geqo.core.fundamental_gates.PauliY An object of this class. It has no parameters. """ pass def __repr__(self): """ Returns a representation of the object as character string. ------- string_representation : String Representation of the object as character string. """ return "PauliY()" def __eq__(self, other): """ Comparator with other objects. Parameters ---------- other : An object, which should be compared to this object. Returns ------- True : If the provided object is of the same class. False : else """ if not isinstance(other, PauliY): return False else: return True
[docs] def getInverse(self): """ Return the object itself because it is self-inverse. Returns ------- PauliY : geqo.core.fundamental_gates.PauliY The same object because it is self-inverse. """ return self
[docs] def getEquivalentSequence(self): """ Return an object of the class ```Sequence```, which does not contain any operators, because this operation is considered to be as a non-decomposable operation. Returns ------- sequence : geqo.core.Sequence An object of the class ```Sequence``` without operations, but with the appropriate bits and qubits. """ return Sequence([], [0], [(self, [0])])
[docs] def getNumberQubits(self): """ Return the number of qubits that are used by this operation. Returns ------- 1 : int The number of qubits, which are used by this gate. """ return 1
[docs] def getNumberClassicalBits(self): """ Returns ------- 0 : int The number of classical bits, which are used by PermuteQubits, is zero. """ return 0
[docs] def hasDecomposition(self): """ Returns ------- False : Bool This operation is considered to be as a non-decomposable operation. """ return False
[docs] def isUnitary(self): """ Returns ------- True : Bool This is a unitary operation. """ return True
[docs] class PauliZ(QuantumOperation): """Pauli Z gate on one qubit.""" def __init__(self): """ The constructor of this class. It has no parameters. Returns ------- PauliZ : geqo.core.fundamental_gates.PauliZ An object of this class. It has no parameters. """ pass def __repr__(self): """ Returns a representation of the object as character string. ------- string_representation : String Representation of the object as character string. """ return "PauliZ()" def __eq__(self, other): """ Comparator with other objects. Parameters ---------- other : An object, which should be compared to this object. Returns ------- True : If the provided object is of the same class. False : else """ if not isinstance(other, PauliZ): return False else: return True
[docs] def getInverse(self): """ Return the object itself because it is self-inverse. Returns ------- PauliZ : geqo.core.fundamental_gates.PauliZ The same object because it is self-inverse. """ return self
[docs] def getEquivalentSequence(self): """ Return an object of the class ```Sequence```, which does not contain any operators, because this operation is considered to be as a non-decomposable operation. Returns ------- sequence : geqo.core.Sequence An object of the class ```Sequence``` without operations, but with the appropriate bits and qubits. """ return Sequence([], [0], [(self, [0])])
[docs] def getNumberQubits(self): """ Return the number of qubits that are used by this operation. Returns ------- 1 : int The number of qubits, which are used by this gate. """ return 1
[docs] def getNumberClassicalBits(self): """ Returns ------- 0 : int The number of classical bits, which are used by PermuteQubits, is zero. """ return 0
[docs] def hasDecomposition(self): """ Returns ------- False : Bool This operation is considered to be as a non-decomposable operation. """ return False
[docs] def isUnitary(self): """ Returns ------- True : Bool This is a unitary operation. """ return True
[docs] class Hadamard(QuantumOperation): """Hadamard gate on one qubit.""" def __init__(self): """ The constructor of this class. It has no parameters. Returns ------- Hadamard : geqo.core.fundamental_gates.Hadamard An object of this class. It has no parameters. """ pass def __repr__(self): """ Returns a representation of the object as character string. ------- string_representation : String Representation of the object as character string. """ return "Hadamard()" def __eq__(self, other): """ Comparator with other objects. Parameters ---------- other : An object, which should be compared to this object. Returns ------- True : If the provided object is of the same class. False : else """ if not isinstance(other, Hadamard): return False else: return True
[docs] def getInverse(self): """ Return the object itself because it is self-inverse. Returns ------- Hadamard : geqo.core.fundamental_gates.Hadamard The same object because it is self-inverse. """ return self
[docs] def getEquivalentSequence(self): """ Return an object of the class ```Sequence```, which does not contain any operators, because this operation is considered to be as a non-decomposable operation. Returns ------- sequence : geqo.core.Sequence An object of the class ```Sequence``` without operations, but with the appropriate bits and qubits. """ return Sequence([], [0], [(self, [0])])
[docs] def getNumberQubits(self): """ Return the number of qubits that are used by this operation. Returns ------- 1 : int The number of qubits, which are used by this gate. """ return 1
[docs] def getNumberClassicalBits(self): """ Returns ------- 0 : int The number of classical bits, which are used by PermuteQubits, is zero. """ return 0
[docs] def hasDecomposition(self): """ Returns ------- False : Bool This operation is considered to be as a non-decomposable operation. """ return False
[docs] def isUnitary(self): """ Returns ------- True : Bool This is a unitary operation. """ return True
[docs] class Phase(QuantumOperation): """Phase shift gate on one qubit.""" def __init__(self, name): """ The constructor of this class. The name of the angle is a parameter. Parameters ---------- name : String The name of the phase. Returns ------- Phase : geqo.core.fundamental_gates.Phase An object of this class. It has no parameters. """ self.name = name def __repr__(self): """ Returns a representation of the object as character string. ------- string_representation : String Representation of the object as character string. """ return f'Phase("{self.name}")' def __eq__(self, other): """ Comparator with other objects. Parameters ---------- other : An object, which should be compared to this object. Returns ------- True : If the provided object is of the same class and has the same name. False : else """ if not isinstance(other, Phase): return False else: return self.name == other.name
[docs] def getInverse(self): """ Return an object of the class ```InversePhase```, which has the same name. Returns ------- InversePhase : geqo.core.fundamental_gates.InversePhase Return an object of the class ```InversePhase``` with the same name. It corresponds to the inverse of this operation. """ return InversePhase(self.name)
[docs] def getEquivalentSequence(self): """ Return an object of the class ```Sequence```, which does not contain any operators, because this operation is considered to be as a non-decomposable operation. Returns ------- sequence : geqo.core.Sequence An object of the class ```Sequence``` without operations, but with the appropriate bits and qubits. """ return Sequence([], [0], [(self, [0])])
[docs] def getNumberQubits(self): """ Return the number of qubits that are used by this operation. Returns ------- 1 : int The number of qubits, which are used by this gate. """ return 1
[docs] def getNumberClassicalBits(self): """ Returns ------- 0 : int The number of classical bits, which are used by PermuteQubits, is zero. """ return 0
[docs] def hasDecomposition(self): """ Returns ------- False : Bool This operation is considered to be as a non-decomposable operation. """ return False
[docs] def isUnitary(self): """ Returns ------- True : Bool This is a unitary operation. """ return True
[docs] class InversePhase(QuantumOperation): """Inverse phase shift gate on one qubit.""" def __init__(self, name): """ The constructor of this class. The name of the angle is a parameter. Parameters ---------- name : String The name of the phase. Returns ------- InversePhase : geqo.core.fundamental_gates.InversePhase An object of this class. It has no parameters. """ self.name = name def __repr__(self): """ Returns a representation of the object as character string. ------- string_representation : String Representation of the object as character string. """ return f'InversePhase("{self.name}")' def __eq__(self, other): """ Comparator with other objects. Parameters ---------- other : An object, which should be compared to this object. Returns ------- True : If the provided object is of the same class and has the same name. False : else """ if not isinstance(other, InversePhase): return False else: return self.name == other.name
[docs] def getInverse(self): """ Return an object of the class ```Phase```, which has the same name. Returns ------- Phase : geqo.core.fundamental_gates.Phase Return an object of the class ```Phase``` with the same name. It corresponds to the inverse of this operation. """ return Phase(self.name)
[docs] def getEquivalentSequence(self): """ Return an object of the class ```Sequence```, which does not contain any operators, because this operation is considered to be as a non-decomposable operation. Returns ------- sequence : geqo.core.Sequence An object of the class ```Sequence``` without operations, but with the appropriate bits and qubits. """ return Sequence([], [0], [(self, [0])])
[docs] def getNumberQubits(self): """ Return the number of qubits that are used by this operation. Returns ------- 1 : int The number of qubits, which are used by this gate. """ return 1
[docs] def getNumberClassicalBits(self): """ Returns ------- 0 : int The number of classical bits, which are used by PermuteQubits, is zero. """ return 0
[docs] def hasDecomposition(self): """ Returns ------- False : Bool This operation is considered to be as a non-decomposable operation. """ return False
[docs] def isUnitary(self): """ Returns ------- True : Bool This is a unitary operation. """ return True
[docs] class CNOT(QuantumOperation): """CNOT gate on two qubits.""" def __init__(self): """ The constructor of this class. It has no parameters. Returns ------- CNOT : geqo.core.fundamental_gates.CNOT An object of this class. It has no parameters. """ pass def __repr__(self): """ Returns a representation of the object as character string. ------- string_representation : String Representation of the object as character string. """ return "CNOT()" def __eq__(self, other): """ Comparator with other objects. Parameters ---------- other : An object, which should be compared to this object. Returns ------- True : If the provided object is of the same class. False : else """ if not isinstance(other, CNOT): return False else: return True
[docs] def getInverse(self): """ Return the object itself because it is self-inverse. Returns ------- CNOT : geqo.core.fundamental_gates.CNOT The same object because it is self-inverse. """ return self
[docs] def getEquivalentSequence(self): """ Return an object of the class ```Sequence```, which does not contain any operators, because this operation is considered to be as a non-decomposable operation. Returns ------- sequence : geqo.core.Sequence An object of the class ```Sequence``` without operations, but with the appropriate bits and qubits. """ return Sequence([], [0, 1], [(self, [0, 1])])
[docs] def getNumberQubits(self): """ Return the number of qubits that are used by this operation. Returns ------- 2 : int The number of qubits, which are used by this gate. """ return 2
[docs] def getNumberClassicalBits(self): """ Returns ------- 0 : int The number of classical bits, which are used by PermuteQubits, is zero. """ return 0
[docs] def hasDecomposition(self): """ Returns ------- False : Bool This operation is considered to be as a non-decomposable operation. """ return False
[docs] def isUnitary(self): """ Returns ------- True : Bool This is a unitary operation. """ return True
[docs] class SwapQubits(QuantumOperation): """Swap gate on two qubits.""" def __init__(self): """ The constructor of this class. It has no parameters. Returns ------- SwapQubits : geqo.core.fundamental_gates.SwapQubits An object of this class. It has no parameters. """ pass def __repr__(self): """ Returns a representation of the object as character string. ------- string_representation : String Representation of the object as character string. """ return "SwapQubits()" def __eq__(self, other): """ Comparator with other objects. Parameters ---------- other : An object, which should be compared to this object. Returns ------- True : If the provided object is of the same class. False : else """ if not isinstance(other, SwapQubits): return False else: return True
[docs] def getInverse(self): """ Return the object itself because it is self-inverse. Returns ------- SwapQubits : geqo.core.fundamental_gates.SwapQubits The same object because it is self-inverse. """ return self
[docs] def getEquivalentSequence(self): """ Return an object of the class ```Sequence```, which does not contain any operators, because this operation is considered to be as a non-decomposable operation. Returns ------- sequence : geqo.core.Sequence An object of the class ```Sequence``` without operations, but with the appropriate bits and qubits. """ return Sequence([], [0, 1], [(self, [0, 1])])
[docs] def getNumberQubits(self): """ Return the number of qubits that are used by this operation. Returns ------- 2 : int The number of qubits, which are used by this gate. """ return 2
[docs] def getNumberClassicalBits(self): """ Returns ------- 0 : int The number of classical bits, which are used by PermuteQubits, is zero. """ return 0
[docs] def hasDecomposition(self): """ Returns ------- False : Bool This operation is considered to be as a non-decomposable operation. """ return False
[docs] def isUnitary(self): """ Returns ------- True : Bool This is a unitary operation. """ return True
[docs] class SGate(QuantumOperation): """This operation corresponds to the square root of the Z gate on one qubit. For the definition, see ```https://en.wikipedia.org/wiki/Clifford_gates#S_gate```. """ def __init__(self): """ The constructor of this class. It has no parameters. Returns ------- SGate : geqo.core.fundamental_gates.SGate An object of this class. It has no parameters. """ pass def __repr__(self): """ Returns a representation of the object as character string. ------- string_representation : String Representation of the object as character string. """ return "SGate()" def __eq__(self, other): """ Comparator with other objects. Parameters ---------- other : An object, which should be compared to this object. Returns ------- True : If the provided object is of the same class. False : else """ if not isinstance(other, SGate): return False else: return True
[docs] def getInverse(self): """ Return an object of the class ```InverseSGate```. Returns ------- InverseSGate : geqo.gates.fundamental_gates.InverseSGate A new object of this class, which corresponds to the inverse operation. """ return InverseSGate()
[docs] def getEquivalentSequence(self): """ Return an object of the class ```Sequence```, which does not contain any operators, because this operation is considered to be as a non-decomposable operation. Returns ------- sequence : geqo.core.Sequence An object of the class ```Sequence``` without operations, but with the appropriate bits and qubits. """ return Sequence([], [0], [(self, [0])])
[docs] def getNumberQubits(self): """ Return the number of qubits that are used by this operation. Returns ------- 1 : int The number of qubits, which are used by this gate. """ return 1
[docs] def getNumberClassicalBits(self): """ Returns ------- 0 : int The number of classical bits, which are used by PermuteQubits, is zero. """ return 0
[docs] def hasDecomposition(self): """ Returns ------- False : Bool This operation is considered to be as a non-decomposable operation. """ return False
[docs] def isUnitary(self): """ Returns ------- True : Bool This is a unitary operation. """ return True
[docs] class InverseSGate(QuantumOperation): """This operation corresponds to the inverse of the square root of the Z gate on one qubit. For the definition of the S gate, see ```https://en.wikipedia.org/wiki/Clifford_gates#S_gate```. """ def __init__(self): """ The constructor of this class. It has no parameters. Returns ------- InverseSGate : geqo.core.fundamental_gates.InverseSGate An object of this class. It has no parameters. """ pass def __repr__(self): """ Returns a representation of the object as character string. ------- string_representation : String Representation of the object as character string. """ return "InverseSGate()" def __eq__(self, other): """ Comparator with other objects. Parameters ---------- other : An object, which should be compared to this object. Returns ------- True : If the provided object is of the same class. False : else """ if not isinstance(other, InverseSGate): return False else: return True
[docs] def getInverse(self): """ Return an object of the class ```SGate```. Returns ------- SGate : geqo.gates.fundamental_gates.SGate A new object of this class, which corresponds to the inverse operation. """ return SGate()
[docs] def getEquivalentSequence(self): """ Return an object of the class ```Sequence```, which does not contain any operators, because this operation is considered to be as a non-decomposable operation. Returns ------- sequence : geqo.core.Sequence An object of the class ```Sequence``` without operations, but with the appropriate bits and qubits. """ return Sequence([], [0], [(self, [0])])
[docs] def getNumberQubits(self): """ Return the number of qubits that are used by this operation. Returns ------- 1 : int The number of qubits, which are used by this gate. """ return 1
[docs] def getNumberClassicalBits(self): """ Returns ------- 0 : int The number of classical bits, which are used by PermuteQubits, is zero. """ return 0
[docs] def hasDecomposition(self): """ Returns ------- False : Bool This operation is considered to be as a non-decomposable operation. """ return False
[docs] def isUnitary(self): """ Returns ------- True : Bool This is a unitary operation. """ return True