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) |
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 }