GAUGE_MATRICES Right and left orthogonalization with storage of gauge matrices [xL,xR,G] = GAUGE_MATRICES(x) Compute a left and right 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}. See also LEFT_ORTH_WITH_GAUGE
0001 function [xL, xR, G] = gauge_matrices( x ) 0002 % GAUGE_MATRICES Right and left orthogonalization with storage of gauge matrices 0003 % 0004 % [xL,xR,G] = GAUGE_MATRICES(x) Compute a left and right orthogonalization and 0005 % keep 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 % 0018 % See also LEFT_ORTH_WITH_GAUGE 0019 0020 % TTeMPS Toolbox. 0021 % Michael Steinlechner, 2013-2016 0022 % Questions and contact: michael.steinlechner@epfl.ch 0023 % BSD 2-clause license, see LICENSE.txt 0024 0025 xR = orthogonalize( x, 1 ); 0026 0027 [xL, G] = left_orth_with_gauge( xR ); 0028 0029 end