BosonSampling.ModeListType
ModeList(state)
ModeList(state,m)

Contrasting to ModeOccupation this list is of size n, the number of photons. Entry j is the index of the mode occupied by photon j.

This can also be used just to select modes for instance.

See also ModeOccupation.

fields:
    - n::Int
    - m::Union{Int, Nothing}
    - modes::Vector{Int}
source
BosonSampling.ModeOccupationType
ModeOccupation(state)

A list of the size of the number of modes m, with entry j of state being the number of photons in mode j. See also ModeList.

fields:
     - n::Int
     - m::Int
     - state::Vector{Int}
source
BosonSampling.PartitionOccupancyType
PartitionOccupancy(counts::ModeOccupation, n::Int, partition::Partition)

Fields: - counts::ModeOccupation - partition::Partition - n::Int - m::Int

source
BosonSampling.SubsetType
Subset(state::Vector{Int})

Create a mode occupation list with at most one count per mode.

Fields:
     - n::Int
     - m::Int
     - subset::Vector{Int}
source
BosonSampling.equilibrated_partition_vectorMethod
equilibrated_partition_vector(m,n_subsets)

Returns a (most) equilibrated partition possible by euclidian division.

(a problem is that euclidian distribution may give nsubsets or nsubsets+1 if not done like below - here it is the most obvious thing I could think of to get a somewhat equilibrated partition with a constant number of subsets)

source