MatchCake

matchcake.circuits package

Submodules

matchcake.circuits.random_generator module

class matchcake.circuits.random_generator.RandomOperationsGenerator(wires: Sequence[int] | int, n_ops: int | None = None, batch_size: int | None = None, op_types: Sequence[Type[Any]] = (), *, use_cuda: bool = False, seed: int | None = None, output_type: str | None = None, observable: Any | None = None, output_wires: Sequence[int] | None = None, initial_state: Sequence[int] | ndarray | None = None, **kwargs)

Bases: object

__init__(wires: Sequence[int] | int, n_ops: int | None = None, batch_size: int | None = None, op_types: Sequence[Type[Any]] = (), *, use_cuda: bool = False, seed: int | None = None, output_type: str | None = None, observable: Any | None = None, output_wires: Sequence[int] | None = None, initial_state: Sequence[int] | ndarray | None = None, **kwargs)
circuit()
get_initial_state(rn_gen: Generator)
get_ops()
get_output_op()
property n_qubits
property n_wires
property output_kwargs
tolist()

matchcake.circuits.random_matchgate_circuits module

class matchcake.circuits.random_matchgate_circuits.RandomMatchgateHaarOperationsGenerator(wires: Sequence[int] | int, n_ops: int | None = None, batch_size: int | None = None, *, use_cuda: bool = False, seed: int | None = None, add_swap_noise: bool = True, initial_state: Sequence[int] | ndarray | None = None, **kwargs)

Bases: RandomMatchgateOperationsGenerator

__init__(wires: Sequence[int] | int, n_ops: int | None = None, batch_size: int | None = None, *, use_cuda: bool = False, seed: int | None = None, add_swap_noise: bool = True, initial_state: Sequence[int] | ndarray | None = None, **kwargs)
haar_circuit_gen()
class matchcake.circuits.random_matchgate_circuits.RandomMatchgateOperationsGenerator(wires: ~typing.Sequence[int] | int, n_ops: int | None = None, batch_size: int | None = None, op_types: ~typing.List[~typing.Type[~matchcake.operations.matchgate_operation.MatchgateOperation]] = (<class 'matchcake.operations.matchgate_operation.MatchgateOperation'>, <class 'matchcake.operations.fermionic_rotations.FermionicRotationXX'>, <class 'matchcake.operations.fermionic_swap.FermionicSWAP'>, <class 'matchcake.operations.fermionic_rotations.FermionicRotationZZ'>, <class 'matchcake.operations.fermionic_hadamard.FermionicHadamard'>, <class 'matchcake.operations.fermionic_rotations.FermionicRotationYY'>, <class 'matchcake.operations.fermionic_superposition.FermionicSuperposition'>), *, use_cuda: bool = False, seed: int | None = None, output_type: str | None = None, observable: ~typing.Any | None = None, output_wires: ~typing.Sequence[int] | None = None, initial_state: ~typing.Sequence[int] | ~numpy.ndarray | None = None, **kwargs)

Bases: RandomOperationsGenerator

__init__(wires: ~typing.Sequence[int] | int, n_ops: int | None = None, batch_size: int | None = None, op_types: ~typing.List[~typing.Type[~matchcake.operations.matchgate_operation.MatchgateOperation]] = (<class 'matchcake.operations.matchgate_operation.MatchgateOperation'>, <class 'matchcake.operations.fermionic_rotations.FermionicRotationXX'>, <class 'matchcake.operations.fermionic_swap.FermionicSWAP'>, <class 'matchcake.operations.fermionic_rotations.FermionicRotationZZ'>, <class 'matchcake.operations.fermionic_hadamard.FermionicHadamard'>, <class 'matchcake.operations.fermionic_rotations.FermionicRotationYY'>, <class 'matchcake.operations.fermionic_superposition.FermionicSuperposition'>), *, use_cuda: bool = False, seed: int | None = None, output_type: str | None = None, observable: ~typing.Any | None = None, output_wires: ~typing.Sequence[int] | None = None, initial_state: ~typing.Sequence[int] | ~numpy.ndarray | None = None, **kwargs)

matchcake.circuits.random_parametrize_circuit_generator module

