Functions | |
FLA_Error | FLA_LQ_UT_recover_tau_submatrix (FLA_Obj T, FLA_Obj tau) |
FLA_Error | FLA_LQ_UT_recover_tau (FLA_Obj T, FLA_Obj t) |
void FLA_F2C() | fla_lq_ut_recover_tau_f (F_INT *T, F_INT *tau, F_INT *IERROR) |
References FLA_Check_error_level(), FLA_Cont_with_3x1_to_2x1(), FLA_LQ_UT_recover_tau_check(), FLA_LQ_UT_recover_tau_submatrix(), FLA_Obj_length(), FLA_Obj_width(), FLA_Part_2x1(), and FLA_Repart_2x1_to_3x1().
Referenced by fla_lq_ut_recover_tau_f().
00038 { 00039 FLA_Obj TT, T0, 00040 TB, T1, 00041 T2; 00042 00043 FLA_Obj tT, t0, 00044 tB, t1, 00045 t2; 00046 00047 dim_t b; 00048 dim_t b_alg; 00049 00050 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING ) 00051 FLA_LQ_UT_recover_tau_check( T, t ); 00052 00053 b_alg = FLA_Obj_width( T ); 00054 00055 FLA_Part_2x1( T, &TT, 00056 &TB, 0, FLA_TOP ); 00057 00058 FLA_Part_2x1( t, &tT, 00059 &tB, 0, FLA_TOP ); 00060 00061 while ( FLA_Obj_length( TT ) < FLA_Obj_length( T ) ){ 00062 00063 b = min( FLA_Obj_length( TB ), b_alg ); 00064 00065 FLA_Repart_2x1_to_3x1( TT, &T0, 00066 /* ** */ /* ** */ 00067 &T1, 00068 TB, &T2, b, FLA_BOTTOM ); 00069 00070 FLA_Repart_2x1_to_3x1( tT, &t0, 00071 /* ** */ /* ** */ 00072 &t1, 00073 tB, &t2, b, FLA_BOTTOM ); 00074 00075 /*------------------------------------------------------------*/ 00076 00077 FLA_LQ_UT_recover_tau_submatrix( T1, t1 ); 00078 00079 /*------------------------------------------------------------*/ 00080 00081 FLA_Cont_with_3x1_to_2x1( &TT, T0, 00082 T1, 00083 /* ** */ /* ** */ 00084 &TB, T2, FLA_TOP ); 00085 00086 FLA_Cont_with_3x1_to_2x1( &tT, t0, 00087 t1, 00088 /* ** */ /* ** */ 00089 &tB, t2, FLA_TOP ); 00090 } 00091 00092 return FLA_SUCCESS; 00093 }
void FLA_F2C() fla_lq_ut_recover_tau_f | ( | F_INT * | T, | |
F_INT * | tau, | |||
F_INT * | IERROR | |||
) |
References FLA_LQ_UT_recover_tau().
00151 { 00152 *IERROR = FLA_LQ_UT_recover_tau( *( ( FLA_Obj * ) T ), 00153 *( ( FLA_Obj * ) tau ) ); 00154 }
References FLA_Cont_with_3x1_to_2x1(), FLA_Cont_with_3x3_to_2x2(), FLA_Copy_external(), FLA_Obj_min_dim(), FLA_Part_2x1(), FLA_Part_2x2(), FLA_Repart_2x1_to_3x1(), and FLA_Repart_2x2_to_3x3().
Referenced by FLA_LQ_UT_recover_tau().
00097 { 00098 FLA_Obj TTL, TTR, T00, t01, T02, 00099 TBL, TBR, t10t, tau11, t12t, 00100 T20, t21, T22; 00101 00102 FLA_Obj tauT, tau0, 00103 tauB, tau1, 00104 tau2; 00105 00106 00107 FLA_Part_2x2( T, &TTL, &TTR, 00108 &TBL, &TBR, 0, 0, FLA_TL ); 00109 00110 FLA_Part_2x1( tau, &tauT, 00111 &tauB, 0, FLA_TOP ); 00112 00113 while ( FLA_Obj_min_dim( TBR ) > 0 ){ 00114 00115 FLA_Repart_2x2_to_3x3( TTL, /**/ TTR, &T00, /**/ &t01, &T02, 00116 /* ************* */ /* ************************ */ 00117 &t10t, /**/ &tau11, &t12t, 00118 TBL, /**/ TBR, &T20, /**/ &t21, &T22, 00119 1, 1, FLA_BR ); 00120 00121 FLA_Repart_2x1_to_3x1( tauT, &tau0, 00122 /* ** */ /* ** */ 00123 &tau1, 00124 tauB, &tau2, 1, FLA_BOTTOM ); 00125 00126 /*------------------------------------------------------------*/ 00127 00128 // tau1 = tau11; 00129 FLA_Copy_external( tau11, tau1 ); 00130 00131 /*------------------------------------------------------------*/ 00132 00133 FLA_Cont_with_3x3_to_2x2( &TTL, /**/ &TTR, T00, t01, /**/ T02, 00134 t10t, tau11, /**/ t12t, 00135 /* ************** */ /* ********************** */ 00136 &TBL, /**/ &TBR, T20, t21, /**/ T22, 00137 FLA_TL ); 00138 00139 FLA_Cont_with_3x1_to_2x1( &tauT, tau0, 00140 tau1, 00141 /* ** */ /* ** */ 00142 &tauB, tau2, FLA_TOP ); 00143 00144 } 00145 00146 return FLA_SUCCESS; 00147 }