Average Error: 35.6 → 24.6
Time: 17.1s
Precision: 64
\[\sqrt{\frac{\left(x \cdot x + y \cdot y\right) + z \cdot z}{3.0}}\]
\[\begin{array}{l} \mathbf{if}\;y \le -2.0527597390065202 \cdot 10^{+155}:\\ \;\;\;\;\frac{\frac{-y}{\left|\sqrt[3]{3.0}\right|}}{\sqrt{\sqrt[3]{3.0}}}\\ \mathbf{elif}\;y \le 2.938087940417542 \cdot 10^{+109}:\\ \;\;\;\;\sqrt{\frac{z \cdot z + \left(x \cdot x + y \cdot y\right)}{3.0}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{y}{\sqrt[3]{\left|\sqrt[3]{3.0}\right|} \cdot \sqrt[3]{\left|\sqrt[3]{3.0}\right|}}}{\sqrt[3]{\left|\sqrt[3]{3.0}\right|}}}{\sqrt{\sqrt[3]{3.0}}}\\ \end{array}\]
\sqrt{\frac{\left(x \cdot x + y \cdot y\right) + z \cdot z}{3.0}}
\begin{array}{l}
\mathbf{if}\;y \le -2.0527597390065202 \cdot 10^{+155}:\\
\;\;\;\;\frac{\frac{-y}{\left|\sqrt[3]{3.0}\right|}}{\sqrt{\sqrt[3]{3.0}}}\\

\mathbf{elif}\;y \le 2.938087940417542 \cdot 10^{+109}:\\
\;\;\;\;\sqrt{\frac{z \cdot z + \left(x \cdot x + y \cdot y\right)}{3.0}}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{y}{\sqrt[3]{\left|\sqrt[3]{3.0}\right|} \cdot \sqrt[3]{\left|\sqrt[3]{3.0}\right|}}}{\sqrt[3]{\left|\sqrt[3]{3.0}\right|}}}{\sqrt{\sqrt[3]{3.0}}}\\

\end{array}
double f(double x, double y, double z) {
        double r43472125 = x;
        double r43472126 = r43472125 * r43472125;
        double r43472127 = y;
        double r43472128 = r43472127 * r43472127;
        double r43472129 = r43472126 + r43472128;
        double r43472130 = z;
        double r43472131 = r43472130 * r43472130;
        double r43472132 = r43472129 + r43472131;
        double r43472133 = 3.0;
        double r43472134 = r43472132 / r43472133;
        double r43472135 = sqrt(r43472134);
        return r43472135;
}

double f(double x, double y, double z) {
        double r43472136 = y;
        double r43472137 = -2.0527597390065202e+155;
        bool r43472138 = r43472136 <= r43472137;
        double r43472139 = -r43472136;
        double r43472140 = 3.0;
        double r43472141 = cbrt(r43472140);
        double r43472142 = fabs(r43472141);
        double r43472143 = r43472139 / r43472142;
        double r43472144 = sqrt(r43472141);
        double r43472145 = r43472143 / r43472144;
        double r43472146 = 2.938087940417542e+109;
        bool r43472147 = r43472136 <= r43472146;
        double r43472148 = z;
        double r43472149 = r43472148 * r43472148;
        double r43472150 = x;
        double r43472151 = r43472150 * r43472150;
        double r43472152 = r43472136 * r43472136;
        double r43472153 = r43472151 + r43472152;
        double r43472154 = r43472149 + r43472153;
        double r43472155 = r43472154 / r43472140;
        double r43472156 = sqrt(r43472155);
        double r43472157 = cbrt(r43472142);
        double r43472158 = r43472157 * r43472157;
        double r43472159 = r43472136 / r43472158;
        double r43472160 = r43472159 / r43472157;
        double r43472161 = r43472160 / r43472144;
        double r43472162 = r43472147 ? r43472156 : r43472161;
        double r43472163 = r43472138 ? r43472145 : r43472162;
        return r43472163;
}

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

Target

