Functions | |
FLA_Error | FLA_Conjugate_r (FLA_Uplo uplo, FLA_Obj A) |
void FLA_F2C() | fla_conjugate_r_f (F_INT *uplo, F_INT *A, F_INT *IERROR) |
References FLA_Check_error_level(), FLA_Conjugate_r_check(), FLA_MINUS_ONE, FLA_Obj_datatype(), FLA_Obj_is_real(), FLA_Obj_ldim(), FLA_Obj_length(), and FLA_Obj_width().
Referenced by fla_conjugate_r_f(), and FLA_Hermitianize().
00036 { 00037 FLA_Datatype datatype; 00038 int i, j; 00039 int m_A, n_A, ldim_A; 00040 00041 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING ) 00042 FLA_Conjugate_r_check( uplo, A ); 00043 00044 if ( FLA_Obj_is_real( A ) ) return FLA_SUCCESS; 00045 00046 datatype = FLA_Obj_datatype( A ); 00047 00048 m_A = FLA_Obj_length( A ); 00049 n_A = FLA_Obj_width( A ); 00050 ldim_A = FLA_Obj_ldim( A ); 00051 00052 switch ( datatype ){ 00053 00054 case FLA_COMPLEX: 00055 { 00056 scomplex *buff_A = ( scomplex * ) FLA_COMPLEX_PTR( A ); 00057 float *buff_n1 = ( float * ) FLA_FLOAT_PTR( FLA_MINUS_ONE ); 00058 00059 if ( uplo == FLA_LOWER_TRIANGULAR ) 00060 { 00061 for ( j = 0; j < n_A; j++ ) 00062 { 00063 for ( i = j; i < m_A; i++ ) 00064 buff_A[ j*ldim_A + i ].imag *= *buff_n1; 00065 } 00066 } 00067 else if ( uplo == FLA_UPPER_TRIANGULAR ) 00068 { 00069 for ( j = 0; j < n_A; j++ ) 00070 { 00071 for ( i = 0; i < j + 1; i++ ) 00072 buff_A[ j*ldim_A + i ].imag *= *buff_n1; 00073 } 00074 } 00075 00076 break; 00077 } 00078 00079 case FLA_DOUBLE_COMPLEX: 00080 { 00081 dcomplex *buff_A = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A ); 00082 double *buff_n1 = ( double * ) FLA_DOUBLE_PTR( FLA_MINUS_ONE ); 00083 00084 if ( uplo == FLA_LOWER_TRIANGULAR ) 00085 { 00086 for ( j = 0; j < n_A; j++ ) 00087 { 00088 for ( i = j; i < m_A; i++ ) 00089 buff_A[ j*ldim_A + i ].imag *= *buff_n1; 00090 } 00091 } 00092 else if ( uplo == FLA_UPPER_TRIANGULAR ) 00093 { 00094 for ( j = 0; j < n_A; j++ ) 00095 { 00096 for ( i = 0; i < j + 1; i++ ) 00097 buff_A[ j*ldim_A + i ].imag *= *buff_n1; 00098 } 00099 } 00100 00101 break; 00102 } 00103 00104 } 00105 00106 return FLA_SUCCESS; 00107 }
void FLA_F2C() fla_conjugate_r_f | ( | F_INT * | uplo, | |
F_INT * | A, | |||
F_INT * | IERROR | |||
) |
References FLA_Conjugate_r().
00111 { 00112 *IERROR = FLA_Conjugate_r( *( ( FLA_Uplo * ) uplo ), 00113 *( ( FLA_Obj * ) A ) ); 00114 }