Average Error: 5.5 → 4.4
Time: 24.7s
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.804675611798075410020510588027620382471 \cdot 10^{-54}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right)\right) - \left(4 \cdot x\right) \cdot i\right) - k \cdot \left(j \cdot 27\right)\\ \mathbf{elif}\;t \le 4.848813046528950449871019478168488049573 \cdot 10^{-188}:\\ \;\;\;\;t \cdot \left(-a \cdot 4\right) - \left(\left(\left(i \cdot x\right) \cdot 4 - b \cdot c\right) + \left(k \cdot 27\right) \cdot j\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right)\right) - \left(4 \cdot x\right) \cdot i\right) - k \cdot \left(j \cdot 27\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.804675611798075410020510588027620382471 \cdot 10^{-54}:\\
\;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right)\right) - \left(4 \cdot x\right) \cdot i\right) - k \cdot \left(j \cdot 27\right)\\

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

\mathbf{else}:\\
\;\;\;\;\left(\left(b \cdot c + \left(\left(\left(\left(x \cdot 18\right) \cdot y\right) \cdot z\right) \cdot t - \left(a \cdot 4\right) \cdot t\right)\right) - \left(4 \cdot x\right) \cdot i\right) - k \cdot \left(j \cdot 27\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 r6313636 = x;
        double r6313637 = 18.0;
        double r6313638 = r6313636 * r6313637;
        double r6313639 = y;
        double r6313640 = r6313638 * r6313639;
        double r6313641 = z;
        double r6313642 = r6313640 * r6313641;
        double r6313643 = t;
        double r6313644 = r6313642 * r6313643;
        double r6313645 = a;
        double r6313646 = 4.0;
        double r6313647 = r6313645 * r6313646;
        double r6313648 = r6313647 * r6313643;
        double r6313649 = r6313644 - r6313648;
        double r6313650 = b;
        double r6313651 = c;
        double r6313652 = r6313650 * r6313651;
        double r6313653 = r6313649 + r6313652;
        double r6313654 = r6313636 * r6313646;
        double r6313655 = i;
        double r6313656 = r6313654 * r6313655;
        double r6313657 = r6313653 - r6313656;
        double r6313658 = j;
        double r6313659 = 27.0;
        double r6313660 = r6313658 * r6313659;
        double r6313661 = k;
        double r6313662 = r6313660 * r6313661;
        double r6313663 = r6313657 - r6313662;
        return r6313663;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j, double k) {
        double r6313664 = t;
        double r6313665 = -4.8046756117980754e-54;
        bool r6313666 = r6313664 <= r6313665;
        double r6313667 = b;
        double r6313668 = c;
        double r6313669 = r6313667 * r6313668;
        double r6313670 = x;
        double r6313671 = 18.0;
        double r6313672 = r6313670 * r6313671;
        double r6313673 = y;
        double r6313674 = r6313672 * r6313673;
        double r6313675 = z;
        double r6313676 = r6313674 * r6313675;
        double r6313677 = r6313676 * r6313664;
        double r6313678 = a;
        double r6313679 = 4.0;
        double r6313680 = r6313678 * r6313679;
        double r6313681 = r6313680 * r6313664;
        double r6313682 = r6313677 - r6313681;
        double r6313683 = r6313669 + r6313682;
        double r6313684 = r6313679 * r6313670;
        double r6313685 = i;
        double r6313686 = r6313684 * r6313685;
        double r6313687 = r6313683 - r6313686;
        double r6313688 = k;
        double r6313689 = j;
        double r6313690 = 27.0;
        double r6313691 = r6313689 * r6313690;
        double r6313692 = r6313688 * r6313691;
        double r6313693 = r6313687 - r6313692;
        double r6313694 = 4.8488130465289504e-188;
        bool r6313695 = r6313664 <= r6313694;
        double r6313696 = -r6313680;
        double r6313697 = r6313664 * r6313696;
        double r6313698 = r6313685 * r6313670;
        double r6313699 = r6313698 * r6313679;
        double r6313700 = r6313699 - r6313669;
        double r6313701 = r6313688 * r6313690;
        double r6313702 = r6313701 * r6313689;
        double r6313703 = r6313700 + r6313702;
        double r6313704 = r6313697 - r6313703;
        double r6313705 = r6313695 ? r6313704 : r6313693;
        double r6313706 = r6313666 ? r6313693 : r6313705;
        return r6313706;
}

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 t < -4.8046756117980754e-54 or 4.8488130465289504e-188 < t

    1. Initial program 3.5

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

    if -4.8046756117980754e-54 < t < 4.8488130465289504e-188

    1. Initial program 8.5

      \[\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.8

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

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

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

Reproduce

herbie shell --seed 2019172 
(FPCore (x y z t a b c i j k)
  :name "Diagrams.Solve.Polynomial:cubForm  from diagrams-solve-0.1"
  (- (- (+ (- (* (* (* (* x 18.0) y) z) t) (* (* a 4.0) t)) (* b c)) (* (* x 4.0) i)) (* (* j 27.0) k)))