Original35.6
Target24.8
Herbie24.6
\[\begin{array}{l} \mathbf{if}\;z \lt -6.396479394109776 \cdot 10^{+136}:\\ \;\;\;\;\frac{-z}{\sqrt{3.0}}\\ \mathbf{elif}\;z \lt 7.320293694404182 \cdot 10^{+117}:\\ \;\;\;\;\frac{\sqrt{\left(z \cdot z + x \cdot x\right) + y \cdot y}}{\sqrt{3.0}}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{0.3333333333333333} \cdot z\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if y < -2.0527597390065202e+155

    1. Initial program 59.3

      \[\sqrt{\frac{\left(x \cdot x + y \cdot y\right) + z \cdot z}{3.0}}\]
    2. Using strategy rm
    3. Applied sqrt-div59.3

      \[\leadsto \color{blue}{\frac{\sqrt{\left(x \cdot x + y \cdot y\right) + z \cdot z}}{\sqrt{3.0}}}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt59.3

      \[\leadsto \frac{\sqrt{\left(x \cdot x + y \cdot y\right) + z \cdot z}}{\sqrt{\color{blue}{\left(\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}\right) \cdot \sqrt[3]{3.0}}}}\]
    6. Applied sqrt-prod59.3

      \[\leadsto \frac{\sqrt{\left(x \cdot x + y \cdot y\right) + z \cdot z}}{\color{blue}{\sqrt{\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}} \cdot \sqrt{\sqrt[3]{3.0}}}}\]
    7. Applied associate-/r*59.3

      \[\leadsto \color{blue}{\frac{\frac{\sqrt{\left(x \cdot x + y \cdot y\right) + z \cdot z}}{\sqrt{\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}}}}{\sqrt{\sqrt[3]{3.0}}}}\]
    8. Simplified59.3

      \[\leadsto \frac{\color{blue}{\frac{\sqrt{y \cdot y + \left(x \cdot x + z \cdot z\right)}}{\left|\sqrt[3]{3.0}\right|}}}{\sqrt{\sqrt[3]{3.0}}}\]
    9. Taylor expanded around -inf 15.9

      \[\leadsto \frac{\frac{\color{blue}{-1 \cdot y}}{\left|\sqrt[3]{3.0}\right|}}{\sqrt{\sqrt[3]{3.0}}}\]
    10. Simplified15.9

      \[\leadsto \frac{\frac{\color{blue}{-y}}{\left|\sqrt[3]{3.0}\right|}}{\sqrt{\sqrt[3]{3.0}}}\]

    if -2.0527597390065202e+155 < y < 2.938087940417542e+109

    1. Initial program 27.5

      \[\sqrt{\frac{\left(x \cdot x + y \cdot y\right) + z \cdot z}{3.0}}\]

    if 2.938087940417542e+109 < y

    1. Initial program 51.2

      \[\sqrt{\frac{\left(x \cdot x + y \cdot y\right) + z \cdot z}{3.0}}\]
    2. Using strategy rm
    3. Applied sqrt-div51.2

      \[\leadsto \color{blue}{\frac{\sqrt{\left(x \cdot x + y \cdot y\right) + z \cdot z}}{\sqrt{3.0}}}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt51.2

      \[\leadsto \frac{\sqrt{\left(x \cdot x + y \cdot y\right) + z \cdot z}}{\sqrt{\color{blue}{\left(\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}\right) \cdot \sqrt[3]{3.0}}}}\]
    6. Applied sqrt-prod51.2

      \[\leadsto \frac{\sqrt{\left(x \cdot x + y \cdot y\right) + z \cdot z}}{\color{blue}{\sqrt{\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}} \cdot \sqrt{\sqrt[3]{3.0}}}}\]
    7. Applied associate-/r*51.2

      \[\leadsto \color{blue}{\frac{\frac{\sqrt{\left(x \cdot x + y \cdot y\right) + z \cdot z}}{\sqrt{\sqrt[3]{3.0} \cdot \sqrt[3]{3.0}}}}{\sqrt{\sqrt[3]{3.0}}}}\]
    8. Simplified51.2

      \[\leadsto \frac{\color{blue}{\frac{\sqrt{y \cdot y + \left(x \cdot x + z \cdot z\right)}}{\left|\sqrt[3]{3.0}\right|}}}{\sqrt{\sqrt[3]{3.0}}}\]
    9. Taylor expanded around inf 19.0

      \[\leadsto \frac{\frac{\color{blue}{y}}{\left|\sqrt[3]{3.0}\right|}}{\sqrt{\sqrt[3]{3.0}}}\]
    10. Using strategy rm
    11. Applied add-cube-cbrt19.0

      \[\leadsto \frac{\frac{y}{\color{blue}{\left(\sqrt[3]{\left|\sqrt[3]{3.0}\right|} \cdot \sqrt[3]{\left|\sqrt[3]{3.0}\right|}\right) \cdot \sqrt[3]{\left|\sqrt[3]{3.0}\right|}}}}{\sqrt{\sqrt[3]{3.0}}}\]
    12. Applied associate-/r*19.1

      \[\leadsto \frac{\color{blue}{\frac{\frac{y}{\sqrt[3]{\left|\sqrt[3]{3.0}\right|} \cdot \sqrt[3]{\left|\sqrt[3]{3.0}\right|}}}{\sqrt[3]{\left|\sqrt[3]{3.0}\right|}}}}{\sqrt{\sqrt[3]{3.0}}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification24.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le -2.0527597390065202 \cdot 10^{+155}:\\ \;\;\;\;\frac{\frac{-y}{\left|\sqrt[3]{3.0}\right|}}{\sqrt{\sqrt[3]{3.0}}}\\ \mathbf{elif}\;y \le 2.938087940417542 \cdot 10^{+109}:\\ \;\;\;\;\sqrt{\frac{z \cdot z + \left(x \cdot x + y \cdot y\right)}{3.0}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{y}{\sqrt[3]{\left|\sqrt[3]{3.0}\right|} \cdot \sqrt[3]{\left|\sqrt[3]{3.0}\right|}}}{\sqrt[3]{\left|\sqrt[3]{3.0}\right|}}}{\sqrt{\sqrt[3]{3.0}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019165 
(FPCore (x y z)
  :name "Data.Array.Repa.Algorithms.Pixel:doubleRmsOfRGB8 from repa-algorithms-3.4.0.1"

  :herbie-target
  (if (< z -6.396479394109776e+136) (/ (- z) (sqrt 3.0)) (if (< z 7.320293694404182e+117) (/ (sqrt (+ (+ (* z z) (* x x)) (* y y))) (sqrt 3.0)) (* (sqrt 0.3333333333333333) z)))

  (sqrt (/ (+ (+ (* x x) (* y y)) (* z z)) 3.0)))