Average Error: 5.8 → 5.7
Time: 20.8s
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\]
\[\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(x \cdot 4\right) \cdot i\right)\right) - 27 \cdot \left(j \cdot k\right)\]
\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
\left(t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(x \cdot 4\right) \cdot i\right)\right) - 27 \cdot \left(j \cdot k\right)
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r501154 = x;
        double r501155 = 18.0;
        double r501156 = r501154 * r501155;
        double r501157 = y;
        double r501158 = r501156 * r501157;
        double r501159 = z;
        double r501160 = r501158 * r501159;
        double r501161 = t;
        double r501162 = r501160 * r501161;
        double r501163 = a;
        double r501164 = 4.0;
        double r501165 = r501163 * r501164;
        double r501166 = r501165 * r501161;
        double r501167 = r501162 - r501166;
        double r501168 = b;
        double r501169 = c;
        double r501170 = r501168 * r501169;
        double r501171 = r501167 + r501170;
        double r501172 = r501154 * r501164;
        double r501173 = i;
        double r501174 = r501172 * r501173;
        double r501175 = r501171 - r501174;
        double r501176 = j;
        double r501177 = 27.0;
        double r501178 = r501176 * r501177;
        double r501179 = k;
        double r501180 = r501178 * r501179;
        double r501181 = r501175 - r501180;
        return r501181;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r501182 = t;
        double r501183 = x;
        double r501184 = 18.0;
        double r501185 = r501183 * r501184;
        double r501186 = y;
        double r501187 = r501185 * r501186;
        double r501188 = z;
        double r501189 = r501187 * r501188;
        double r501190 = a;
        double r501191 = 4.0;
        double r501192 = r501190 * r501191;
        double r501193 = r501189 - r501192;
        double r501194 = r501182 * r501193;
        double r501195 = b;
        double r501196 = c;
        double r501197 = r501195 * r501196;
        double r501198 = r501183 * r501191;
        double r501199 = i;
        double r501200 = r501198 * r501199;
        double r501201 = r501197 - r501200;
        double r501202 = r501194 + r501201;
        double r501203 = 27.0;
        double r501204 = j;
        double r501205 = k;
        double r501206 = r501204 * r501205;
        double r501207 = r501203 * r501206;
        double r501208 = r501202 - r501207;
        return r501208;
}

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.5
Herbie5.7
\[\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 (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < -1.0761333188935318e+305 or 2.1127107260805905e+291 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i))

    1. Initial program 48.2

      \[\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. Taylor expanded around inf 33.1

      \[\leadsto \left(\left(\left(\color{blue}{18 \cdot \left(t \cdot \left(x \cdot \left(z \cdot y\right)\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\]
    3. Simplified6.4

      \[\leadsto \left(\left(\left(\color{blue}{\left(\left(\left(t \cdot 18\right) \cdot x\right) \cdot z\right) \cdot y} - \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. Using strategy rm
    5. Applied pow16.4

      \[\leadsto \left(\left(\left(\left(\left(\left(t \cdot 18\right) \cdot x\right) \cdot z\right) \cdot y - \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 \color{blue}{{k}^{1}}\]
    6. Applied pow16.4

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

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

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

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

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

    if -1.0761333188935318e+305 < (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) < 2.1127107260805905e+291

    1. Initial program 0.3

      \[\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 associate-*l*0.3

      \[\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}{j \cdot \left(27 \cdot k\right)}\]
    4. Simplified0.3

      \[\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) - j \cdot \color{blue}{\left(k \cdot 27\right)}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification5.7

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

Reproduce

herbie shell --seed 2019291 
(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.680279438052224) (+ (- (* (* 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)))