class matchcake.circuits.random_parametrize_circuit_generator.RandomParametrizeGenerator(wires: Sequence[int] | int, n_ops: int | None = None, batch_size: int | None = None, op_types: Sequence[Type[Any]] = (), *, use_cuda: bool = False, seed: int | None = None, output_type: str | None = None, observable: Any | None = None, output_wires: Sequence[int] | None = None, initial_state: Sequence[int] | ndarray | None = None, **kwargs)

Bases: RandomOperationsGenerator

matchcake.circuits.random_sptm_circuits module

class matchcake.circuits.random_sptm_circuits.RandomSptmHaarOperationsGenerator(wires: Sequence[int] | int, n_ops: int | None = None, batch_size: int | None = None, *, use_cuda: bool = False, seed: int | None = None, add_swap_noise: bool = True, initial_state: Sequence[int] | ndarray | None = None, **kwargs)

Bases: RandomSptmOperationsGenerator

__init__(wires: Sequence[int] | int, n_ops: int | None = None, batch_size: int | None = None, *, use_cuda: bool = False, seed: int | None = None, add_swap_noise: bool = True, initial_state: Sequence[int] | ndarray | None = None, **kwargs)
haar_circuit_gen()
class matchcake.circuits.random_sptm_circuits.RandomSptmOperationsGenerator(wires: ~typing.Sequence[int] | int, n_ops: int | None = None, batch_size: int | None = None, op_types: ~typing.List[~typing.Type[~matchcake.operations.single_particle_transition_matrices.single_particle_transition_matrix.SingleParticleTransitionMatrixOperation]] = (<class 'matchcake.operations.single_particle_transition_matrices.sptm_f_rxrx.SptmfRxRx'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_fswap.SptmFSwap'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_rzrz.SptmRzRz'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_identity.SptmIdentity'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_fhh.SptmFHH'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_ryry.SptmRyRy'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_fermionic_superposition.SptmFermionicSuperposition'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_fswap_rzrz.SptmFSwapRzRz'>), *, use_cuda: bool = False, seed: int | None = None, output_type: str | None = None, observable: ~typing.Any | None = None, output_wires: ~typing.Sequence[int] | None = None, initial_state: ~typing.Sequence[int] | ~numpy.ndarray | None = None, **kwargs)

Bases: RandomOperationsGenerator

__init__(wires: ~typing.Sequence[int] | int, n_ops: int | None = None, batch_size: int | None = None, op_types: ~typing.List[~typing.Type[~matchcake.operations.single_particle_transition_matrices.single_particle_transition_matrix.SingleParticleTransitionMatrixOperation]] = (<class 'matchcake.operations.single_particle_transition_matrices.sptm_f_rxrx.SptmfRxRx'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_fswap.SptmFSwap'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_rzrz.SptmRzRz'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_identity.SptmIdentity'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_fhh.SptmFHH'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_ryry.SptmRyRy'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_fermionic_superposition.SptmFermionicSuperposition'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_fswap_rzrz.SptmFSwapRzRz'>), *, use_cuda: bool = False, seed: int | None = None, output_type: str | None = None, observable: ~typing.Any | None = None, output_wires: ~typing.Sequence[int] | None = None, initial_state: ~typing.Sequence[int] | ~numpy.ndarray | None = None, **kwargs)
matchcake.circuits.random_sptm_circuits.random_sptm_operations_generator(n_ops: int, wires: ~typing.Sequence[int] | int, batch_size: int | None = None, op_types: ~typing.List[~typing.Type[~matchcake.operations.single_particle_transition_matrices.single_particle_transition_matrix.SingleParticleTransitionMatrixOperation]] = (<class 'matchcake.operations.single_particle_transition_matrices.sptm_f_rxrx.SptmfRxRx'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_fswap.SptmFSwap'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_rzrz.SptmRzRz'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_identity.SptmIdentity'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_fhh.SptmFHH'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_ryry.SptmRyRy'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_fermionic_superposition.SptmFermionicSuperposition'>, <class 'matchcake.operations.single_particle_transition_matrices.sptm_fswap_rzrz.SptmFSwapRzRz'>), *, use_cuda: bool = False, seed: int | None = None, **kwargs)

Module contents