function [ A_out ] = InvLAInvLH_unb_var5( A, L, Y )

  [ ATL, ATR, ...
    ABL, ABR ] = FLA_Part_2x2( A, ...
                               0, 0, 'FLA_TL' );

  [ LTL, LTR, ...
    LBL, LBR ] = FLA_Part_2x2( L, ...
                               0, 0, 'FLA_TL' );

  [ YTL, YTR, ...
    YBL, YBR ] = FLA_Part_2x2( Y, ...
                               0, 0, 'FLA_TL' );

  while ( size( ATL, 1 ) < size( A, 1 ) )

    [ A00,  a01,     A02,  ...
      a10t, alpha11, a12t, ...
      A20,  a21,     A22 ] = FLA_Repart_2x2_to_3x3( ATL, ATR, ...
                                                    ABL, ABR, ...
                                                    1, 1, 'FLA_BR' );

    [ L00,  l01,      L02,  ...
      l10t, lambda11, l12t, ...
      L20,  l21,      L22 ] = FLA_Repart_2x2_to_3x3( LTL, LTR, ...
                                                     LBL, LBR, ...
                                                     1, 1, 'FLA_BR' );

    [ Y00,  y01,   Y02,  ...
      y10t, psi11, y12t, ...
      Y20,  y21,   Y22 ] = FLA_Repart_2x2_to_3x3( YTL, YTR, ...
                                                  YBL, YBR, ...
                                                  1, 1, 'FLA_BR' );

    %------------------------------------------------------------%

    alpha11 = alpha11 / ( lambda11' * lambda11 );
    y21 = alpha11 * l21;                           % SCAL
    a21 = a21 / lambda11';                         % SCAL
    a21 = a21 - 0.5 * y21;
    A22 = A22 - tril( l21 * a21' + a21 * l21' );   % SYR2
    a21 = a21 - 0.5 * y21;
    a21 = inv( tril( L22 ) ) * a21;                % TRSV

    %------------------------------------------------------------%

    [ ATL, ATR, ...
      ABL, ABR ] = FLA_Cont_with_3x3_to_2x2( A00,  a01,     A02,  ...
                                             a10t, alpha11, a12t, ...
                                             A20,  a21,     A22, ...
                                             'FLA_TL' );

    [ LTL, LTR, ...
      LBL, LBR ] = FLA_Cont_with_3x3_to_2x2( L00,  l01,      L02,  ...
                                             l10t, lambda11, l12t, ...
                                             L20,  l21,      L22, ...
                                             'FLA_TL' );

    [ YTL, YTR, ...
      YBL, YBR ] = FLA_Cont_with_3x3_to_2x2( Y00,  y01,   Y02,  ...
                                             y10t, psi11, y12t, ...
                                             Y20,  y21,   Y22, ...
                                             'FLA_TL' );

  end

  A_out = [ ATL, ATR
            ABL, ABR ];

return
