Average Error: 5.1 → 2.1
Time: 21.6s
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\]
\[\begin{array}{l} \mathbf{if}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i = -\infty:\\ \;\;\;\;\left(\left(c \cdot b + \left(-t\right) \cdot \left(a \cdot 4.0\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(k \cdot 27.0\right) \cdot j\\ \mathbf{elif}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i \le 8.513289245050075 \cdot 10^{+301}:\\ \;\;\;\;t \cdot \left(\left(y \cdot x\right) \cdot \left(z \cdot 18.0\right) - a \cdot 4.0\right) + \left(c \cdot b - \left(\left(27.0 \cdot j\right) \cdot k + 4.0 \cdot \left(x \cdot i\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(c \cdot b + \left(e^{\log \left(\left(x \cdot 18.0\right) \cdot \left(\left(t \cdot z\right) \cdot y\right)\right)} - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\\ \end{array}\]
\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
\begin{array}{l}
\mathbf{if}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i = -\infty:\\
\;\;\;\;\left(\left(c \cdot b + \left(-t\right) \cdot \left(a \cdot 4.0\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(k \cdot 27.0\right) \cdot j\\

\mathbf{elif}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i \le 8.513289245050075 \cdot 10^{+301}:\\
\;\;\;\;t \cdot \left(\left(y \cdot x\right) \cdot \left(z \cdot 18.0\right) - a \cdot 4.0\right) + \left(c \cdot b - \left(\left(27.0 \cdot j\right) \cdot k + 4.0 \cdot \left(x \cdot i\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(c \cdot b + \left(e^{\log \left(\left(x \cdot 18.0\right) \cdot \left(\left(t \cdot z\right) \cdot y\right)\right)} - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r41219838 = x;
        double r41219839 = 18.0;
        double r41219840 = r41219838 * r41219839;
        double r41219841 = y;
        double r41219842 = r41219840 * r41219841;
        double r41219843 = z;
        double r41219844 = r41219842 * r41219843;
        double r41219845 = t;
        double r41219846 = r41219844 * r41219845;
        double r41219847 = a;
        double r41219848 = 4.0;
        double r41219849 = r41219847 * r41219848;
        double r41219850 = r41219849 * r41219845;
        double r41219851 = r41219846 - r41219850;
        double r41219852 = b;
        double r41219853 = c;
        double r41219854 = r41219852 * r41219853;
        double r41219855 = r41219851 + r41219854;
        double r41219856 = r41219838 * r41219848;
        double r41219857 = i;
        double r41219858 = r41219856 * r41219857;
        double r41219859 = r41219855 - r41219858;
        double r41219860 = j;
        double r41219861 = 27.0;
        double r41219862 = r41219860 * r41219861;
        double r41219863 = k;
        double r41219864 = r41219862 * r41219863;
        double r41219865 = r41219859 - r41219864;
        return r41219865;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r41219866 = t;
        double r41219867 = x;
        double r41219868 = 18.0;
        double r41219869 = r41219867 * r41219868;
        double r41219870 = y;
        double r41219871 = r41219869 * r41219870;
        double r41219872 = z;
        double r41219873 = r41219871 * r41219872;
        double r41219874 = r41219866 * r41219873;
        double r41219875 = a;
        double r41219876 = 4.0;
        double r41219877 = r41219875 * r41219876;
        double r41219878 = r41219877 * r41219866;
        double r41219879 = r41219874 - r41219878;
        double r41219880 = c;
        double r41219881 = b;
        double r41219882 = r41219880 * r41219881;
        double r41219883 = r41219879 + r41219882;
        double r41219884 = r41219867 * r41219876;
        double r41219885 = i;
        double r41219886 = r41219884 * r41219885;
        double r41219887 = r41219883 - r41219886;
        double r41219888 = -inf.0;
        bool r41219889 = r41219887 <= r41219888;
        double r41219890 = -r41219866;
        double r41219891 = r41219890 * r41219877;
        double r41219892 = r41219882 + r41219891;
        double r41219893 = r41219892 - r41219886;
        double r41219894 = k;
        double r41219895 = 27.0;
        double r41219896 = r41219894 * r41219895;
        double r41219897 = j;
        double r41219898 = r41219896 * r41219897;
        double r41219899 = r41219893 - r41219898;
        double r41219900 = 8.513289245050075e+301;
        bool r41219901 = r41219887 <= r41219900;
        double r41219902 = r41219870 * r41219867;
        double r41219903 = r41219872 * r41219868;
        double r41219904 = r41219902 * r41219903;
        double r41219905 = r41219904 - r41219877;
        double r41219906 = r41219866 * r41219905;
        double r41219907 = r41219895 * r41219897;
        double r41219908 = r41219907 * r41219894;
        double r41219909 = r41219867 * r41219885;
        double r41219910 = r41219876 * r41219909;
        double r41219911 = r41219908 + r41219910;
        double r41219912 = r41219882 - r41219911;
        double r41219913 = r41219906 + r41219912;
        double r41219914 = r41219866 * r41219872;
        double r41219915 = r41219914 * r41219870;
        double r41219916 = r41219869 * r41219915;
        double r41219917 = log(r41219916);
        double r41219918 = exp(r41219917);
        double r41219919 = r41219918 - r41219878;
        double r41219920 = r41219882 + r41219919;
        double r41219921 = r41219920 - r41219886;
        double r41219922 = r41219897 * r41219894;
        double r41219923 = r41219895 * r41219922;
        double r41219924 = r41219921 - r41219923;
        double r41219925 = r41219901 ? r41219913 : r41219924;
        double r41219926 = r41219889 ? r41219899 : r41219925;
        return r41219926;
}

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

Original5.1
Target1.5
Herbie2.1
\[\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. Split input into 3 regimes
  2. if (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < -inf.0

    1. Initial program 60.6

      \[\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. Using strategy rm
    3. Applied associate-*l*60.6

      \[\leadsto \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) - \color{blue}{j \cdot \left(27.0 \cdot k\right)}\]
    4. Taylor expanded around 0 30.8

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

    if -inf.0 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < 8.513289245050075e+301

    1. Initial program 0.4

      \[\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. Simplified0.4

      \[\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}\]

    if 8.513289245050075e+301 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i))

    1. Initial program 48.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. Taylor expanded around 0 48.9

      \[\leadsto \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) - \color{blue}{27.0 \cdot \left(j \cdot k\right)}\]
    3. Using strategy rm
    4. Applied add-exp-log54.3

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) \cdot \color{blue}{e^{\log t}} - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\]
    5. Applied add-exp-log56.6

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot \color{blue}{e^{\log z}}\right) \cdot e^{\log t} - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\]
    6. Applied add-exp-log57.7

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18.0\right) \cdot \color{blue}{e^{\log y}}\right) \cdot e^{\log z}\right) \cdot e^{\log t} - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\]
    7. Applied add-exp-log57.7

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot \color{blue}{e^{\log 18.0}}\right) \cdot e^{\log y}\right) \cdot e^{\log z}\right) \cdot e^{\log t} - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\]
    8. Applied add-exp-log58.4

      \[\leadsto \left(\left(\left(\left(\left(\left(\color{blue}{e^{\log x}} \cdot e^{\log 18.0}\right) \cdot e^{\log y}\right) \cdot e^{\log z}\right) \cdot e^{\log t} - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\]
    9. Applied prod-exp58.4

      \[\leadsto \left(\left(\left(\left(\left(\color{blue}{e^{\log x + \log 18.0}} \cdot e^{\log y}\right) \cdot e^{\log z}\right) \cdot e^{\log t} - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\]
    10. Applied prod-exp58.4

      \[\leadsto \left(\left(\left(\left(\color{blue}{e^{\left(\log x + \log 18.0\right) + \log y}} \cdot e^{\log z}\right) \cdot e^{\log t} - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\]
    11. Applied prod-exp56.9

      \[\leadsto \left(\left(\left(\color{blue}{e^{\left(\left(\log x + \log 18.0\right) + \log y\right) + \log z}} \cdot e^{\log t} - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\]
    12. Applied prod-exp52.2

      \[\leadsto \left(\left(\left(\color{blue}{e^{\left(\left(\left(\log x + \log 18.0\right) + \log y\right) + \log z\right) + \log t}} - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\]
    13. Simplified9.4

      \[\leadsto \left(\left(\left(e^{\color{blue}{\log \left(\left(18.0 \cdot x\right) \cdot \left(y \cdot \left(t \cdot z\right)\right)\right)}} - \left(a \cdot 4.0\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification2.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i = -\infty:\\ \;\;\;\;\left(\left(c \cdot b + \left(-t\right) \cdot \left(a \cdot 4.0\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - \left(k \cdot 27.0\right) \cdot j\\ \mathbf{elif}\;\left(\left(t \cdot \left(\left(\left(x \cdot 18.0\right) \cdot y\right) \cdot z\right) - \left(a \cdot 4.0\right) \cdot t\right) + c \cdot b\right) - \left(x \cdot 4.0\right) \cdot i \le 8.513289245050075 \cdot 10^{+301}:\\ \;\;\;\;t \cdot \left(\left(y \cdot x\right) \cdot \left(z \cdot 18.0\right) - a \cdot 4.0\right) + \left(c \cdot b - \left(\left(27.0 \cdot j\right) \cdot k + 4.0 \cdot \left(x \cdot i\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(c \cdot b + \left(e^{\log \left(\left(x \cdot 18.0\right) \cdot \left(\left(t \cdot z\right) \cdot y\right)\right)} - \left(a \cdot 4.0\right) \cdot t\right)\right) - \left(x \cdot 4.0\right) \cdot i\right) - 27.0 \cdot \left(j \cdot k\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019164 
(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)))