BosonSampling.violates_bapat_sunder
— Functionviolates_bapat_sunder(A,B, tol = ATOL)
Checks if matrices A
and B
violate the Bapat-Sunder conjecture, see Boson bunching is not maximized by indistinguishable particles
BosonSampling.add_columns_to_make_square_unitary
— Methodadd_columns_to_make_square_unitary(M_dagger)
Makes a square matrix U
of which the first columns are M_dagger
, which has to be unitary by itself by a random choice of vectors that are then orthonormalized.
BosonSampling.cholesky_semi_definite_positive
— Methodcholesky_semi_definite_positive(A)
cholesky decomposition (A
= R' * R) for a sdp but not strictly positive definite matrix
BosonSampling.incorporate_in_a_unitary
— Methodincorporate_in_a_unitary(X)
incorporates the renormalized matrix X in a double sized unitary through the proof of Lemma 29 of Aaronson Arkipov seminal The Computational Complexity of Linear Optics
BosonSampling.incorporate_in_a_unitary_non_square
— Methodincorporate_in_a_unitary_non_square(X)
same as incorporate_in_a_unitary
but for a matrix renormalized X
of type (m,n) with m >= n generates a minimally sized unitary (ex 99 interferometer for the 72 M' of the first counter example of drury)
BosonSampling.random_search_counter_example_bapat_sunder
— Methodrandom_search_counter_example_bapat_sunder(;m,n,r, physical_H = true)
Brute-force search of counter-examples of rank r
.
BosonSampling.search_until_user_stop
— Methodsearch_until_user_stop(search_function)
Runs search_function
until user-stop (Ctrl+C).
BosonSampling.J_array
— MethodJ_array(theta, n)
returns the J
as defined in in Eq.10 of Universality of Generalized Bunching and Efficient Assessment of Boson Sampling, with the permutations coming in the order given by permutations(collect(1:n))
BosonSampling.density_matrix_from_J
— Methoddensity_matrix_from_J(J,n)
density matrix associated to a J function as defined in Universality of Generalized Bunching and Efficient Assessment of Boson Sampling, computed through Eq. 46.
BosonSampling.schur_matrix
— Methodschur_matrix(H)
computes the Schur matrix as defined in Eq. 1 of Linear Algebra and its Applications 490 (2016) 196–201