BosonSampling.bosonic_amplitudeFunction
bosonic_amplitude(U, input_state, output_state, permanent=ryser)
process_amplitude(U, input_state, output_state, permanent=ryser)

Compute the probability amplitude to go from input_state to output_state through the interferomter U in the Bosonic case.

source
BosonSampling.bosonic_probabilityMethod
bosonic_probability(U, input_state, output_state)
process_probability(U, input_state, output_state)

Compute the probability to go from input_state to output_state through the interferometer U in the Bosonic case.

source
BosonSampling.compute_probability!Method
compute_probability(ev::Event{TIn, TOut}) where {TIn<:InputType, TOut<:FockDetection}

Given an Event, gives the probability to get the outcome TOut when TIn passes though the interferometer ev.interferometer.

source
BosonSampling.distinguishable_probabilityFunction
distinguishable_probability(U, input_state, output_state, permanent=ryser)
process_probability_distinguishable(U, input_state, output_state, permanent=ryser)

Compute the probability to go from input_state to output_state through the interferomter U in the Distinguishable case.

source
BosonSampling.fill_arrangementMethod
fill_arrangement(occupation_vector)
fill_arrangement(r::ModeOccupation)
fill_arrangement(input::Input)

Convert a mode occupation list to a mode assignement.

source
BosonSampling.scattering_matrixMethod
scattering_matrix(U::Matrix, input_state::Vector{Int}, output_state::Vector{Int})
scattering_matrix(U::Interferometer, r::ModeOccupation, s::ModeOccupation)
scattering_matrix(U::Interferometer, i::Input, o::FockDetection)

Return the submatrix of U whose rows and columns are respectively defined by input_state and output_state.

source