sf.decompositions.rectangular¶
-
rectangular
(V, tol=1e-11)[source]¶ Rectangular decomposition of a unitary matrix, with local phase shifts applied between two interferometers.
See Rectangular decomposition or [23] for more details.
This function returns a circuit corresponding to an intermediate step in the decomposition as described in Eq. 4 of the article. In this form, the circuit comprises some T matrices (as in Eq. 1), then phases on all modes, and more T matrices.
The procedure to construct these matrices is detailed in the supplementary material of the article.
- Parameters
V (array[complex]) – unitary matrix of size n_size
tol (float) – the tolerance used when checking if the matrix is unitary: \(|VV^\dagger-I| \leq\) tol
- Returns
- tuple of the form
(tilist,np.diag(localV),tlist)
where:
tilist
: list containing[n,m,theta,phi,n_size]
of the Ti unitaries neededtlist
: list containing[n,m,theta,phi,n_size]
of the T unitaries neededlocalV
: Diagonal unitary sitting sandwiched by Ti’s and the T’s
- tuple of the form
- Return type
tuple[array]