Average Error: 0 → 0
Time: 355.0ms
Precision: binary64
\[\mathsf{max}\left(1, \mathsf{min}\left(0.0, x\right)\right)\]
\[\mathsf{max}\left(1, \mathsf{min}\left(0.0, x\right)\right)\]
\mathsf{max}\left(1, \mathsf{min}\left(0.0, x\right)\right)
\mathsf{max}\left(1, \mathsf{min}\left(0.0, x\right)\right)
double code(double x) {
	return ((double) fmax(1.0, ((double) fmin(0.0, x))));
}
double code(double x) {
	return ((double) fmax(1.0, ((double) fmin(0.0, x))));
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0

    \[\mathsf{max}\left(1, \mathsf{min}\left(0.0, x\right)\right)\]
  2. Final simplification0

    \[\leadsto \mathsf{max}\left(1, \mathsf{min}\left(0.0, x\right)\right)\]

Reproduce

herbie shell --seed 2020153 
(FPCore (x)
  :name "(fmax 1 (fmin 0 x))"
  :precision binary64
  (fmax 1.0 (fmin 0.0 x)))