merlin.core.generators module
Quantum circuit generation utilities.
- class merlin.core.generators.CircuitGenerator
Bases:
object
Utility class for generating quantum photonic circuits.
- static generate_circuit(circuit_type, n_modes, n_features)
Generate a quantum circuit based on specified type.
- enum merlin.core.generators.CircuitType(value)
Bases:
Enum
Quantum circuit topology types.
Valid values are as follows:
- PARALLEL_COLUMNS = <CircuitType.PARALLEL_COLUMNS: 'parallel_columns'>
- SERIES = <CircuitType.SERIES: 'series'>
- PARALLEL = <CircuitType.PARALLEL: 'parallel'>
- enum merlin.core.generators.Enum(value)
Bases:
object
Create 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
Enum
and its members have the following methods:- name
The name of the Enum member.
- value
The value of the Enum member.
- class merlin.core.generators.StateGenerator
Bases:
object
Utility class for generating photonic input states.
- static generate_state(n_modes, n_photons, state_pattern)
Generate an input state based on specified pattern.
- enum merlin.core.generators.StatePattern(value)
Bases:
Enum
Input photon state patterns.
Valid values are as follows:
- DEFAULT = <StatePattern.DEFAULT: 'default'>
- SPACED = <StatePattern.SPACED: 'spaced'>
- SEQUENTIAL = <StatePattern.SEQUENTIAL: 'sequential'>
- PERIODIC = <StatePattern.PERIODIC: 'periodic'>