BosonSampling.Partition
— TypePartition(subsets::Vector{Subset})
Create a partition from multiple Subset
.
BosonSampling.PartitionOccupancy
— TypePartitionOccupancy(counts::ModeOccupation, n::Int, partition::Partition)
Fields: - counts::ModeOccupation - partition::Partition - n::Int - m::Int
BosonSampling.Subset
— TypeSubset(state::Vector{Int})
Create a mode occupation list with at most one count per mode.
Fields:
- n::Int
- m::Int
- subset::Vector{Int}
BosonSampling.equilibrated_partition
— Methodequilibrated_partition(m,n_subsets)
Returns a most equilibratedpartition according to the principles of [`equilibratedpartition_vector`](@ref).
BosonSampling.equilibrated_partition_vector
— Methodequilibrated_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)
BosonSampling.occupies_all_modes
— Methodoccupies_all_modes(part::Partition)
Check wether a partition occupies all modes or not.
BosonSampling.partition_from_subset_lengths
— Methodpartition_from_subset_lengths(subset_lengths)
Return a partition from a vector of subset lengths.