Average Error: 4.9 → 4.9
Time: 22.8s
Precision: 64
\[\left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\]
\[\left(b \cdot c - \left(4.0 \cdot \left(i \cdot x\right) + \sqrt{27.0} \cdot \left(\left(j \cdot k\right) \cdot \sqrt{27.0}\right)\right)\right) + t \cdot \left(\left(z \cdot x\right) \cdot \left(18.0 \cdot y\right) - 4.0 \cdot a\right)\]
\left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k
\left(b \cdot c - \left(4.0 \cdot \left(i \cdot x\right) + \sqrt{27.0} \cdot \left(\left(j \cdot k\right) \cdot \sqrt{27.0}\right)\right)\right) + t \cdot \left(\left(z \cdot x\right) \cdot \left(18.0 \cdot y\right) - 4.0 \cdot a\right)
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r35533847 = x;
        double r35533848 = 18.0;
        double r35533849 = r35533847 * r35533848;
        double r35533850 = y;
        double r35533851 = r35533849 * r35533850;
        double r35533852 = z;
        double r35533853 = r35533851 * r35533852;
        double r35533854 = t;
        double r35533855 = r35533853 * r35533854;
        double r35533856 = a;
        double r35533857 = 4.0;
        double r35533858 = r35533856 * r35533857;
        double r35533859 = r35533858 * r35533854;
        double r35533860 = r35533855 - r35533859;
        double r35533861 = b;
        double r35533862 = c;
        double r35533863 = r35533861 * r35533862;
        double r35533864 = r35533860 + r35533863;
        double r35533865 = r35533847 * r35533857;
        double r35533866 = i;
        double r35533867 = r35533865 * r35533866;
        double r35533868 = r35533864 - r35533867;
        double r35533869 = j;
        double r35533870 = 27.0;
        double r35533871 = r35533869 * r35533870;
        double r35533872 = k;
        double r35533873 = r35533871 * r35533872;
        double r35533874 = r35533868 - r35533873;
        return r35533874;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r35533875 = b;
        double r35533876 = c;
        double r35533877 = r35533875 * r35533876;
        double r35533878 = 4.0;
        double r35533879 = i;
        double r35533880 = x;
        double r35533881 = r35533879 * r35533880;
        double r35533882 = r35533878 * r35533881;
        double r35533883 = 27.0;
        double r35533884 = sqrt(r35533883);
        double r35533885 = j;
        double r35533886 = k;
        double r35533887 = r35533885 * r35533886;
        double r35533888 = r35533887 * r35533884;
        double r35533889 = r35533884 * r35533888;
        double r35533890 = r35533882 + r35533889;
        double r35533891 = r35533877 - r35533890;
        double r35533892 = t;
        double r35533893 = z;
        double r35533894 = r35533893 * r35533880;
        double r35533895 = 18.0;
        double r35533896 = y;
        double r35533897 = r35533895 * r35533896;
        double r35533898 = r35533894 * r35533897;
        double r35533899 = a;
        double r35533900 = r35533878 * r35533899;
        double r35533901 = r35533898 - r35533900;
        double r35533902 = r35533892 * r35533901;
        double r35533903 = r35533891 + r35533902;
        return r35533903;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus i

Bits error versus j

