197 |
|
|
198 |
|
if (rel_min > 0) { /* doing relative differences? */ |
199 |
|
double av2 = .25*(r1*r1 + 2.*fabs(r1*r2) + r2*r2); |
200 |
< |
if (av2 > rel_min*rel_min) |
201 |
< |
diff2 /= av2; |
200 |
> |
if (av2 < rel_min*rel_min) |
201 |
> |
av2 = rel_min*rel_min; |
202 |
> |
diff2 /= av2; |
203 |
|
} |
204 |
|
if (max_lim >= 0 && diff2 > max_lim*max_lim) { |
205 |
|
if (report != REP_QUIET) |
373 |
|
tep->key = strcpy(malloc(kln+1), key); |
374 |
|
if (tep->data) { /* check for special cases */ |
375 |
|
if (!strcmp(key, "EXPOSURE")) { |
376 |
< |
sprintf(newval, "%f", atof(tep->data)*atof(val)); |
376 |
> |
sprintf(newval, "%.6e", atof(tep->data)*atof(val)); |
377 |
|
vln = strlen(val = newval); |
378 |
|
} |
379 |
|
free(tep->data); |