MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / computeArraysRMSD

Function computeArraysRMSD

test/arrayfire_test.cpp:1081–1103  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1079
1080template<typename T>
1081double computeArraysRMSD(dim_t data_size, T *gold, T *data) {
1082 double accum = 0.0;
1083 double maxion = -FLT_MAX; //(double)std::numeric_limits<T>::lowest();
1084 double minion = FLT_MAX; //(double)std::numeric_limits<T>::max();
1085
1086 for (dim_t i = 0; i < data_size; i++) {
1087 double dTemp = (double)data[i];
1088 double gTemp = (double)gold[i];
1089 double diff = gTemp - dTemp;
1090 if (diff > 1.e-4) {
1091 // printf("%d: diff: %f %f %f\n", i, diff, data[i], gold[i]);
1092 }
1093 double err =
1094 (std::isfinite(diff) && (std::abs(diff) > 1.0e-4)) ? diff : 0.0f;
1095 accum += std::pow(err, 2.0);
1096 maxion = std::max(maxion, dTemp);
1097 minion = std::min(minion, dTemp);
1098 }
1099 accum /= data_size;
1100 double NRMSD = std::sqrt(accum) / (maxion - minion);
1101
1102 return NRMSD;
1103}
1104
1105template<>
1106double computeArraysRMSD<unsigned char>(dim_t data_size, unsigned char *gold,

Callers 1

imageEqFunction · 0.85

Calls 6

isfiniteFunction · 0.85
powFunction · 0.85
sqrtFunction · 0.85
absFunction · 0.70
maxFunction · 0.70
minFunction · 0.70

Tested by

no test coverage detected