polar
full name: tenpy.linalg.np_conserved.polar
parent module:
tenpy.linalg.np_conserved
type: function
- tenpy.linalg.np_conserved.polar(a, cutoff=1e-16, left=False, inner_labels=[None, None])[source]
Polar decomposition of an Array a.
Factorizes
u * p = a
(left=False) orp * u = a
(left=True), such thata = U*diag(S)*VH
(where*
stands for atensordot()
and diag creates an correctly shaped Array with S on the diagonal). For a non-zero cutoff this holds only approximately.There is a gauge freedom regarding the charges, see also
Array.gauge_total_charge()
. We ensure contractibility by settingU.legs[1] = VH.legs[0].conj()
. Further, we gauge the LegCharge such that U and V have the desired qtotal_LR.