Average Error: 5.2 → 4.7
Time: 7.3s
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}\;t \le -4.58511975214130373 \cdot 10^{-202}:\\ \;\;\;\;t \cdot \left(\left(x \cdot \left(18 \cdot y\right)\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\ \mathbf{elif}\;t \le 1.24034573106726284 \cdot 10^{-70}:\\ \;\;\;\;t \cdot \left(0 - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t \cdot \left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right) - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\ \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}\;t \le -4.58511975214130373 \cdot 10^{-202}:\\
\;\;\;\;t \cdot \left(\left(x \cdot \left(18 \cdot y\right)\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\

\mathbf{elif}\;t \le 1.24034573106726284 \cdot 10^{-70}:\\
\;\;\;\;t \cdot \left(0 - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;t \cdot \left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right) - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\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 r754180 = x;
        double r754181 = 18.0;
        double r754182 = r754180 * r754181;
        double r754183 = y;
        double r754184 = r754182 * r754183;
        double r754185 = z;
        double r754186 = r754184 * r754185;
        double r754187 = t;
        double r754188 = r754186 * r754187;
        double r754189 = a;
        double r754190 = 4.0;
        double r754191 = r754189 * r754190;
        double r754192 = r754191 * r754187;
        double r754193 = r754188 - r754192;
        double r754194 = b;
        double r754195 = c;
        double r754196 = r754194 * r754195;
        double r754197 = r754193 + r754196;
        double r754198 = r754180 * r754190;
        double r754199 = i;
        double r754200 = r754198 * r754199;
        double r754201 = r754197 - r754200;
        double r754202 = j;
        double r754203 = 27.0;
        double r754204 = r754202 * r754203;
        double r754205 = k;
        double r754206 = r754204 * r754205;
        double r754207 = r754201 - r754206;
        return r754207;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r754208 = t;
        double r754209 = -4.585119752141304e-202;
        bool r754210 = r754208 <= r754209;
        double r754211 = x;
        double r754212 = 18.0;
        double r754213 = y;
        double r754214 = r754212 * r754213;
        double r754215 = r754211 * r754214;
        double r754216 = z;
        double r754217 = r754215 * r754216;
        double r754218 = a;
        double r754219 = 4.0;
        double r754220 = r754218 * r754219;
        double r754221 = r754217 - r754220;
        double r754222 = r754208 * r754221;
        double r754223 = b;
        double r754224 = c;
        double r754225 = r754223 * r754224;
        double r754226 = r754211 * r754219;
        double r754227 = i;
        double r754228 = r754226 * r754227;
        double r754229 = j;
        double r754230 = 27.0;
        double r754231 = k;
        double r754232 = r754230 * r754231;
        double r754233 = r754229 * r754232;
        double r754234 = r754228 + r754233;
        double r754235 = r754225 - r754234;
        double r754236 = r754222 + r754235;
        double r754237 = 1.2403457310672628e-70;
        bool r754238 = r754208 <= r754237;
        double r754239 = 0.0;
        double r754240 = r754239 - r754220;
        double r754241 = r754208 * r754240;
        double r754242 = r754241 + r754235;
        double r754243 = r754211 * r754212;
        double r754244 = r754213 * r754216;
        double r754245 = r754243 * r754244;
        double r754246 = r754245 - r754220;
        double r754247 = r754208 * r754246;
        double r754248 = r754247 + r754235;
        double r754249 = r754238 ? r754242 : r754248;
        double r754250 = r754210 ? r754236 : r754249;
        return r754250;
}

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.2
Target1.5
Herbie4.7
\[\begin{array}{l} \mathbf{if}\;t \lt -1.6210815397541398 \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.680279438052224:\\ \;\;\;\;\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 3 regimes
  2. if t < -4.585119752141304e-202

    1. Initial program 4.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. Simplified4.2

      \[\leadsto \color{blue}{t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)}\]
    3. Using strategy rm
    4. Applied associate-*l*4.2

      \[\leadsto t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \color{blue}{j \cdot \left(27 \cdot k\right)}\right)\right)\]
    5. Using strategy rm
    6. Applied associate-*l*4.3

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

    if -4.585119752141304e-202 < t < 1.2403457310672628e-70

    1. Initial program 8.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. Simplified8.3

      \[\leadsto \color{blue}{t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)}\]
    3. Using strategy rm
    4. Applied associate-*l*8.4

      \[\leadsto t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \color{blue}{j \cdot \left(27 \cdot k\right)}\right)\right)\]
    5. Taylor expanded around 0 6.0

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

    if 1.2403457310672628e-70 < t

    1. Initial program 2.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. Simplified2.3

      \[\leadsto \color{blue}{t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \left(j \cdot 27\right) \cdot k\right)\right)}\]
    3. Using strategy rm
    4. Applied associate-*l*2.3

      \[\leadsto t \cdot \left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + \color{blue}{j \cdot \left(27 \cdot k\right)}\right)\right)\]
    5. Using strategy rm
    6. Applied associate-*l*3.5

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -4.58511975214130373 \cdot 10^{-202}:\\ \;\;\;\;t \cdot \left(\left(x \cdot \left(18 \cdot y\right)\right) \cdot z - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\ \mathbf{elif}\;t \le 1.24034573106726284 \cdot 10^{-70}:\\ \;\;\;\;t \cdot \left(0 - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;t \cdot \left(\left(x \cdot 18\right) \cdot \left(y \cdot z\right) - a \cdot 4\right) + \left(b \cdot c - \left(\left(x \cdot 4\right) \cdot i + j \cdot \left(27 \cdot k\right)\right)\right)\\ \end{array}\]

Reproduce

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