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