Functions | |
FLA_Error | FLA_Ger_external (FLA_Obj alpha, FLA_Obj x, FLA_Obj y, FLA_Obj A) |
void FLA_F2C() | fla_ger_external_f (F_INT *alpha, F_INT *x, F_INT *y, F_INT *A, F_INT *IERROR) |
References cblas_cgeru(), cblas_dger(), cblas_sger(), cblas_zgeru(), CblasColMajor, cgeru(), dger(), FLA_Check_error_level(), FLA_Ger_check(), FLA_Obj_datatype(), FLA_Obj_has_zero_dim(), FLA_Obj_ldim(), FLA_Obj_length(), FLA_Obj_width(), sger(), and zgeru().
Referenced by FLA_Apply_househ2_UT(), FLA_Gemm_nn_unb_var5(), FLA_Gemm_nn_unb_var6(), FLA_Gemm_nt_unb_var5(), FLA_Gemm_nt_unb_var6(), FLA_Gemm_th_unb_var5(), FLA_Gemm_th_unb_var6(), FLA_Gemm_tn_unb_var5(), FLA_Gemm_tn_unb_var6(), FLA_Gemm_tt_unb_var5(), FLA_Gemm_tt_unb_var6(), FLA_Ger(), fla_ger_external_f(), FLA_Hemm_ll_unb_var3(), FLA_Hemm_ll_unb_var4(), FLA_Hemm_ll_unb_var5(), FLA_Hemm_ll_unb_var8(), FLA_Hemm_lu_unb_var1(), FLA_Hemm_lu_unb_var4(), FLA_Hemm_lu_unb_var7(), FLA_Hemm_lu_unb_var8(), FLA_Hemm_rl_unb_var1(), FLA_Hemm_rl_unb_var4(), FLA_Hemm_rl_unb_var7(), FLA_Hemm_rl_unb_var8(), FLA_Hemm_ru_unb_var3(), FLA_Hemm_ru_unb_var4(), FLA_Hemm_ru_unb_var5(), FLA_Hemm_ru_unb_var8(), FLA_LU_nopiv_unb_var5(), FLA_LU_piv_unb_var5(), FLA_Symm_ll_unb_var1(), FLA_Symm_ll_unb_var3(), FLA_Symm_ll_unb_var4(), FLA_Symm_ll_unb_var5(), FLA_Symm_ll_unb_var7(), FLA_Symm_ll_unb_var8(), FLA_Symm_lu_unb_var1(), FLA_Symm_lu_unb_var3(), FLA_Symm_lu_unb_var4(), FLA_Symm_lu_unb_var5(), FLA_Symm_lu_unb_var7(), FLA_Symm_lu_unb_var8(), FLA_Symm_rl_unb_var1(), FLA_Symm_rl_unb_var4(), FLA_Symm_rl_unb_var7(), FLA_Symm_rl_unb_var8(), FLA_Symm_ru_unb_var3(), FLA_Symm_ru_unb_var4(), FLA_Symm_ru_unb_var5(), FLA_Symm_ru_unb_var8(), FLA_Trinv_l_unb_var3(), FLA_Trinv_l_unb_var4(), FLA_Trinv_u_unb_var3(), FLA_Trinv_u_unb_var4(), FLA_Trmm_lln_unb_var2(), FLA_Trmm_llt_unb_var2(), FLA_Trmm_lun_unb_var2(), FLA_Trmm_lut_unb_var2(), FLA_Trmm_rln_unb_var2(), FLA_Trmm_rlt_unb_var2(), FLA_Trmm_run_unb_var2(), FLA_Trmm_rut_unb_var2(), FLA_Trsm_lln_unb_var2(), FLA_Trsm_llt_unb_var2(), FLA_Trsm_lun_unb_var2(), FLA_Trsm_lut_unb_var2(), FLA_Trsm_rln_unb_var2(), FLA_Trsm_rlt_unb_var2(), FLA_Trsm_run_unb_var2(), and FLA_Trsm_rut_unb_var2().
00036 { 00037 FLA_Datatype datatype; 00038 int m_A, n_A, ldim_A; 00039 int m_x, ldim_x, inc_x; 00040 int m_y, ldim_y, inc_y; 00041 #ifdef FLA_ENABLE_CBLAS_INTERFACE 00042 CBLAS_ORDER cblas_order = CblasColMajor; 00043 #endif 00044 00045 if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING ) 00046 FLA_Ger_check( alpha, x, y, A ); 00047 00048 if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS; 00049 00050 datatype = FLA_Obj_datatype( A ); 00051 00052 m_A = FLA_Obj_length( A ); 00053 n_A = FLA_Obj_width( A ); 00054 ldim_A = FLA_Obj_ldim( A ); 00055 00056 m_x = FLA_Obj_length( x ); 00057 ldim_x = FLA_Obj_ldim( x ); 00058 00059 m_y = FLA_Obj_length( y ); 00060 ldim_y = FLA_Obj_ldim( y ); 00061 00062 inc_x = ( m_x == 1 ? ldim_x : 1 ); 00063 inc_y = ( m_y == 1 ? ldim_y : 1 ); 00064 00065 00066 switch( datatype ){ 00067 00068 case FLA_FLOAT: 00069 { 00070 float *buff_A = ( float * ) FLA_FLOAT_PTR( A ); 00071 float *buff_x = ( float * ) FLA_FLOAT_PTR( x ); 00072 float *buff_y = ( float * ) FLA_FLOAT_PTR( y ); 00073 float *buff_alpha = ( float * ) FLA_FLOAT_PTR( alpha ); 00074 00075 #ifdef FLA_ENABLE_CBLAS_INTERFACE 00076 cblas_sger( cblas_order, 00077 m_A, n_A, 00078 *buff_alpha, 00079 buff_x, inc_x, 00080 buff_y, inc_y, 00081 buff_A, ldim_A ); 00082 #else 00083 FLA_C2F( sger )( &m_A, &n_A, 00084 buff_alpha, 00085 buff_x, &inc_x, 00086 buff_y, &inc_y, 00087 buff_A, &ldim_A ); 00088 #endif 00089 break; 00090 } 00091 00092 case FLA_DOUBLE: 00093 { 00094 double *buff_A = ( double * ) FLA_DOUBLE_PTR( A ); 00095 double *buff_x = ( double * ) FLA_DOUBLE_PTR( x ); 00096 double *buff_y = ( double * ) FLA_DOUBLE_PTR( y ); 00097 double *buff_alpha = ( double * ) FLA_DOUBLE_PTR( alpha ); 00098 00099 #ifdef FLA_ENABLE_CBLAS_INTERFACE 00100 cblas_dger( cblas_order, 00101 m_A, n_A, 00102 *buff_alpha, 00103 buff_x, inc_x, 00104 buff_y, inc_y, 00105 buff_A, ldim_A ); 00106 #else 00107 FLA_C2F( dger )( &m_A, &n_A, 00108 buff_alpha, 00109 buff_x, &inc_x, 00110 buff_y, &inc_y, 00111 buff_A, &ldim_A ); 00112 #endif 00113 break; 00114 } 00115 00116 case FLA_COMPLEX: 00117 { 00118 scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A ); 00119 scomplex *buff_x = ( scomplex * ) FLA_COMPLEX_PTR( x ); 00120 scomplex *buff_y = ( scomplex * ) FLA_COMPLEX_PTR( y ); 00121 scomplex *buff_alpha = ( scomplex * ) FLA_COMPLEX_PTR( alpha ); 00122 00123 #ifdef FLA_ENABLE_CBLAS_INTERFACE 00124 cblas_cgeru( cblas_order, 00125 m_A, n_A, 00126 buff_alpha, 00127 buff_x, inc_x, 00128 buff_y, inc_y, 00129 buff_A, ldim_A ); 00130 #else 00131 FLA_C2F( cgeru )( &m_A, &n_A, 00132 buff_alpha, 00133 buff_x, &inc_x, 00134 buff_y, &inc_y, 00135 buff_A, &ldim_A ); 00136 #endif 00137 break; 00138 } 00139 00140 case FLA_DOUBLE_COMPLEX: 00141 { 00142 dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A ); 00143 dcomplex *buff_x = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( x ); 00144 dcomplex *buff_y = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( y ); 00145 dcomplex *buff_alpha = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( alpha ); 00146 00147 #ifdef FLA_ENABLE_CBLAS_INTERFACE 00148 cblas_zgeru( cblas_order, 00149 m_A, n_A, 00150 buff_alpha, 00151 buff_x, inc_x, 00152 buff_y, inc_y, 00153 buff_A, ldim_A ); 00154 #else 00155 FLA_C2F( zgeru )( &m_A, &n_A, 00156 buff_alpha, 00157 buff_x, &inc_x, 00158 buff_y, &inc_y, 00159 buff_A, &ldim_A ); 00160 #endif 00161 break; 00162 } 00163 00164 } 00165 00166 return FLA_SUCCESS; 00167 }
void FLA_F2C() fla_ger_external_f | ( | F_INT * | alpha, | |
F_INT * | x, | |||
F_INT * | y, | |||
F_INT * | A, | |||
F_INT * | IERROR | |||
) |
References FLA_Ger_external().
00172 { 00173 *IERROR = FLA_Ger_external( *( ( FLA_Obj * ) alpha ), 00174 *( ( FLA_Obj * ) x ), 00175 *( ( FLA_Obj * ) y ), 00176 *( ( FLA_Obj * ) A ) ); 00177 }