Average Error: 5.6 → 6.1
Time: 12.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\]
\[t \cdot \left(x \cdot \left(18 \cdot \left(y \cdot z\right)\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)\]
\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
t \cdot \left(x \cdot \left(18 \cdot \left(y \cdot z\right)\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)
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r86121 = x;
        double r86122 = 18.0;
        double r86123 = r86121 * r86122;
        double r86124 = y;
        double r86125 = r86123 * r86124;
        double r86126 = z;
        double r86127 = r86125 * r86126;
        double r86128 = t;
        double r86129 = r86127 * r86128;
        double r86130 = a;
        double r86131 = 4.0;
        double r86132 = r86130 * r86131;
        double r86133 = r86132 * r86128;
        double r86134 = r86129 - r86133;
        double r86135 = b;
        double r86136 = c;
        double r86137 = r86135 * r86136;
        double r86138 = r86134 + r86137;
        double r86139 = r86121 * r86131;
        double r86140 = i;
        double r86141 = r86139 * r86140;
        double r86142 = r86138 - r86141;
        double r86143 = j;
        double r86144 = 27.0;
        double r86145 = r86143 * r86144;
        double r86146 = k;
        double r86147 = r86145 * r86146;
        double r86148 = r86142 - r86147;
        return r86148;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r86149 = t;
        double r86150 = x;
        double r86151 = 18.0;
        double r86152 = y;
        double r86153 = z;
        double r86154 = r86152 * r86153;
        double r86155 = r86151 * r86154;
        double r86156 = r86150 * r86155;
        double r86157 = a;
        double r86158 = 4.0;
        double r86159 = r86157 * r86158;
        double r86160 = r86156 - r86159;
        double r86161 = r86149 * r86160;
        double r86162 = b;
        double r86163 = c;
        double r86164 = r86162 * r86163;
        double r86165 = r86150 * r86158;
        double r86166 = i;
        double r86167 = r86165 * r86166;
        double r86168 = j;
        double r86169 = 27.0;
        double r86170 = k;
        double r86171 = r86169 * r86170;
        double r86172 = r86168 * r86171;
        double r86173 = r86167 + r86172;
        double r86174 = r86164 - r86173;
        double r86175 = r86161 + r86174;
        return r86175;
}

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

Derivation

  1. Split input into 2 regimes
  2. if z < -2.4536124393804765e-211 or 6.442780946635146e-52 < z

    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. Simplified5.9

      \[\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*5.9

      \[\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 + \left(j \cdot 27\right) \cdot k\right)\right)\]

    if -2.4536124393804765e-211 < z < 6.442780946635146e-52

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

      \[\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*0.8

      \[\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 + \left(j \cdot 27\right) \cdot k\right)\right)\]
    5. Using strategy rm
    6. Applied associate-*l*0.8

      \[\leadsto t \cdot \left(\color{blue}{x \cdot \left(18 \cdot \left(y \cdot z\right)\right)} - 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)\]
    7. Using strategy rm
    8. Applied associate-*l*0.8

      \[\leadsto t \cdot \left(x \cdot \left(18 \cdot \left(y \cdot z\right)\right) - 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)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification6.1

    \[\leadsto t \cdot \left(x \cdot \left(18 \cdot \left(y \cdot z\right)\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)\]

Reproduce

herbie shell --seed 2019308 
(FPCore (x y z t a b c i j k)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1"
  :precision binary64
  (- (- (+ (- (* (* (* (* x 18) y) z) t) (* (* a 4) t)) (* b c)) (* (* x 4) i)) (* (* j 27) k)))