mm.lab_dev.circuit_components.CircuitComponent

class mrmustard.lab_dev.circuit_components.CircuitComponent(name=None, representation=None, modes_out_bra=None, modes_in_bra=None, modes_out_ket=None, modes_in_ket=None)[source]

Bases: object

A base class for the components (states, transformations, and measurements, or potentially unphysical ``wired’’ objects) that can be placed in Mr Mustard’s quantum circuits.

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

  • representation (Union[Bargmann, Fock, None]) – A representation for this circuit component.

  • modes_out_bra (Optional[Sequence[int]]) – The output modes on the bra side of this component.

  • modes_in_bra (Optional[Sequence[int]]) – The input modes on the bra side of this component.

  • modes_out_ket (Optional[Sequence[int]]) – The output modes on the ket side of this component.

  • modes_in_ket (Optional[Sequence[int]]) – The input modes on the ket side 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.

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()[source]

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)[source]

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)[source]

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