@@ -101,7 +101,7 @@ check(void)
for (i = 0; i < N; i++)
{
TYPE expected_value = alpha * vec_x[i] + 4.0;
- if (fabs(vec_y[i] - expected_value) > EPSILON) {
+ if (fabs(vec_y[i] - expected_value) > expected_value * EPSILON) {
FPRINTF(stderr,"at %d, %f*%f+%f=%f, expected %f\n", i, alpha, vec_x[i], 4.0, vec_y[i], expected_value);
return EXIT_FAILURE;
}
@@ -148,9 +148,13 @@ check (size_t size, float vector[size], float factor)
size_t i;
for (i = 0; i < size; i++)
- if (fabs(vector[i] - i * factor) > EPSILON)
- return false;
-
+ {
+ if (fabs(vector[i] - i * factor) > i*factor*EPSILON)
+ fprintf(stderr, "%.2f != %.2f\n", vector[i], i*factor);
+ return false;
+ }
return true;