ansatz#

Ansatze: various photonic quantum circuits

Classes

Clements(nmode, init_state[, cutoff, basis, ...])

Clements circuit.

GaussianBosonSampling(nmode, squeezing, unitary)

Gaussian Boson Sampling circuit.

GraphGBS(adj_mat[, cutoff, mean_photon_num, ...])

Simulate Gaussian Boson Sampling for graph problems.

class Clements(nmode: int, init_state: Any, cutoff: int | None = None, basis: bool = True, phi_first: bool = True, noise: bool = False, mu: float = 0, sigma: float = 0.1)[source]#

Bases: QumodeCircuit

Clements circuit.

dict2data(angle_dict: dict, dtype=torch.float32) Tensor[source]#

Convert the dictionary of angles to the input data for the circuit.

class GaussianBosonSampling(nmode: int, squeezing: Any, unitary: Any, cutoff: int | None = None, backend: str = 'gaussian', basis: bool = True, detector: str = 'pnrd', noise: bool = False, mu: float = 0, sigma: float = 0.1)[source]#

Bases: QumodeCircuit

Gaussian Boson Sampling circuit.

class GraphGBS(adj_mat: Any, cutoff: int | None = None, mean_photon_num: int | None = None, detector: str = 'pnrd', noise: bool = False, mu: float = 0, sigma: float = 0.1)[source]#

Bases: GaussianBosonSampling

Simulate Gaussian Boson Sampling for graph problems.

static graph_density(graph: Graph, samples: dict) dict[source]#

Get all subgraph densities.

static norm_factor_c(n_num, lambd, trials=20)[source]#

Get the normalization factor c of squeezing parameters for given total mean photon numbers.

static postselect(samples: dict, nodes_list: list) list[source]#

Postselect the results with the fixed node subgraph.