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.