function [ L_out ] = Trinv_blk_var2( L, nb_alg )

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

  while ( size( LTL, 1 ) < size( L, 1 ) )

    b = min( size( LBR, 1 ), nb_alg );

    [ L00, L01, L02, ...
      L10, L11, L12, ...
      L20, L21, L22 ] = FLA_Repart_2x2_to_3x3( LTL, LTR, ...
                                               LBL, LBR, ...
                                               b, b, 'FLA_BR' );

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

        L11 = Trinv_l_unb_var2(L11);
        L21 = Trsm_lln_unb_var2(L21,L22);
        L21 = -L21;
        L20 = L20 - L21*L10;
        L10 = L10*L00;

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

    [ LTL, LTR, ...
      LBL, LBR ] = FLA_Cont_with_3x3_to_2x2( L00, L01, L02, ...
                                             L10, L11, L12, ...
                                             L20, L21, L22, ...
                                             'FLA_TL' );

  end

  L_out = [ LTL, LTR
            LBL, LBR ];

return

LinearAlgebraWiki: Trinv/FLAME@lab/BlkVar2 (last edited 2008-08-06 20:26:22 by MarthaGanser)