Functions | |
FLA_Error | FLASH_SA_LU (FLA_Obj B, FLA_Obj C, FLA_Obj D, FLA_Obj E, FLA_Obj p, FLA_Obj L, dim_t nb_alg) |
FLA_Error FLASH_SA_LU | ( | FLA_Obj | B, | |
FLA_Obj | C, | |||
FLA_Obj | D, | |||
FLA_Obj | E, | |||
FLA_Obj | p, | |||
FLA_Obj | L, | |||
dim_t | nb_alg | |||
) |
References FLA_Cont_with_3x1_to_2x1(), FLA_Obj_length(), FLA_Part_2x1(), FLA_Repart_2x1_to_3x1(), FLA_SA_LU_task(), FLASH_Queue_get_enabled(), and FLASH_SA_FS().
Referenced by FLASH_LU_incpiv_var1(), and FLASH_LU_incpiv_var2().
00037 { 00038 FLA_Obj DT, D0, 00039 DB, D1, 00040 D2; 00041 00042 FLA_Obj ET, E0, 00043 EB, E1, 00044 E2; 00045 00046 FLA_Obj pT, p0, 00047 pB, p1, 00048 p2; 00049 00050 FLA_Obj LT, L0, 00051 LB, L1, 00052 L2; 00053 00054 FLA_Part_2x1( D, &DT, 00055 &DB, 0, FLA_TOP ); 00056 00057 FLA_Part_2x1( E, &ET, 00058 &EB, 0, FLA_TOP ); 00059 00060 FLA_Part_2x1( p, &pT, 00061 &pB, 0, FLA_TOP ); 00062 00063 FLA_Part_2x1( L, <, 00064 &LB, 0, FLA_TOP ); 00065 00066 while ( FLA_Obj_length( DT ) < FLA_Obj_length( D ) ) 00067 { 00068 FLA_Repart_2x1_to_3x1( DT, &D0, 00069 /* ** */ /* ** */ 00070 &D1, 00071 DB, &D2, 1, FLA_BOTTOM ); 00072 00073 FLA_Repart_2x1_to_3x1( ET, &E0, 00074 /* ** */ /* ** */ 00075 &E1, 00076 EB, &E2, 1, FLA_BOTTOM ); 00077 00078 FLA_Repart_2x1_to_3x1( pT, &p0, 00079 /* ** */ /* ** */ 00080 &p1, 00081 pB, &p2, 1, FLA_BOTTOM ); 00082 00083 FLA_Repart_2x1_to_3x1( LT, &L0, 00084 /* ** */ /* ** */ 00085 &L1, 00086 LB, &L2, 1, FLA_BOTTOM ); 00087 00088 /*------------------------------------------------------------*/ 00089 00090 if ( FLASH_Queue_get_enabled( ) ) 00091 { 00092 // Enqueue 00093 ENQUEUE_FLASH_SA_LU( *FLASH_OBJ_PTR_AT( B ), 00094 *FLASH_OBJ_PTR_AT( D1 ), 00095 *FLASH_OBJ_PTR_AT( p1 ), 00096 *FLASH_OBJ_PTR_AT( L1 ), 00097 nb_alg, 00098 NULL ); 00099 } 00100 else 00101 { 00102 // Execute leaf 00103 FLA_SA_LU_task( *FLASH_OBJ_PTR_AT( B ), 00104 *FLASH_OBJ_PTR_AT( D1 ), 00105 *FLASH_OBJ_PTR_AT( p1 ), 00106 *FLASH_OBJ_PTR_AT( L1 ), 00107 nb_alg, 00108 NULL ); 00109 } 00110 00111 FLASH_SA_FS( L1, 00112 D1, p1, C, 00113 E1, nb_alg ); 00114 00115 /*------------------------------------------------------------*/ 00116 00117 FLA_Cont_with_3x1_to_2x1( &DT, D0, 00118 D1, 00119 /* ** */ /* ** */ 00120 &DB, D2, FLA_TOP ); 00121 00122 FLA_Cont_with_3x1_to_2x1( &ET, E0, 00123 E1, 00124 /* ** */ /* ** */ 00125 &EB, E2, FLA_TOP ); 00126 00127 FLA_Cont_with_3x1_to_2x1( &pT, p0, 00128 p1, 00129 /* ** */ /* ** */ 00130 &pB, p2, FLA_TOP ); 00131 00132 FLA_Cont_with_3x1_to_2x1( <, L0, 00133 L1, 00134 /* ** */ /* ** */ 00135 &LB, L2, FLA_TOP ); 00136 } 00137 00138 return FLA_SUCCESS; 00139 }