FLA_Trinv_unb_external.c File Reference

(r)


Functions

FLA_Error FLA_Trinv_unb_external (FLA_Uplo uplo, FLA_Diag diag, FLA_Obj A)
void FLA_F2C() fla_trinv_unb_external_f (F_INT *uplo, F_INT *diag, F_INT *A, F_INT *IERROR)

Function Documentation

FLA_Error FLA_Trinv_unb_external ( FLA_Uplo  uplo,
FLA_Diag  diag,
FLA_Obj  A 
)

References ctrti2(), dtrti2(), FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_ldim(), FLA_Obj_length(), FLA_Param_map_to_blas_diag(), FLA_Param_map_to_blas_uplo(), FLA_Trinv_check(), strti2(), and ztrti2().

Referenced by FLA_Trinv_l_task(), FLA_Trinv_task(), FLA_Trinv_u_task(), and fla_trinv_unb_external_f().

00036 {
00037   FLA_Datatype datatype;
00038   int          m_A, ldim_A;
00039   int          info;
00040   char         blas_uplo;
00041   char         blas_diag;
00042 
00043   if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
00044     FLA_Trinv_check( uplo, diag, A );
00045 
00046   if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS;
00047 
00048   datatype = FLA_Obj_datatype( A );
00049 
00050   m_A      = FLA_Obj_length( A );
00051   ldim_A   = FLA_Obj_ldim( A );
00052 
00053   FLA_Param_map_to_blas_uplo( uplo, &blas_uplo );
00054   FLA_Param_map_to_blas_diag( diag, &blas_diag );
00055 
00056 
00057   switch( datatype ){
00058 
00059   case FLA_FLOAT:
00060   {
00061     float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
00062 
00063     FLA_C2F( strti2 )( &blas_uplo,
00064                        &blas_diag,
00065                        &m_A,
00066                        buff_A, &ldim_A,
00067                        &info );
00068 
00069     break;
00070   }
00071 
00072   case FLA_DOUBLE:
00073   {
00074     double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
00075 
00076     FLA_C2F( dtrti2 )( &blas_uplo,
00077                        &blas_diag,
00078                        &m_A,
00079                        buff_A, &ldim_A,
00080                        &info );
00081 
00082     break;
00083   } 
00084 
00085   case FLA_COMPLEX:
00086   {
00087     scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
00088 
00089     FLA_C2F( ctrti2 )( &blas_uplo,
00090                        &blas_diag,
00091                        &m_A,
00092                        buff_A, &ldim_A,
00093                        &info );
00094 
00095     break;
00096   } 
00097 
00098   case FLA_DOUBLE_COMPLEX:
00099   {
00100     dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
00101 
00102     FLA_C2F( ztrti2 )( &blas_uplo,
00103                        &blas_diag,
00104                        &m_A,
00105                        buff_A, &ldim_A,
00106                        &info );
00107 
00108     break;
00109   } 
00110 
00111   }
00112 
00113   return info;
00114 }

void FLA_F2C() fla_trinv_unb_external_f ( F_INT *  uplo,
F_INT *  diag,
F_INT *  A,
F_INT *  IERROR 
)

References FLA_Trinv_unb_external().

00118 {
00119   *IERROR = FLA_Trinv_unb_external( *( ( FLA_Uplo * ) uplo ), 
00120                                     *( ( FLA_Diag * ) diag ), 
00121                                     *( ( FLA_Obj  * ) A    ) );
00122 }


Generated on Mon Jul 6 05:45:53 2009 for libflame by  doxygen 1.5.9