FLA_Accum_T_UT_unb_external.c File Reference

(r)


Functions

FLA_Error FLA_Accum_T_UT_unb_external (FLA_Direct direct, FLA_Store storev, FLA_Obj A, FLA_Obj t, FLA_Obj T)
void FLA_F2C() fla_accum_t_ut_unb_external_f (F_INT *direct, F_INT *storev, F_INT *A, F_INT *t, F_INT *T, F_INT *IERROR)

Function Documentation

FLA_Error FLA_Accum_T_UT_unb_external ( FLA_Direct  direct,
FLA_Store  storev,
FLA_Obj  A,
FLA_Obj  t,
FLA_Obj  T 
)

References clarftut(), dlarftut(), FLA_Accum_T_UT_check(), FLA_Check_error_level(), FLA_Obj_datatype(), FLA_Obj_ldim(), FLA_Obj_length(), FLA_Obj_width(), FLA_Param_map_to_lapack_direct(), FLA_Param_map_to_lapack_storev(), slarftut(), and zlarftut().

Referenced by fla_accum_t_ut_unb_external_f(), FLA_LQ_UT_Accum_T_unb_external(), and FLA_QR_UT_Accum_T_unb_external().

00036 {
00037   FLA_Datatype datatype;
00038   int          m_H, ldim_A;
00039   int          k_T, ldim_T;
00040   char         lapack_direct; 
00041   char         lapack_storev;
00042 
00043   if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING )
00044     FLA_Accum_T_UT_check( direct, storev, A, t, T );
00045 
00046   datatype = FLA_Obj_datatype( A );
00047 
00048   if ( storev == FLA_COLUMNWISE )
00049     m_H    = FLA_Obj_length( A );
00050   else
00051     m_H    = FLA_Obj_width( A );
00052 
00053   k_T      = FLA_Obj_width( T );
00054   ldim_A   = FLA_Obj_ldim( A );
00055   ldim_T   = FLA_Obj_ldim( T );
00056 
00057   FLA_Param_map_to_lapack_direct( direct, &lapack_direct );
00058   FLA_Param_map_to_lapack_storev( storev, &lapack_storev );
00059 
00060 
00061   switch( datatype ){
00062 
00063   case FLA_FLOAT:
00064   {
00065     float *buff_A = ( float * ) FLA_FLOAT_PTR( A );
00066     float *buff_t = ( float * ) FLA_FLOAT_PTR( t );
00067     float *buff_T = ( float * ) FLA_FLOAT_PTR( T );
00068 
00069     FLA_C2F( slarftut )( &lapack_direct,
00070                          &lapack_storev,
00071                          &m_H,
00072                          &k_T,
00073                          buff_A, &ldim_A,
00074                          buff_t,
00075                          buff_T, &ldim_T );
00076 
00077     break;
00078   }
00079 
00080   case FLA_DOUBLE:
00081   {
00082     double *buff_A = ( double * ) FLA_DOUBLE_PTR( A );
00083     double *buff_t = ( double * ) FLA_DOUBLE_PTR( t );
00084     double *buff_T = ( double * ) FLA_DOUBLE_PTR( T );
00085 
00086     FLA_C2F( dlarftut )( &lapack_direct,
00087                          &lapack_storev,
00088                          &m_H,
00089                          &k_T,
00090                          buff_A, &ldim_A,
00091                          buff_t,
00092                          buff_T, &ldim_T );
00093 
00094     break;
00095   } 
00096 
00097   case FLA_COMPLEX:
00098   {
00099     scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A );
00100     scomplex *buff_t = ( scomplex * ) FLA_COMPLEX_PTR( t );
00101     scomplex *buff_T = ( scomplex * ) FLA_COMPLEX_PTR( T );
00102 
00103     FLA_C2F( clarftut )( &lapack_direct,
00104                          &lapack_storev,
00105                          &m_H,
00106                          &k_T,
00107                          buff_A, &ldim_A,
00108                          buff_t,
00109                          buff_T, &ldim_T );
00110 
00111     break;
00112   } 
00113 
00114   case FLA_DOUBLE_COMPLEX:
00115   {
00116     dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A );
00117     dcomplex *buff_t = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( t );
00118     dcomplex *buff_T = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( T );
00119 
00120     FLA_C2F( zlarftut )( &lapack_direct,
00121                          &lapack_storev,
00122                          &m_H,
00123                          &k_T,
00124                          buff_A, &ldim_A,
00125                          buff_t,
00126                          buff_T, &ldim_T );
00127 
00128     break;
00129   } 
00130 
00131   }
00132 
00133   return FLA_SUCCESS;
00134 }

void FLA_F2C() fla_accum_t_ut_unb_external_f ( F_INT *  direct,
F_INT *  storev,
F_INT *  A,
F_INT *  t,
F_INT *  T,
F_INT *  IERROR 
)

References FLA_Accum_T_UT_unb_external().

00138 {
00139   *IERROR = FLA_Accum_T_UT_unb_external( *( ( FLA_Direct * ) direct ),
00140                                          *( ( FLA_Store  * ) storev ),
00141                                          *( ( FLA_Obj    * ) A      ), 
00142                                          *( ( FLA_Obj    * ) t      ), 
00143                                          *( ( FLA_Obj    * ) T      ) );
00144 }


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