BQUInt#
qualtran.BQUInt
View source on GitHub
|
Unsigned integer whose values are bounded within a range.
Inherits From: QDType, QCDType
qualtran.BQUInt(
bitsize, iteration_length=NOTHING
)
LCU methods often make use of coherent for-loops via UnaryIteration, iterating over a range
of values stored as a superposition over the SELECT register. Such (nested) coherent
for-loops can be represented using a Tuple[Register(dtype=BQUInt), ...] where the i’th entry stores the bitsize and iteration length of i’th
nested for-loop.
One useful feature when processing such nested for-loops is to flatten out a composite index,
represented by a tuple of indices (i, j, …), one for each selection register into a single
integer that can be used to index a flat target register. An example of such a mapping
function is described in Eq.45 of https://arxiv.org/abs/1805.03662. A general version of this
mapping function can be implemented using numpy.ravel_multi_index and numpy.unravel_index.
For example
Attributes
bitsizeThe number of qubits used to represent the integer.
iteration_lengthThe length of the iteration range.
num_bitsnum_cbitsNumber of classical bits required to represent a single instance of this data type.
num_qubitsNumber of qubits required to represent a single instance of this data type.
Methods#
is_symbolic
is_symbolic() -> bool
Returns True if this dtype is parameterized with symbolic objects.
get_classical_domain
get_classical_domain() -> Iterable[Any]
Yields all possible classical (computational basis state) values representable by this type.
assert_valid_classical_val
assert_valid_classical_val(
val: int, debug_str: str = 'val'
)
Raises an exception if val is not a valid classical value for this type.
Args
valA classical value that should be in the domain of this QDType.
debug_strOptional debugging information to use in exception messages.
to_bits
to_bits(
x: int
) -> List[int]
Yields individual bits corresponding to binary representation of x
from_bits
from_bits(
bits: Sequence[int]
) -> int
Combine individual bits to form x
assert_valid_classical_val_array
assert_valid_classical_val_array(
val_array: NDArray[np.integer], debug_str: str = 'val'
)
Raises an exception if val_array is not a valid array of classical values for this type.
Often, validation on an array can be performed faster than validating each element individually.
Args
val_arrayA numpy array of classical values. Each value should be in the domain of this QDType.
debug_strOptional debugging information to use in exception messages.
__ne__
__ne__(
other
)
Check equality and either forward a NotImplemented or return the result negated.
__eq__
__eq__(
other
)
Method generated by attrs for class BQUInt.
View source on GitHub