Functions | |
FLA_Error | FLASH_FS_incpiv (FLA_Obj A, FLA_Obj p, FLA_Obj L, FLA_Obj b) |
void FLA_F2C() | flash_fs_incpiv_f (F_INT *A, F_INT *p, F_INT *L, F_INT *b, F_INT *IERROR) |
References FLA_Abort(), FLA_Check_error_level(), FLA_FS_incpiv_check(), FLA_Part_2x2(), FLA_Print_message(), FLASH_FS_incpiv_aux1(), FLASH_Obj_depth(), FLASH_Obj_scalar_width(), FLASH_Queue_disable(), FLASH_Queue_enable(), and FLASH_Queue_get_enabled().
Referenced by flash_fs_incpiv_f().
00036 { 00037 dim_t nb_alg; 00038 FLA_Error r_val; 00039 FLA_Bool enable_supermatrix; 00040 FLA_Obj LTL, LTR, 00041 LBL, LBR; 00042 00043 // Check parameters. 00044 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING ) 00045 FLA_FS_incpiv_check( A, p, L, b ); 00046 00047 // *** The current forward substitution algorithm implemented assumes that 00048 // the matrix has a hierarchical depth of 1. We check for that here, because 00049 // we anticipate that we'll use a more general algorithm in the future, and 00050 // we don't want to forget to remove the constraint. *** 00051 if ( FLASH_Obj_depth( A ) != 1 ) 00052 { 00053 FLA_Print_message( "FLASH_FS_incpiv() currently only supports matrices of depth 1", 00054 __FILE__, __LINE__ ); 00055 FLA_Abort(); 00056 } 00057 00058 // Inspect the width of a the top-left element of L to get the algorithmic 00059 // blocksize we'll use throughout the LU_incpiv algorithm. 00060 FLA_Part_2x2( L, <L, <R, 00061 &LBL, &LBR, 1, 1, FLA_TL ); 00062 nb_alg = FLASH_Obj_scalar_width( LTL ); 00063 00064 // Find the status of SuperMatrix. 00065 enable_supermatrix = FLASH_Queue_get_enabled(); 00066 00067 // Temporarily disable SuperMatrix. 00068 FLASH_Queue_disable(); 00069 00070 // Execute tasks. 00071 r_val = FLASH_FS_incpiv_aux1( A, p, L, b, nb_alg ); 00072 00073 // Restore SuperMatrix to its previous status. 00074 if ( enable_supermatrix ) 00075 FLASH_Queue_enable(); 00076 00077 return r_val; 00078 }
void FLA_F2C() flash_fs_incpiv_f | ( | F_INT * | A, | |
F_INT * | p, | |||
F_INT * | L, | |||
F_INT * | b, | |||
F_INT * | IERROR | |||
) |
References FLASH_FS_incpiv().
00082 { 00083 *IERROR = FLASH_FS_incpiv( *( ( FLA_Obj * ) A ), 00084 *( ( FLA_Obj * ) p ), 00085 *( ( FLA_Obj * ) L ), 00086 *( ( FLA_Obj * ) b ) ); 00087 }