Functions | |
double | FLA_Max_elemwise_diff (FLA_Obj A, FLA_Obj B) |
double FLA_F2C() | fla_max_elemwise_diff_f (F_INT *A, F_INT *B) |
References FLA_Check_error_level(), FLA_Max_elemwise_diff_check(), FLA_Obj_datatype(), FLA_Obj_ldim(), FLA_Obj_length(), and FLA_Obj_width().
Referenced by fla_max_elemwise_diff_f(), and FLASH_Max_elemwise_diff().
00036 { 00037 int 00038 i, j, 00039 m, n, 00040 lda, ldb; 00041 double 00042 diff, 00043 d_max = 0.0; 00044 00045 if ( FLA_Check_error_level() >= FLA_MIN_ERROR_CHECKING ) 00046 FLA_Max_elemwise_diff_check( A, B ); 00047 00048 m = FLA_Obj_length( A ); 00049 n = FLA_Obj_width( A ); 00050 lda = FLA_Obj_ldim( A ); 00051 ldb = FLA_Obj_ldim( B ); 00052 00053 switch( FLA_Obj_datatype( A ) ){ 00054 00055 case FLA_FLOAT: 00056 { 00057 float *buff_a = ( float * ) FLA_FLOAT_PTR( A ); 00058 float *buff_b = ( float * ) FLA_FLOAT_PTR( B ); 00059 00060 for( j = 0; j < n; j++ ) 00061 { 00062 for( i = 0; i < m; i++ ) 00063 { 00064 diff = ( double ) ( buff_a[ j*lda + i ] - buff_b[ j*ldb + i ] ); 00065 00066 if( fabs(diff) > d_max ) 00067 d_max = fabs(diff); 00068 } 00069 } 00070 00071 break; 00072 } 00073 00074 case FLA_DOUBLE: 00075 { 00076 double *buff_a = ( double * ) FLA_DOUBLE_PTR( A ); 00077 double *buff_b = ( double * ) FLA_DOUBLE_PTR( B ); 00078 00079 for( j = 0; j < n; j++ ) 00080 { 00081 for( i = 0; i < m; i++ ) 00082 { 00083 diff = ( double ) ( buff_a[ j*lda + i ] - buff_b[ j*ldb + i ] ); 00084 00085 if( fabs(diff) > d_max ) 00086 d_max = fabs(diff); 00087 } 00088 } 00089 00090 break; 00091 } 00092 00093 case FLA_COMPLEX: 00094 { 00095 scomplex *buff_a = ( scomplex * ) FLA_COMPLEX_PTR( A ); 00096 scomplex *buff_b = ( scomplex * ) FLA_COMPLEX_PTR( B ); 00097 00098 for( j = 0; j < n; j++ ) 00099 { 00100 for( i = 0; i < m; i++ ) 00101 { 00102 diff = ( double ) ( buff_a[ j*lda + i ].real - buff_b[ j*ldb + i ].real ); 00103 00104 if( fabs(diff) > d_max ) 00105 d_max = fabs(diff); 00106 00107 diff = ( double ) ( buff_a[ j*lda + i ].imag - buff_b[ j*ldb + i ].imag ); 00108 00109 if( fabs(diff) > d_max ) 00110 d_max = fabs(diff); 00111 } 00112 } 00113 00114 break; 00115 } 00116 00117 case FLA_DOUBLE_COMPLEX: 00118 { 00119 dcomplex *buff_a = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( A ); 00120 dcomplex *buff_b = ( dcomplex * ) FLA_DOUBLE_COMPLEX_PTR( B ); 00121 00122 for( j = 0; j < n; j++ ) 00123 { 00124 for( i = 0; i < m; i++ ) 00125 { 00126 diff = ( double ) ( buff_a[ j*lda + i ].real - buff_b[ j*ldb + i ].real ); 00127 00128 if( fabs(diff) > d_max ) 00129 d_max = fabs(diff); 00130 00131 diff = ( double ) ( buff_a[ j*lda + i ].imag - buff_b[ j*ldb + i ].imag ); 00132 00133 if( fabs(diff) > d_max ) 00134 d_max = fabs(diff); 00135 } 00136 } 00137 00138 break; 00139 } 00140 00141 } 00142 00143 00144 return d_max; 00145 }
double FLA_F2C() fla_max_elemwise_diff_f | ( | F_INT * | A, | |
F_INT * | B | |||
) |
References FLA_Max_elemwise_diff().
00149 { 00150 return FLA_Max_elemwise_diff( *( ( FLA_Obj * ) A ), *( ( FLA_Obj * ) B ) ); 00151 }