mm.lab_dev.transformations.Unitary

class mrmustard.lab_dev.transformations.Unitary(name=None, modes=())[source]

Bases: Transformation

Base class for all unitary transformations.

Parameters:
  • name (Optional[str]) – The name of this transformation.

  • modes (tuple[int, ...]) – The modes that this transformation acts on.

adjoint

The AdjointView of this component.

dual

The DualView of this component.

modes

The sorted list of modes of this component.

n_modes

The number of modes in this component.

name

The name of this component.

parameter_set

The set of parameters characterizing this component.

representation

A representation of this circuit component.

wires

The wires of this component.

adjoint

The AdjointView of this component.

dual

The DualView of this component.

modes

The sorted list of modes of this component.

n_modes

The number of modes in this component.

name

The name of this component.

parameter_set

The set of parameters characterizing this component.

representation

A representation of this circuit component.

wires

The wires of this component.

light_copy()

Creates a copy of this component by copying every data stored in memory for it by reference, except for its wires, which are copied by value.

on(modes)

Creates a copy of this component that acts on the given modes instead of on the original modes.

to_fock_component([shape])

Returns a circuit component with the same attributes as this component, but with Fock representation.

light_copy()

Creates a copy of this component by copying every data stored in memory for it by reference, except for its wires, which are copied by value.

Return type:

CircuitComponent

on(modes)

Creates a copy of this component that acts on the given modes instead of on the original modes.

Parameters:

modes (Sequence[int]) – The new modes that this component acts on.

Return type:

CircuitComponent

Returns:

The component acting on the specified modes.

Raises:

ValueError – If modes contains more or less modes than the original component.

to_fock_component(shape=None)

Returns a circuit component with the same attributes as this component, but with Fock representation.

Uses the mrmustard.physics.converters.to_fock() method to convert the internal representation.

>>> from mrmustard.physics.converters import to_fock
>>> from mrmustard.lab_dev import Dgate

>>> d = Dgate([1], x=0.1, y=0.1)
>>> d_fock = d.to_fock_component(shape=3)

>>> assert d_fock.name == d.name
>>> assert d_fock.wires == d.wires
>>> assert d_fock.representation == to_fock(d.representation, shape=3)
Parameters:

shape (Union[int, Iterable[int], None]) – The shape of the returned representation. If shape``is given as an ``int, it is broadcasted to all the dimensions. If None, it defaults to the value of AUTOCUTOFF_MAX_CUTOFF in the settings.

Return type:

CircuitComponent