Functions | |
FLA_Error | FLA_Hess_unb_external (FLA_Obj A, FLA_Obj t, int ilo, int ihi) |
void FLA_F2C() | fla_hess_unb_external_f (F_INT *A, F_INT *t, F_INT *ilo, F_INT *ihi, F_INT *IERROR) |
References cgehd2(), dgehd2(), FLA_Check_error_level(), FLA_Hess_check(), FLA_Obj_create(), FLA_Obj_datatype(), FLA_Obj_free(), FLA_Obj_has_zero_dim(), FLA_Obj_ldim(), FLA_Obj_width(), sgehd2(), and zgehd2().
Referenced by FLA_Hess_internal(), and fla_hess_unb_external_f().
00036 { 00037 FLA_Datatype datatype; 00038 int n_A, ldim_A; 00039 int info; 00040 FLA_Obj work_obj; 00041 int ilo_1, ihi_1; 00042 00043 if ( FLA_Check_error_level() == FLA_FULL_ERROR_CHECKING ) 00044 FLA_Hess_check( A, t, ilo, ihi ); 00045 00046 if ( FLA_Obj_has_zero_dim( A ) ) return FLA_SUCCESS; 00047 00048 datatype = FLA_Obj_datatype( A ); 00049 00050 n_A = FLA_Obj_width( A ); 00051 ldim_A = FLA_Obj_ldim( A ); 00052 ilo_1 = ilo + 1; 00053 ihi_1 = ihi + 1; 00054 00055 FLA_Obj_create( datatype, n_A, 1, &work_obj ); 00056 00057 switch( datatype ){ 00058 00059 case FLA_FLOAT: 00060 { 00061 float *buff_A = ( float * ) FLA_FLOAT_PTR( A ); 00062 float *buff_t = ( float * ) FLA_FLOAT_PTR( t ); 00063 float *buff_work = ( float * ) FLA_FLOAT_PTR( work_obj ); 00064 00065 FLA_C2F( sgehd2 )( &n_A, 00066 &ilo_1, 00067 &ihi_1, 00068 buff_A, &ldim_A, 00069 buff_t, 00070 buff_work, 00071 &info ); 00072 00073 break; 00074 } 00075 00076 case FLA_DOUBLE: 00077 { 00078 double *buff_A = ( double * ) FLA_DOUBLE_PTR( A ); 00079 double *buff_t = ( double * ) FLA_DOUBLE_PTR( t ); 00080 double *buff_work = ( double * ) FLA_DOUBLE_PTR( work_obj ); 00081 00082 FLA_C2F( dgehd2 )( &n_A, 00083 &ilo_1, 00084 &ihi_1, 00085 buff_A, &ldim_A, 00086 buff_t, 00087 buff_work, 00088 &info ); 00089 00090 break; 00091 } 00092 00093 case FLA_COMPLEX: 00094 { 00095 scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A ); 00096 scomplex *buff_t = ( scomplex * ) FLA_COMPLEX_PTR( t ); 00097 scomplex *buff_work = ( scomplex * ) FLA_COMPLEX_PTR( work_obj ); 00098 00099 FLA_C2F( cgehd2 )( &n_A, 00100 &ilo_1, 00101 &ihi_1, 00102 buff_A, &ldim_A, 00103 buff_t, 00104 buff_work, 00105 &info ); 00106 00107 break; 00108 } 00109 00110 case FLA_DOUBLE_COMPLEX: 00111 { 00112 dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A ); 00113 dcomplex *buff_t = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( t ); 00114 dcomplex *buff_work = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( work_obj ); 00115 00116 FLA_C2F( zgehd2 )( &n_A, 00117 &ilo_1, 00118 &ihi_1, 00119 buff_A, &ldim_A, 00120 buff_t, 00121 buff_work, 00122 &info ); 00123 00124 break; 00125 } 00126 00127 } 00128 00129 FLA_Obj_free( &work_obj ); 00130 00131 return info; 00132 }
void FLA_F2C() fla_hess_unb_external_f | ( | F_INT * | A, | |
F_INT * | t, | |||
F_INT * | ilo, | |||
F_INT * | ihi, | |||
F_INT * | IERROR | |||
) |
References FLA_Hess_unb_external().
00136 { 00137 *IERROR = FLA_Hess_unb_external( *( ( FLA_Obj * ) A ), 00138 *( ( FLA_Obj * ) t ), 00139 *( ( int * ) ilo ), 00140 *( ( int * ) ihi ) ); 00141 }