Average Error: 0.1 → 0.0
Time: 5.7s
Precision: binary64
Cost: 576
\[1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}\]
\[2 + 4 \cdot \frac{x - z}{y}\]
1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}
2 + 4 \cdot \frac{x - z}{y}
(FPCore (x y z)
 :precision binary64
 (+ 1.0 (/ (* 4.0 (- (+ x (* y 0.25)) z)) y)))
(FPCore (x y z) :precision binary64 (+ 2.0 (* 4.0 (/ (- x z) y))))
double code(double x, double y, double z) {
	return 1.0 + ((4.0 * ((x + (y * 0.25)) - z)) / y);
}
double code(double x, double y, double z) {
	return 2.0 + (4.0 * ((x - z) / y));
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Alternatives

Alternative 1
Error0.2
Cost576
\[2 + \left(x - z\right) \cdot \frac{4}{y}\]
Alternative 2
Error9.0
Cost1041
\[\begin{array}{l} \mathbf{if}\;x \leq -1.0589087533869587 \cdot 10^{+17} \lor \neg \left(x \leq 5.874341237735803 \cdot 10^{+21} \lor \neg \left(x \leq 1.3189226260259516 \cdot 10^{+56}\right) \land x \leq 1.4475075010385267 \cdot 10^{+104}\right):\\ \;\;\;\;2 + 4 \cdot \frac{x}{y}\\ \mathbf{else}:\\ \;\;\;\;2 + \frac{z}{y} \cdot -4\\ \end{array}\]
Alternative 3
Error12.1
Cost776
\[\begin{array}{l} \mathbf{if}\;y \leq -5.0165204552405096 \cdot 10^{+39} \lor \neg \left(y \leq 2.409903717142705 \cdot 10^{+92}\right):\\ \;\;\;\;2 + 4 \cdot \frac{x}{y}\\ \mathbf{else}:\\ \;\;\;\;4 \cdot \frac{x - z}{y}\\ \end{array}\]
Alternative 4
Error13.6
Cost776
\[\begin{array}{l} \mathbf{if}\;z \leq -1.1277552894287812 \cdot 10^{+164} \lor \neg \left(z \leq 9.10570446057653 \cdot 10^{+88}\right):\\ \;\;\;\;\frac{z}{y} \cdot -4\\ \mathbf{else}:\\ \;\;\;\;2 + 4 \cdot \frac{x}{y}\\ \end{array}\]
Alternative 5
Error29.9
Cost1604
\[\begin{array}{l} \mathbf{if}\;y \leq -2.8642440419412266 \cdot 10^{+38}:\\ \;\;\;\;2\\ \mathbf{elif}\;y \leq -9.265674590328694 \cdot 10^{-238}:\\ \;\;\;\;4 \cdot \frac{x}{y}\\ \mathbf{elif}\;y \leq 3.253206934821027 \cdot 10^{-20}:\\ \;\;\;\;\frac{z}{y} \cdot -4\\ \mathbf{elif}\;y \leq 1.2681581838857139 \cdot 10^{+90}:\\ \;\;\;\;4 \cdot \frac{x}{y}\\ \mathbf{else}:\\ \;\;\;\;2\\ \end{array}\]
Alternative 6
Error30.5
Cost962
\[\begin{array}{l} \mathbf{if}\;y \leq -1.279966576344936 \cdot 10^{+28}:\\ \;\;\;\;2\\ \mathbf{elif}\;y \leq 1.4524766039954287 \cdot 10^{+90}:\\ \;\;\;\;\frac{z}{y} \cdot -4\\ \mathbf{else}:\\ \;\;\;\;2\\ \end{array}\]
Alternative 7
Error36.6
Cost64
\[2\]
Alternative 8
Error57.7
Cost64
\[1\]

Error

Derivation

  1. Initial program 0.1

    \[1 + \frac{4 \cdot \left(\left(x + y \cdot 0.25\right) - z\right)}{y}\]
  2. Taylor expanded around 0 0.0

    \[\leadsto \color{blue}{\left(4 \cdot \frac{x}{y} + 2\right) - 4 \cdot \frac{z}{y}}\]
  3. Simplified0.0

    \[\leadsto \color{blue}{4 \cdot \frac{x - z}{y} + 2}\]
  4. Simplified0.0

    \[\leadsto \color{blue}{2 + 4 \cdot \frac{x - z}{y}}\]
  5. Final simplification0.0

    \[\leadsto 2 + 4 \cdot \frac{x - z}{y}\]

Reproduce

herbie shell --seed 2021044 
(FPCore (x y z)
  :name "Data.Array.Repa.Algorithms.ColorRamp:rampColorHotToCold from repa-algorithms-3.4.0.1, C"
  :precision binary64
  (+ 1.0 (/ (* 4.0 (- (+ x (* y 0.25)) z)) y)))