Skip to content
Snippets Groups Projects
Commit 44366d14 authored by Daniel Maier's avatar Daniel Maier
Browse files

new calc_error

parent d06c0590
No related branches found
No related tags found
No related merge requests found
......@@ -62,18 +62,27 @@ void calc_error(int n,
DATA_TYPE POLYBENCH_2D(A,N,N,n,n))
{
int i;
int n = n*n;
int num = n*n;
double err = 0;
double *accurate = &_binary_data_bin_start;
double *test = &(A[0][0]);
for(i = 0; i < n; i++) {
double e = fabs((accurate[i] - test[i])/accurate[i]);
if(e > 1)
e = 1;
err += e;
for(i = 0; i < num; i++) {
if(fabs(accurate[i] - test[i]) > 0.0) {
double e;
if(fabs(accurate[i]) > 0.0) {
e = fabs((accurate[i] - test[i])/accurate[i]);
}
else {
e = fabs(accurate[i] - test[i]);
}
/* clamp error to max 1 */
if(e > 1)
e = 1;
err += e;
}
}
err /= n;
err /= num;
printf("error: %f\n", err);
}
......
......@@ -75,18 +75,27 @@ void calc_error(int m, int n,
DATA_TYPE POLYBENCH_2D(C,M,N,m,n))
{
int i, j;
int n = m*n;
int num = m*n;
double err = 0;
double *accurate = &_binary_data_bin_start;
double *test = &(C[0][0]);
for(i = 0; i < n; i++) {
double e = fabs((accurate[i] - test[i])/accurate[i]);
if(e > 1)
e = 1;
err += e;
for(i = 0; i < num; i++) {
if(fabs(accurate[i] - test[i]) > 0.0) {
double e;
if(fabs(accurate[i]) > 0.0) {
e = fabs((accurate[i] - test[i])/accurate[i]);
}
else {
e = fabs(accurate[i] - test[i]);
}
/* clamp error to max 1 */
if(e > 1)
e = 1;
err += e;
}
}
err /= n;
err /= num;
printf("error: %f\n", err);
}
......
......@@ -73,18 +73,27 @@ void calc_error(int n,
DATA_TYPE POLYBENCH_2D(C,N,N,n,n))
{
int i;
int n = n*n;
int num = n*n;
double err = 0;
double *accurate = &_binary_data_bin_start;
double *test = &(C[0][0]);
for(i = 0; i < n; i++) {
double e = fabs((accurate[i] - test[i])/accurate[i]);
if(e > 1)
e = 1;
err += e;
for(i = 0; i < num; i++) {
if(fabs(accurate[i] - test[i]) > 0.0) {
double e;
if(fabs(accurate[i]) > 0.0) {
e = fabs((accurate[i] - test[i])/accurate[i]);
}
else {
e = fabs(accurate[i] - test[i]);
}
/* clamp error to max 1 */
if(e > 1)
e = 1;
err += e;
}
}
err /= n;
err /= num;
printf("error: %f\n", err);
}
......
......@@ -75,10 +75,19 @@ void calc_error(int n,
double *test = &(C[0][0]);
for(i = 0; i < num; i++) {
double e = fabs((accurate[i] - test[i])/accurate[i]);
if(e > 1)
e = 1;
err += e;
if(fabs(accurate[i] - test[i]) > 0.0) {
double e;
if(fabs(accurate[i]) > 0.0) {
e = fabs((accurate[i] - test[i])/accurate[i]);
}
else {
e = fabs(accurate[i] - test[i]);
}
/* clamp error to max 1 */
if(e > 1)
e = 1;
err += e;
}
}
err /= num;
printf("error: %f\n", err);
......
......@@ -67,11 +67,12 @@ void calc_error(int n,
DATA_TYPE POLYBENCH_1D(x,N,n))
{
int i;
int num = n;
double err = 0;
double *accurate = &_binary_data_bin_start;
double *test = x;
for(i = 0; i < n; i++) {
for(i = 0; i < num; i++) {
if(fabs(accurate[i] - test[i]) > 0.0) {
double e;
if(fabs(accurate[i]) > 0.0) {
......@@ -86,7 +87,7 @@ void calc_error(int n,
err += e;
}
}
err /= n;
err /= num;
printf("error: %f\n", err);
}
......
......@@ -71,18 +71,27 @@ void calc_error(int m, int n,
DATA_TYPE POLYBENCH_2D(B,M,N,m,n))
{
int i;
n = m*n; /* already passed as parameter */
int num = m*n;
double err = 0;
double *accurate = &_binary_data_bin_start;
double *test = &(B[0][0]);
for(i = 0; i < n; i++) {
double e = fabs((accurate[i] - test[i])/accurate[i]);
if(e > 1 || e != e)
e = 1;
err += e;
for(i = 0; i < num; i++) {
if(fabs(accurate[i] - test[i]) > 0.0) {
double e;
if(fabs(accurate[i]) > 0.0) {
e = fabs((accurate[i] - test[i])/accurate[i]);
}
else {
e = fabs(accurate[i] - test[i]);
}
/* clamp error to max 1 */
if(e > 1)
e = 1;
err += e;
}
}
err /= n;
err /= num;
printf("error: %f\n", err);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment