Functions | |
FLA_Error | FLA_LU_piv_unb_external (FLA_Obj A, FLA_Obj p) |
void FLA_F2C() | fla_lu_piv_unb_external_f (F_INT *A, F_INT *p, F_INT *IERROR) |
References cgetf2(), dgetf2(), FLA_Check_error_level(), FLA_LU_piv_check(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_ldim(), FLA_Obj_length(), FLA_Obj_width(), FLA_Shift_pivots_to(), sgetf2(), and zgetf2().
Referenced by FLA_LU_piv_copy_task(), FLA_LU_piv_task(), and fla_lu_piv_unb_external_f().
00036 { 00037 FLA_Datatype datatype; 00038 int m_A, n_A, ldim_A; 00039 int info; 00040 00041 if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING ) 00042 FLA_LU_piv_check( A, p ); 00043 00044 if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS; 00045 00046 datatype = FLA_Obj_datatype( A ); 00047 00048 m_A = FLA_Obj_length( A ); 00049 n_A = FLA_Obj_width( A ); 00050 ldim_A = FLA_Obj_ldim( A ); 00051 00052 00053 switch( datatype ){ 00054 00055 case FLA_FLOAT: 00056 { 00057 float *buff_A = ( float * ) FLA_FLOAT_PTR( A ); 00058 int *buff_p = ( int * ) FLA_INT_PTR( p ); 00059 00060 FLA_C2F( sgetf2 )( &m_A, 00061 &n_A, 00062 buff_A, &ldim_A, 00063 buff_p, 00064 &info ); 00065 00066 break; 00067 } 00068 00069 case FLA_DOUBLE: 00070 { 00071 double *buff_A = ( double * ) FLA_DOUBLE_PTR( A ); 00072 int *buff_p = ( int * ) FLA_INT_PTR( p ); 00073 00074 FLA_C2F( dgetf2 )( &m_A, 00075 &n_A, 00076 buff_A, &ldim_A, 00077 buff_p, 00078 &info ); 00079 00080 break; 00081 } 00082 00083 case FLA_COMPLEX: 00084 { 00085 scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A ); 00086 int *buff_p = ( int * ) FLA_INT_PTR( p ); 00087 00088 FLA_C2F( cgetf2 )( &m_A, 00089 &n_A, 00090 buff_A, &ldim_A, 00091 buff_p, 00092 &info ); 00093 00094 break; 00095 } 00096 00097 case FLA_DOUBLE_COMPLEX: 00098 { 00099 dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A ); 00100 int *buff_p = ( int * ) FLA_INT_PTR( p ); 00101 00102 FLA_C2F( zgetf2 )( &m_A, 00103 &n_A, 00104 buff_A, &ldim_A, 00105 buff_p, 00106 &info ); 00107 00108 break; 00109 } 00110 00111 } 00112 00113 FLA_Shift_pivots_to( FLA_NATIVE_PIVOTS, p ); 00114 00115 return info; 00116 }
void FLA_F2C() fla_lu_piv_unb_external_f | ( | F_INT * | A, | |
F_INT * | p, | |||
F_INT * | IERROR | |||
) |
References FLA_LU_piv_unb_external().
00120 { 00121 *IERROR = FLA_LU_piv_unb_external( *( ( FLA_Obj * ) A ), 00122 *( ( FLA_Obj * ) p ) ); 00123 }