Average Error: 6.1 → 3.3
Time: 7.9s
Precision: 64
\[x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)\]
\[\begin{array}{l} \mathbf{if}\;z \cdot z \le 6.12322392683654523 \cdot 10^{304}:\\ \;\;\;\;x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)\\ \mathbf{else}:\\ \;\;\;\;x \cdot x - \left(\left(z + \sqrt{t}\right) \cdot \left(y \cdot 4\right)\right) \cdot \left(z - \sqrt{t}\right)\\ \end{array}\]
x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)
\begin{array}{l}
\mathbf{if}\;z \cdot z \le 6.12322392683654523 \cdot 10^{304}:\\
\;\;\;\;x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)\\

\mathbf{else}:\\
\;\;\;\;x \cdot x - \left(\left(z + \sqrt{t}\right) \cdot \left(y \cdot 4\right)\right) \cdot \left(z - \sqrt{t}\right)\\

\end{array}
double f(double x, double y, double z, double t) {
        double r699363 = x;
        double r699364 = r699363 * r699363;
        double r699365 = y;
        double r699366 = 4.0;
        double r699367 = r699365 * r699366;
        double r699368 = z;
        double r699369 = r699368 * r699368;
        double r699370 = t;
        double r699371 = r699369 - r699370;
        double r699372 = r699367 * r699371;
        double r699373 = r699364 - r699372;
        return r699373;
}

