qat.lang.AQASM.qbool.QBool
- class qat.lang.AQASM.qbool.QBool(index, scope=None)
Class for quantum boolean type.
This class is not designed to be instantiated by hand, but rather via the .qalloc method of the
Program
class or the .new_wires method of theQRoutine
class.Moreover, since allocation happens at the register level, the
QBoolArray
class should be used.from qat.lang.AQASM.qbool import QBoolArray from qat.lang.AQASM import QRoutine rout = QRoutine() qbool_array = rout.new_wires(2, QBoolArray) print(type(qbool_array)) print(type(qbool_array[0]))
<class 'qat.lang.AQASM.qbool.QBoolArray'> <class 'qat.lang.AQASM.qbool.QBool'>
See documentation of the
QClause
class for more information.- Parameters
Instance attributes:
- cast(val)
Cast an integer value as a boolean.
This method is used when casting execution samples to proper python values.
- Parameters
val (int) – some integer
- Returns
a boolean value
- Return type
bool
- cast_to(cls, **kwargs)
Cast the register to another type.
- Parameters
cls (type) – another quantum type class
- Returns
some object constructed via cls
- Return type
object
For instance, the following piece of code casts a quantum boolean to a quantum integer:
from qat.lang.AQASM.qbool import QBoolArray from qat.lang.AQASM.qint import QInt from qat.lang.AQASM import QRoutine rout = QRoutine() array = rout.new_wires(2, QBoolArray) qbool = array[0] qint = qbool.cast_to(QInt)
- evaluate(output=None)
Evaluate the QBool as an expression. Since QBools are trivial expression, this simply returns self and the output argument is ignored (it is here simply for compatibility with more complicated expressions).
- phase()
Flips the phase of the state if and only if the QBool is set to True. Effectively applies a \(Z\) gate on self.
- qbits_list()
Returns the list of underlying qubits (i.e [self])