Skip to main content
IBM Quantum Platform

Z2Register

class samplomatic.virtual_registers.Z2Register(virtual_gates)

GitHub

Bases: GroupRegister

Virtual register of elements of Z2, the cyclic group of order 2.

Z2 is a group that contains two elements, which can be represented by 00 and 11. We define the group product as the bit-wise XOR operation, such that the cyclic properties 0∗0=1∗1=00 * 0 = 1 * 1 = 0 and 0∗1=0∗1=10 * 1 = 0 * 1 = 1 are satisfied.

Attributes Summary

Column 1
Column 2
CONVERTABLE_TYPESValid arguments for convert_to().
GATE_SHAPEThe array shape of any single virtual gate.
SUBSYSTEM_SIZEThe number of qubits each virtual gate acts on.
TYPEThe group name in 1-1 correspondence with this virtual gate type.

Methods Summary

Column 1
Column 2
convert_to(register_type)Convert this register type to some other type, if possible.
identity(num_subsystems, num_samples)Instantiate a new register of identity virtual gates.
inplace_multiply(other[, subsystem_idxs])Inplace-multiply each virtual gate with the corresponding element of other.
invert()Return a new virtual register that inverts each virtual gate.
multiply(other[, subsystem_idxs])Multiply each virtual gate with the corresponding element of other.

Attributes Documentation

CONVERTABLE_TYPES

Type: frozenset[VirtualType]

Default value: frozenset({VirtualType.PAULI, VirtualType.Z2})

Valid arguments for convert_to().

GATE_SHAPE

Type: tuple[int, ...]

Default value: ()

The array shape of any single virtual gate.

SUBSYSTEM_SIZE

Type: int

Default value: 1

The number of qubits each virtual gate acts on.

TYPE

Type: VirtualType

Default value: 'z2'

The group name in 1-1 correspondence with this virtual gate type.

Methods Documentation

convert_to

convert_to(register_type)

GitHub

Convert this register type to some other type, if possible.

Parameters

register_type – The type of register to convert to.

Returns

A new register of the specified output type, or this instance if its type is register_type.

Raises

VirtualGateError – If this type cannot be converted to the specified type.

identity

classmethod identity(num_subsystems, num_samples)

GitHub

Instantiate a new register of identity virtual gates.

inplace_multiply

inplace_multiply(other, subsystem_idxs: list[int] | slice = slice(None, None, None))

GitHub

Inplace-multiply each virtual gate with the corresponding element of other.

Parameters

  • other – Another virtual register of the same type.
  • subsystem_idxs – The indices of the subsystems to multiply, in self.

Raises

VirtualGateError – When the shapes do not match.

invert

invert()

GitHub

Return a new virtual register that inverts each virtual gate.

multiply

multiply(other, subsystem_idxs: list[int] | slice = slice(None, None, None))

GitHub

Multiply each virtual gate with the corresponding element of other.

Parameters

  • other – Another virtual register of the same type.
  • subsystem_idxs – The indices of the subsystems to multiply, in self.

Returns

A new virtual register of the same type.

Raises

VirtualGateError – When the shapes do not match.

Was this page helpful?
Report a bug, typo, or request content on GitHub.