double f(double x, double y, double z, double t) {
        double r699374 = z;
        double r699375 = r699374 * r699374;
        double r699376 = 6.123223926836545e+304;
        bool r699377 = r699375 <= r699376;
        double r699378 = x;
        double r699379 = r699378 * r699378;
        double r699380 = y;
        double r699381 = 4.0;
        double r699382 = r699380 * r699381;
        double r699383 = t;
        double r699384 = r699375 - r699383;
        double r699385 = r699382 * r699384;
        double r699386 = r699379 - r699385;
        double r699387 = sqrt(r699383);
        double r699388 = r699374 + r699387;
        double r699389 = r699388 * r699382;
        double r699390 = r699374 - r699387;
        double r699391 = r699389 * r699390;
        double r699392 = r699379 - r699391;
        double r699393 = r699377 ? r699386 : r699392;
        return r699393;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original6.1
Target6.1
Herbie3.3
\[x \cdot x - 4 \cdot \left(y \cdot \left(z \cdot z - t\right)\right)\]

Derivation

  1. Split input into 2 regimes
  2. if (* z z) < 6.123223926836545e+304

    1. Initial program 0.1

      \[x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)\]

    if 6.123223926836545e+304 < (* z z)

    1. Initial program 62.7

      \[x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)\]
    2. Using strategy rm
    3. Applied flip--64.0

      \[\leadsto x \cdot x - \left(y \cdot 4\right) \cdot \color{blue}{\frac{\left(z \cdot z\right) \cdot \left(z \cdot z\right) - t \cdot t}{z \cdot z + t}}\]
    4. Applied associate-*r/64.0

      \[\leadsto x \cdot x - \color{blue}{\frac{\left(y \cdot 4\right) \cdot \left(\left(z \cdot z\right) \cdot \left(z \cdot z\right) - t \cdot t\right)}{z \cdot z + t}}\]
    5. Simplified64.0

      \[\leadsto x \cdot x - \frac{\color{blue}{\left(\left(y \cdot 4\right) \cdot \mathsf{fma}\left(z, z, t\right)\right) \cdot \left(z \cdot z - t\right)}}{z \cdot z + t}\]
    6. Using strategy rm
    7. Applied clear-num64.0

      \[\leadsto x \cdot x - \color{blue}{\frac{1}{\frac{z \cdot z + t}{\left(\left(y \cdot 4\right) \cdot \mathsf{fma}\left(z, z, t\right)\right) \cdot \left(z \cdot z - t\right)}}}\]
    8. Simplified62.7

      \[\leadsto x \cdot x - \frac{1}{\color{blue}{\frac{\frac{\mathsf{fma}\left(z, z, t\right)}{\left(y \cdot 4\right) \cdot \mathsf{fma}\left(z, z, t\right)}}{z \cdot z - t}}}\]
    9. Using strategy rm
    10. Applied add-sqr-sqrt63.3

      \[\leadsto x \cdot x - \frac{1}{\frac{\frac{\mathsf{fma}\left(z, z, t\right)}{\left(y \cdot 4\right) \cdot \mathsf{fma}\left(z, z, t\right)}}{z \cdot z - \color{blue}{\sqrt{t} \cdot \sqrt{t}}}}\]
    11. Applied difference-of-squares63.3

      \[\leadsto x \cdot x - \frac{1}{\frac{\frac{\mathsf{fma}\left(z, z, t\right)}{\left(y \cdot 4\right) \cdot \mathsf{fma}\left(z, z, t\right)}}{\color{blue}{\left(z + \sqrt{t}\right) \cdot \left(z - \sqrt{t}\right)}}}\]
    12. Applied *-un-lft-identity63.3

      \[\leadsto x \cdot x - \frac{1}{\frac{\frac{\color{blue}{1 \cdot \mathsf{fma}\left(z, z, t\right)}}{\left(y \cdot 4\right) \cdot \mathsf{fma}\left(z, z, t\right)}}{\left(z + \sqrt{t}\right) \cdot \left(z - \sqrt{t}\right)}}\]
    13. Applied times-frac63.3

      \[\leadsto x \cdot x - \frac{1}{\frac{\color{blue}{\frac{1}{y \cdot 4} \cdot \frac{\mathsf{fma}\left(z, z, t\right)}{\mathsf{fma}\left(z, z, t\right)}}}{\left(z + \sqrt{t}\right) \cdot \left(z - \sqrt{t}\right)}}\]
    14. Applied times-frac63.3

      \[\leadsto x \cdot x - \frac{1}{\color{blue}{\frac{\frac{1}{y \cdot 4}}{z + \sqrt{t}} \cdot \frac{\frac{\mathsf{fma}\left(z, z, t\right)}{\mathsf{fma}\left(z, z, t\right)}}{z - \sqrt{t}}}}\]
    15. Applied add-sqr-sqrt63.3

      \[\leadsto x \cdot x - \frac{\color{blue}{\sqrt{1} \cdot \sqrt{1}}}{\frac{\frac{1}{y \cdot 4}}{z + \sqrt{t}} \cdot \frac{\frac{\mathsf{fma}\left(z, z, t\right)}{\mathsf{fma}\left(z, z, t\right)}}{z - \sqrt{t}}}\]
    16. Applied times-frac63.3

      \[\leadsto x \cdot x - \color{blue}{\frac{\sqrt{1}}{\frac{\frac{1}{y \cdot 4}}{z + \sqrt{t}}} \cdot \frac{\sqrt{1}}{\frac{\frac{\mathsf{fma}\left(z, z, t\right)}{\mathsf{fma}\left(z, z, t\right)}}{z - \sqrt{t}}}}\]
    17. Simplified63.3

      \[\leadsto x \cdot x - \color{blue}{\left(\left(z + \sqrt{t}\right) \cdot \left(y \cdot 4\right)\right)} \cdot \frac{\sqrt{1}}{\frac{\frac{\mathsf{fma}\left(z, z, t\right)}{\mathsf{fma}\left(z, z, t\right)}}{z - \sqrt{t}}}\]
    18. Simplified33.7

      \[\leadsto x \cdot x - \left(\left(z + \sqrt{t}\right) \cdot \left(y \cdot 4\right)\right) \cdot \color{blue}{\left(z - \sqrt{t}\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification3.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \cdot z \le 6.12322392683654523 \cdot 10^{304}:\\ \;\;\;\;x \cdot x - \left(y \cdot 4\right) \cdot \left(z \cdot z - t\right)\\ \mathbf{else}:\\ \;\;\;\;x \cdot x - \left(\left(z + \sqrt{t}\right) \cdot \left(y \cdot 4\right)\right) \cdot \left(z - \sqrt{t}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020047 +o rules:numerics
(FPCore (x y z t)
  :name "Graphics.Rasterific.Shading:$sradialGradientWithFocusShader from Rasterific-0.6.1, B"
  :precision binary64

  :herbie-target
  (- (* x x) (* 4 (* y (- (* z z) t))))

  (- (* x x) (* (* y 4) (- (* z z) t))))