function [ A_out ] = Chol_blk_var2( A, nb_alg ) [ ATL, ATR, ... ABL, ABR ] = FLA_Part_2x2( A, ... 0, 0, 'FLA_TL' ); while ( size( ATL, 1 ) < size( A, 1 ) ) b = min( size( ABR, 1 ), nb_alg ); [ A00, A01, A02, ... A10, A11, A12, ... A20, A21, A22 ] = FLA_Repart_2x2_to_3x3( ATL, ATR, ... ABL, ABR, ... b, b, 'FLA_BR' ); %------------------------------------------------------------% A11 = A11 - tril( A10 * A10' ); A11 = Chol_unb_var1( A11 ); A21 = A21 - A20 * A10'; A21 = A21 * inv( tril( A11 ) )'; %------------------------------------------------------------% [ ATL, ATR, ... ABL, ABR ] = FLA_Cont_with_3x3_to_2x2( A00, A01, A02, ... A10, A11, A12, ... A20, A21, A22, ... 'FLA_TL' ); end A_out = [ ATL, ATR ABL, ABR ]; return