function [ y_out ] = Mvmult_n_unb_var2B( A, x, y ) [ ATL, ATR, ... ABL, ABR ] = FLA_Part_2x2( A, ... 0, 0, 'FLA_TL' ); [ xT, ... xB ] = FLA_Part_2x1( x, ... 0, 'FLA_TOP' ); [ yT, ... yB ] = FLA_Part_2x1( y, ... 0, 'FLA_TOP' ); 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' ); [ x0, ... chi1, ... x2 ] = FLA_Repart_2x1_to_3x1( xT, ... xB, ... 1, 'FLA_BOTTOM' ); [ y0, ... psi1, ... y2 ] = FLA_Repart_2x1_to_3x1( yT, ... yB, ... 1, 'FLA_BOTTOM' ); %------------------------------------------------------------% y0 = laff_axpy( chi1, a01, y0 ); psi1 = laff_axpy( chi1, alpha11, psi1 ); y2 = laff_axpy( chi1, a21, y2 ); %------------------------------------------------------------% [ ATL, ATR, ... ABL, ABR ] = FLA_Cont_with_3x3_to_2x2( A00, a01, A02, ... a10t, alpha11, a12t, ... A20, a21, A22, ... 'FLA_TL' ); [ xT, ... xB ] = FLA_Cont_with_3x1_to_2x1( x0, ... chi1, ... x2, ... 'FLA_TOP' ); [ yT, ... yB ] = FLA_Cont_with_3x1_to_2x1( y0, ... psi1, ... y2, ... 'FLA_TOP' ); end y_out = [ yT yB ]; return