merlin.core.state module
Photon input-state helpers.
This module intentionally stays lightweight and avoids classes that only expose static methods.
- enum merlin.core.state.Enum(value)
Bases:
objectCreate a collection of name/value pairs.
Example enumeration:
>>> class Color(Enum): ... RED = 1 ... BLUE = 2 ... GREEN = 3
Access them by:
attribute access:
>>> Color.RED <Color.RED: 1>
value lookup:
>>> Color(1) <Color.RED: 1>
name lookup:
>>> Color['RED'] <Color.RED: 1>
Enumerations can be iterated over, and know how many members they have:
>>> len(Color) 3
>>> list(Color) [<Color.RED: 1>, <Color.BLUE: 2>, <Color.GREEN: 3>]
Methods can be added to enumerations, and members can have their own attributes – see the documentation for details.
The
Enumand its members have the following methods:- name
The name of the Enum member.
- value
The value of the Enum member.
- enum merlin.core.state.StatePattern(value)
Bases:
str,EnumInput photon state patterns.
- Member Type:
str
Valid values are as follows:
- DEFAULT = <StatePattern.DEFAULT: 'default'>
- SPACED = <StatePattern.SPACED: 'spaced'>
- SEQUENTIAL = <StatePattern.SEQUENTIAL: 'sequential'>
- PERIODIC = <StatePattern.PERIODIC: 'periodic'>
- merlin.core.state.generate_state(n_modes, n_photons, state_pattern=StatePattern.DEFAULT)
Generate a Perceval Fock input state as a
BasicState.- Return type:
BasicState
- Args:
n_modes: Number of photonic modes. n_photons: Total number of photons. state_pattern: Placement strategy for the photons.
- Returns:
A
perceval.BasicStateinstance.- Raises:
ValueError: If the inputs are inconsistent or the pattern is unknown.