Home > manopt > manifolds > ttfixedrank > TTeMPS_1.1 > @TTeMPS > left_orth_with_gauge.m

# left_orth_with_gauge

## PURPOSE

LEFT_ORTH_WITH_GAUGE Left orthogonalization with storage of gauge matrices

## SYNOPSIS

function [xL, G] = left_orth_with_gauge( xR )

## DESCRIPTION

``` LEFT_ORTH_WITH_GAUGE Left orthogonalization with storage of gauge matrices

Given a right orthogonal X, compute a left orthogonalization and keep
the gauge matrices that relates them.

The i-th core of xR
unfold(xR.U{i},'left')
is equal to the transformed i-th core of xL
kron(eye(n(i)),inv(G{i-1}))*unfold(xL.U{i},'left')*G{i}
(where fore i=1 and i=d, G{i} = 1).

Or, equivalently
tensorprod_ttemps( tensorprod_ttemps( xL.U{i}, G{i}', 3), inv(G{i-1}), 1)
equals
xR.U{i}.

## CROSS-REFERENCE INFORMATION

This function calls:
• orth_at ORTH_AT Orthogonalize single core.
This function is called by:

## SOURCE CODE

```0001 function [xL, G] = left_orth_with_gauge( xR )
0002 % LEFT_ORTH_WITH_GAUGE Left orthogonalization with storage of gauge matrices
0003 %
0004 % Given a right orthogonal X, compute a left orthogonalization and keep
0005 % the gauge matrices that relates them.
0006 %
0007 %  The i-th core of xR
0008 %       unfold(xR.U{i},'left')
0009 %  is equal to the transformed i-th core of xL
0010 %       kron(eye(n(i)),inv(G{i-1}))*unfold(xL.U{i},'left')*G{i}
0011 %  (where fore i=1 and i=d, G{i} = 1).
0012 %
0013 %  Or, equivalently
0014 %       tensorprod_ttemps( tensorprod_ttemps( xL.U{i}, G{i}', 3), inv(G{i-1}), 1)
0015 %  equals
0016 %       xR.U{i}.
0017 %
0019
0020 %   TTeMPS Toolbox.
0021 %   Michael Steinlechner, 2013-2016
0022 %   Questions and contact: michael.steinlechner@epfl.ch