# Register `qualtran.Register` A register serves as the input/output quantum data specifications in a bloq's `Signature`. Each register has a name and a quantum data type. A collection of `Register` objects are used to define a bloq's signature, see the `Signature` class. `name` : The string name of the register. This name is used to 'wire up' quantum inputs by name, analogous to Python's keyword-arguments. `dtype` : The quantum data type of the register, for example `QBit()`, `QUInt(n)`, `QAny(n)`, or any of the data types provided in the top-level qualtran namespace. `shape` : An optional tuple of integer dimensions to declare a multidimensional register. The total number of bits is the product of entries in this tuple times `bitsize`. `side` : Whether this is a left, right, or thru register. See the documentation for `Side` for more information. `bitsize` :   `shape_symbolic` :   ## Methods

is_symbolic

View source

all_idxs

View source Iterate over all possible indices of a multidimensional register.

total_bits

View source The total number of bits in this register. This is the product of bitsize and each of the dimensions in `shape`.

total_qubits

View source The total number of qubits in this register. This is the product of the register's data type's number of qubits and each of the dimensions in `shape`.

total_cbits

View source The total number of classical bits in this register. This is the product of the register's data type's number of classical bits and each of the dimensions in `shape`.

adjoint

View source Return the 'adjoint' of this register by switching RIGHT and LEFT registers.

__ne__

Check equality and either forward a NotImplemented or return the result negated.

__eq__

Method generated by attrs for class Register.