Average Error: 5.8 → 6.3
Time: 33.1s
Precision: 64
\[\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
\[\begin{array}{l} \mathbf{if}\;\left(j \cdot 27\right) \cdot k \le -4.540980572012251526114420073985087439812 \cdot 10^{-316} \lor \neg \left(\left(j \cdot 27\right) \cdot k \le 2161642607386816256\right) \land \left(j \cdot 27\right) \cdot k \le 1.732330144710722980399686902944367574721 \cdot 10^{167}:\\ \;\;\;\;\left(\left(\left(18 \cdot \left(\left(t \cdot x\right) \cdot \left(z \cdot y\right)\right) - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \sqrt{\left(j \cdot 27\right) \cdot k} \cdot \sqrt{\left(j \cdot 27\right) \cdot k}\\ \end{array}\]
\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k
\begin{array}{l}
\mathbf{if}\;\left(j \cdot 27\right) \cdot k \le -4.540980572012251526114420073985087439812 \cdot 10^{-316} \lor \neg \left(\left(j \cdot 27\right) \cdot k \le 2161642607386816256\right) \land \left(j \cdot 27\right) \cdot k \le 1.732330144710722980399686902944367574721 \cdot 10^{167}:\\
\;\;\;\;\left(\left(\left(18 \cdot \left(\left(t \cdot x\right) \cdot \left(z \cdot y\right)\right) - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \sqrt{\left(j \cdot 27\right) \cdot k} \cdot \sqrt{\left(j \cdot 27\right) \cdot k}\\

\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 r471024 = x;
        double r471025 = 18.0;
        double r471026 = r471024 * r471025;
        double r471027 = y;
        double r471028 = r471026 * r471027;
        double r471029 = z;
        double r471030 = r471028 * r471029;
        double r471031 = t;
        double r471032 = r471030 * r471031;
        double r471033 = a;
        double r471034 = 4.0;
        double r471035 = r471033 * r471034;
        double r471036 = r471035 * r471031;
        double r471037 = r471032 - r471036;
        double r471038 = b;
        double r471039 = c;
        double r471040 = r471038 * r471039;
        double r471041 = r471037 + r471040;
        double r471042 = r471024 * r471034;
        double r471043 = i;
        double r471044 = r471042 * r471043;
        double r471045 = r471041 - r471044;
        double r471046 = j;
        double r471047 = 27.0;
        double r471048 = r471046 * r471047;
        double r471049 = k;
        double r471050 = r471048 * r471049;
        double r471051 = r471045 - r471050;
        return r471051;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r471052 = j;
        double r471053 = 27.0;
        double r471054 = r471052 * r471053;
        double r471055 = k;
        double r471056 = r471054 * r471055;
        double r471057 = -4.5409805720123e-316;
        bool r471058 = r471056 <= r471057;
        double r471059 = 2.1616426073868163e+18;
        bool r471060 = r471056 <= r471059;
        double r471061 = !r471060;
        double r471062 = 1.732330144710723e+167;
        bool r471063 = r471056 <= r471062;
        bool r471064 = r471061 && r471063;
        bool r471065 = r471058 || r471064;
        double r471066 = 18.0;
        double r471067 = t;
        double r471068 = x;
        double r471069 = r471067 * r471068;
        double r471070 = z;
        double r471071 = y;
        double r471072 = r471070 * r471071;
        double r471073 = r471069 * r471072;
        double r471074 = r471066 * r471073;
        double r471075 = a;
        double r471076 = 4.0;
        double r471077 = r471075 * r471076;
        double r471078 = r471077 * r471067;
        double r471079 = r471074 - r471078;
        double r471080 = b;
        double r471081 = c;
        double r471082 = r471080 * r471081;
        double r471083 = r471079 + r471082;
        double r471084 = r471068 * r471076;
        double r471085 = i;
        double r471086 = r471084 * r471085;
        double r471087 = r471083 - r471086;
        double r471088 = r471087 - r471056;
        double r471089 = r471068 * r471066;
        double r471090 = r471089 * r471071;
        double r471091 = r471090 * r471070;
        double r471092 = r471091 * r471067;
        double r471093 = r471092 - r471078;
        double r471094 = r471093 + r471082;
        double r471095 = r471094 - r471086;
        double r471096 = sqrt(r471056);
        double r471097 = r471096 * r471096;
        double r471098 = r471095 - r471097;
        double r471099 = r471065 ? r471088 : r471098;
        return r471099;
}

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.8
Target1.6
Herbie6.3
\[\begin{array}{l} \mathbf{if}\;t \lt -1.62108153975413982700795070153457058168 \cdot 10^{-69}:\\ \;\;\;\;\left(\left(18 \cdot t\right) \cdot \left(\left(x \cdot y\right) \cdot z\right) - \left(a \cdot t + i \cdot x\right) \cdot 4\right) - \left(\left(k \cdot j\right) \cdot 27 - c \cdot b\right)\\ \mathbf{elif}\;t \lt 165.6802794380522243500308832153677940369:\\ \;\;\;\;\left(\left(18 \cdot y\right) \cdot \left(x \cdot \left(z \cdot t\right)\right) - \left(a \cdot t + i \cdot x\right) \cdot 4\right) + \left(c \cdot b - 27 \cdot \left(k \cdot j\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(18 \cdot t\right) \cdot \left(\left(x \cdot y\right) \cdot z\right) - \left(a \cdot t + i \cdot x\right) \cdot 4\right) - \left(\left(k \cdot j\right) \cdot 27 - c \cdot b\right)\\ \end{array}\]

Derivation

  1. Split input into 2 regimes
  2. if (* (* j 27.0) k) < -4.5409805720123e-316 or 2.1616426073868163e+18 < (* (* j 27.0) k) < 1.732330144710723e+167

    1. Initial program 5.9

      \[\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    2. Using strategy rm
    3. Applied pow15.9

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot \color{blue}{{t}^{1}} - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    4. Applied pow15.9

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot \color{blue}{{z}^{1}}\right) \cdot {t}^{1} - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    5. Applied pow15.9

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot \color{blue}{{y}^{1}}\right) \cdot {z}^{1}\right) \cdot {t}^{1} - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    6. Applied pow15.9

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot \color{blue}{{18}^{1}}\right) \cdot {y}^{1}\right) \cdot {z}^{1}\right) \cdot {t}^{1} - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    7. Applied pow15.9

      \[\leadsto \left(\left(\left(\left(\left(\left(\color{blue}{{x}^{1}} \cdot {18}^{1}\right) \cdot {y}^{1}\right) \cdot {z}^{1}\right) \cdot {t}^{1} - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    8. Applied pow-prod-down5.9

      \[\leadsto \left(\left(\left(\left(\left(\color{blue}{{\left(x \cdot 18\right)}^{1}} \cdot {y}^{1}\right) \cdot {z}^{1}\right) \cdot {t}^{1} - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    9. Applied pow-prod-down5.9

      \[\leadsto \left(\left(\left(\left(\color{blue}{{\left(\left(x \cdot 18\right) \cdot y\right)}^{1}} \cdot {z}^{1}\right) \cdot {t}^{1} - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    10. Applied pow-prod-down5.9

      \[\leadsto \left(\left(\left(\color{blue}{{\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right)}^{1}} \cdot {t}^{1} - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    11. Applied pow-prod-down5.9

      \[\leadsto \left(\left(\left(\color{blue}{{\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t\right)}^{1}} - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    12. Simplified6.1

      \[\leadsto \left(\left(\left({\color{blue}{\left(18 \cdot \left(t \cdot \left(x \cdot \left(z \cdot y\right)\right)\right)\right)}}^{1} - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    13. Using strategy rm
    14. Applied associate-*r*6.3

      \[\leadsto \left(\left(\left({\left(18 \cdot \color{blue}{\left(\left(t \cdot x\right) \cdot \left(z \cdot y\right)\right)}\right)}^{1} - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]

    if -4.5409805720123e-316 < (* (* j 27.0) k) < 2.1616426073868163e+18 or 1.732330144710723e+167 < (* (* j 27.0) k)

    1. Initial program 5.6

      \[\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt6.2

      \[\leadsto \left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \color{blue}{\sqrt{\left(j \cdot 27\right) \cdot k} \cdot \sqrt{\left(j \cdot 27\right) \cdot k}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification6.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\left(j \cdot 27\right) \cdot k \le -4.540980572012251526114420073985087439812 \cdot 10^{-316} \lor \neg \left(\left(j \cdot 27\right) \cdot k \le 2161642607386816256\right) \land \left(j \cdot 27\right) \cdot k \le 1.732330144710722980399686902944367574721 \cdot 10^{167}:\\ \;\;\;\;\left(\left(\left(18 \cdot \left(\left(t \cdot x\right) \cdot \left(z \cdot y\right)\right) - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \left(j \cdot 27\right) \cdot k\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right) + b \cdot c\right) - \left(x \cdot 4\right) \cdot i\right) - \sqrt{\left(j \cdot 27\right) \cdot k} \cdot \sqrt{\left(j \cdot 27\right) \cdot k}\\ \end{array}\]

Reproduce

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

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

  (- (- (+ (- (* (* (* (* x 18) y) z) t) (* (* a 4) t)) (* b c)) (* (* x 4) i)) (* (* j 27) k)))