Bits error versus k

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original4.9
Target1.5
Herbie4.9
\[\begin{array}{l} \mathbf{if}\;t \lt -1.6210815397541398 \cdot 10^{-69}:\\ \;\;\;\;\left(\left(18.0 \cdot t\right) \cdot \left(\left(x \cdot y\right) \cdot z\right) - \left(a \cdot t + i \cdot x\right) \cdot 4.0\right) - \left(\left(k \cdot j\right) \cdot 27.0 - c \cdot b\right)\\ \mathbf{elif}\;t \lt 165.68027943805222:\\ \;\;\;\;\left(\left(18.0 \cdot y\right) \cdot \left(x \cdot \left(z \cdot t\right)\right) - \left(a \cdot t + i \cdot x\right) \cdot 4.0\right) + \left(c \cdot b - 27.0 \cdot \left(k \cdot j\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(18.0 \cdot t\right) \cdot \left(\left(x \cdot y\right) \cdot z\right) - \left(a \cdot t + i \cdot x\right) \cdot 4.0\right) - \left(\left(k \cdot j\right) \cdot 27.0 - c \cdot b\right)\\ \end{array}\]

Derivation

  1. Initial program 4.9

    \[\left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(j \cdot 27.0\right) \cdot k\]
  2. Simplified5.0

    \[\leadsto \color{blue}{\left(b \cdot c - \left(k \cdot \left(j \cdot 27.0\right) + \left(i \cdot x\right) \cdot 4.0\right)\right) + \left(\left(y \cdot x\right) \cdot \left(z \cdot 18.0\right) - a \cdot 4.0\right) \cdot t}\]
  3. Taylor expanded around inf 5.8

    \[\leadsto \left(b \cdot c - \left(k \cdot \left(j \cdot 27.0\right) + \left(i \cdot x\right) \cdot 4.0\right)\right) + \left(\color{blue}{18.0 \cdot \left(x \cdot \left(z \cdot y\right)\right)} - a \cdot 4.0\right) \cdot t\]
  4. Taylor expanded around inf 5.7

    \[\leadsto \left(b \cdot c - \left(k \cdot \left(j \cdot 27.0\right) + \left(i \cdot x\right) \cdot 4.0\right)\right) + \color{blue}{\left(18.0 \cdot \left(t \cdot \left(x \cdot \left(z \cdot y\right)\right)\right) - 4.0 \cdot \left(t \cdot a\right)\right)}\]
  5. Simplified5.0

    \[\leadsto \left(b \cdot c - \left(k \cdot \left(j \cdot 27.0\right) + \left(i \cdot x\right) \cdot 4.0\right)\right) + \color{blue}{t \cdot \left(\left(18.0 \cdot y\right) \cdot \left(x \cdot z\right) - 4.0 \cdot a\right)}\]
  6. Taylor expanded around 0 4.9

    \[\leadsto \left(b \cdot c - \left(\color{blue}{27.0 \cdot \left(j \cdot k\right)} + \left(i \cdot x\right) \cdot 4.0\right)\right) + t \cdot \left(\left(18.0 \cdot y\right) \cdot \left(x \cdot z\right) - 4.0 \cdot a\right)\]
  7. Using strategy rm
  8. Applied add-sqr-sqrt4.9

    \[\leadsto \left(b \cdot c - \left(\color{blue}{\left(\sqrt{27.0} \cdot \sqrt{27.0}\right)} \cdot \left(j \cdot k\right) + \left(i \cdot x\right) \cdot 4.0\right)\right) + t \cdot \left(\left(18.0 \cdot y\right) \cdot \left(x \cdot z\right) - 4.0 \cdot a\right)\]
  9. Applied associate-*l*4.9

    \[\leadsto \left(b \cdot c - \left(\color{blue}{\sqrt{27.0} \cdot \left(\sqrt{27.0} \cdot \left(j \cdot k\right)\right)} + \left(i \cdot x\right) \cdot 4.0\right)\right) + t \cdot \left(\left(18.0 \cdot y\right) \cdot \left(x \cdot z\right) - 4.0 \cdot a\right)\]
  10. Final simplification4.9

    \[\leadsto \left(b \cdot c - \left(4.0 \cdot \left(i \cdot x\right) + \sqrt{27.0} \cdot \left(\left(j \cdot k\right) \cdot \sqrt{27.0}\right)\right)\right) + t \cdot \left(\left(z \cdot x\right) \cdot \left(18.0 \cdot y\right) - 4.0 \cdot a\right)\]

Reproduce

herbie shell --seed 2019158 
(FPCore (x y z t a b c i j k)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1, E"

  :herbie-target
  (if (< t -1.6210815397541398e-69) (- (- (* (* 18.0 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4.0)) (- (* (* k j) 27.0) (* c b))) (if (< t 165.68027943805222) (+ (- (* (* 18.0 y) (* x (* z t))) (* (+ (* a t) (* i x)) 4.0)) (- (* c b) (* 27.0 (* k j)))) (- (- (* (* 18.0 t) (* (* x y) z)) (* (+ (* a t) (* i x)) 4.0)) (- (* (* k j) 27.0) (* c b)))))

  (- (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) (* (* j 27.0) k)))