Average Error: 8.6 → 8.6
Time: 996.0ms
Precision: binary64
\[\mathsf{min}\left(\mathsf{max}\left(1 - \frac{f - e}{s - e}, 0.0\right), 1\right)\]
\[\mathsf{min}\left(\mathsf{max}\left(1 - \frac{f - e}{s - e}, 0.0\right), 1\right)\]
\mathsf{min}\left(\mathsf{max}\left(1 - \frac{f - e}{s - e}, 0.0\right), 1\right)
\mathsf{min}\left(\mathsf{max}\left(1 - \frac{f - e}{s - e}, 0.0\right), 1\right)
double code(double f, double e, double s) {
	return ((double) fmin(((double) fmax(((double) (1.0 - ((double) (((double) (f - e)) / ((double) (s - e)))))), 0.0)), 1.0));
}
double code(double f, double e, double s) {
	return ((double) fmin(((double) fmax(((double) (1.0 - ((double) (((double) (f - e)) / ((double) (s - e)))))), 0.0)), 1.0));
}

Error

Bits error versus f

Bits error versus e

Bits error versus s

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 8.6

    \[\mathsf{min}\left(\mathsf{max}\left(1 - \frac{f - e}{s - e}, 0.0\right), 1\right)\]
  2. Final simplification8.6

    \[\leadsto \mathsf{min}\left(\mathsf{max}\left(1 - \frac{f - e}{s - e}, 0.0\right), 1\right)\]

Reproduce

herbie shell --seed 2020152 
(FPCore (f e s)
  :name "(fmin (fmax (- 1.0 (/ (- f e) (- s e))) 0.0) 1.0)"
  :precision binary64
  (fmin (fmax (- 1.0 (/ (- f e) (- s e))) 0.0) 1.0))