Average Error: 6.7 → 1.8
Time: 17.2s
Precision: 64
\[2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\left(a + b \cdot c\right) \cdot c\right) \cdot i\right)\]
\[\begin{array}{l} \mathbf{if}\;i \le -7.692583286648856110943462438045554472035 \cdot 10^{-190}:\\ \;\;\;\;2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\left(\left(\sqrt[3]{\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}} \cdot \sqrt[3]{\sqrt[3]{a + b \cdot c}}\right) \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \left(i \cdot c\right)\right)\\ \mathbf{elif}\;i \le 1.593063746275239271688708220689758329787 \cdot 10^{-232}:\\ \;\;\;\;2 \cdot \left(\left(x \cdot y + z \cdot t\right) - c \cdot \left(a \cdot i + \left(i \cdot b\right) \cdot c\right)\right)\\ \mathbf{else}:\\ \;\;\;\;2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \left(\sqrt[3]{a + b \cdot c} \cdot \left(i \cdot c\right)\right)\right)\\ \end{array}\]
2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\left(a + b \cdot c\right) \cdot c\right) \cdot i\right)
\begin{array}{l}
\mathbf{if}\;i \le -7.692583286648856110943462438045554472035 \cdot 10^{-190}:\\
\;\;\;\;2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\left(\left(\sqrt[3]{\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}} \cdot \sqrt[3]{\sqrt[3]{a + b \cdot c}}\right) \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \left(i \cdot c\right)\right)\\

\mathbf{elif}\;i \le 1.593063746275239271688708220689758329787 \cdot 10^{-232}:\\
\;\;\;\;2 \cdot \left(\left(x \cdot y + z \cdot t\right) - c \cdot \left(a \cdot i + \left(i \cdot b\right) \cdot c\right)\right)\\

\mathbf{else}:\\
\;\;\;\;2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \left(\sqrt[3]{a + b \cdot c} \cdot \left(i \cdot c\right)\right)\right)\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r550056 = 2.0;
        double r550057 = x;
        double r550058 = y;
        double r550059 = r550057 * r550058;
        double r550060 = z;
        double r550061 = t;
        double r550062 = r550060 * r550061;
        double r550063 = r550059 + r550062;
        double r550064 = a;
        double r550065 = b;
        double r550066 = c;
        double r550067 = r550065 * r550066;
        double r550068 = r550064 + r550067;
        double r550069 = r550068 * r550066;
        double r550070 = i;
        double r550071 = r550069 * r550070;
        double r550072 = r550063 - r550071;
        double r550073 = r550056 * r550072;
        return r550073;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i) {
        double r550074 = i;
        double r550075 = -7.692583286648856e-190;
        bool r550076 = r550074 <= r550075;
        double r550077 = 2.0;
        double r550078 = x;
        double r550079 = y;
        double r550080 = r550078 * r550079;
        double r550081 = z;
        double r550082 = t;
        double r550083 = r550081 * r550082;
        double r550084 = r550080 + r550083;
        double r550085 = a;
        double r550086 = b;
        double r550087 = c;
        double r550088 = r550086 * r550087;
        double r550089 = r550085 + r550088;
        double r550090 = cbrt(r550089);
        double r550091 = r550090 * r550090;
        double r550092 = cbrt(r550091);
        double r550093 = cbrt(r550090);
        double r550094 = r550092 * r550093;
        double r550095 = r550094 * r550090;
        double r550096 = r550095 * r550090;
        double r550097 = r550074 * r550087;
        double r550098 = r550096 * r550097;
        double r550099 = r550084 - r550098;
        double r550100 = r550077 * r550099;
        double r550101 = 1.5930637462752393e-232;
        bool r550102 = r550074 <= r550101;
        double r550103 = r550085 * r550074;
        double r550104 = r550074 * r550086;
        double r550105 = r550104 * r550087;
        double r550106 = r550103 + r550105;
        double r550107 = r550087 * r550106;
        double r550108 = r550084 - r550107;
        double r550109 = r550077 * r550108;
        double r550110 = r550090 * r550097;
        double r550111 = r550091 * r550110;
        double r550112 = r550084 - r550111;
        double r550113 = r550077 * r550112;
        double r550114 = r550102 ? r550109 : r550113;
        double r550115 = r550076 ? r550100 : r550114;
        return r550115;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original6.7
Target2.0
Herbie1.8
\[2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(a + b \cdot c\right) \cdot \left(c \cdot i\right)\right)\]

Derivation

  1. Split input into 3 regimes
  2. if i < -7.692583286648856e-190

    1. Initial program 4.3

      \[2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\left(a + b \cdot c\right) \cdot c\right) \cdot i\right)\]
    2. Using strategy rm
    3. Applied associate-*l*1.4

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \color{blue}{\left(a + b \cdot c\right) \cdot \left(c \cdot i\right)}\right)\]
    4. Simplified1.4

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(a + b \cdot c\right) \cdot \color{blue}{\left(i \cdot c\right)}\right)\]
    5. Using strategy rm
    6. Applied add-cube-cbrt1.8

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \color{blue}{\left(\left(\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \sqrt[3]{a + b \cdot c}\right)} \cdot \left(i \cdot c\right)\right)\]
    7. Using strategy rm
    8. Applied add-cube-cbrt1.8

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\left(\sqrt[3]{\color{blue}{\left(\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \sqrt[3]{a + b \cdot c}}} \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \left(i \cdot c\right)\right)\]
    9. Applied cbrt-prod1.8

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\left(\color{blue}{\left(\sqrt[3]{\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}} \cdot \sqrt[3]{\sqrt[3]{a + b \cdot c}}\right)} \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \left(i \cdot c\right)\right)\]

    if -7.692583286648856e-190 < i < 1.5930637462752393e-232

    1. Initial program 15.2

      \[2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\left(a + b \cdot c\right) \cdot c\right) \cdot i\right)\]
    2. Using strategy rm
    3. Applied associate-*l*4.2

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \color{blue}{\left(a + b \cdot c\right) \cdot \left(c \cdot i\right)}\right)\]
    4. Simplified4.2

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(a + b \cdot c\right) \cdot \color{blue}{\left(i \cdot c\right)}\right)\]
    5. Using strategy rm
    6. Applied add-cube-cbrt4.4

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \color{blue}{\left(\left(\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \sqrt[3]{a + b \cdot c}\right)} \cdot \left(i \cdot c\right)\right)\]
    7. Applied associate-*l*4.4

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \color{blue}{\left(\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \left(\sqrt[3]{a + b \cdot c} \cdot \left(i \cdot c\right)\right)}\right)\]
    8. Taylor expanded around inf 16.4

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \color{blue}{\left(i \cdot \left(b \cdot {c}^{2}\right) + a \cdot \left(i \cdot c\right)\right)}\right)\]
    9. Simplified1.8

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \color{blue}{c \cdot \left(a \cdot i + \left(i \cdot b\right) \cdot c\right)}\right)\]

    if 1.5930637462752393e-232 < i

    1. Initial program 4.5

      \[2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\left(a + b \cdot c\right) \cdot c\right) \cdot i\right)\]
    2. Using strategy rm
    3. Applied associate-*l*1.4

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \color{blue}{\left(a + b \cdot c\right) \cdot \left(c \cdot i\right)}\right)\]
    4. Simplified1.4

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(a + b \cdot c\right) \cdot \color{blue}{\left(i \cdot c\right)}\right)\]
    5. Using strategy rm
    6. Applied add-cube-cbrt1.7

      \[\leadsto 2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \color{blue}{\left(\left(\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \sqrt[3]{a + b \cdot c}\right)} \cdot \left(i \cdot c\right)\right)\]
    7. Applied associate-*l*1.7

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;i \le -7.692583286648856110943462438045554472035 \cdot 10^{-190}:\\ \;\;\;\;2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\left(\left(\sqrt[3]{\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}} \cdot \sqrt[3]{\sqrt[3]{a + b \cdot c}}\right) \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \left(i \cdot c\right)\right)\\ \mathbf{elif}\;i \le 1.593063746275239271688708220689758329787 \cdot 10^{-232}:\\ \;\;\;\;2 \cdot \left(\left(x \cdot y + z \cdot t\right) - c \cdot \left(a \cdot i + \left(i \cdot b\right) \cdot c\right)\right)\\ \mathbf{else}:\\ \;\;\;\;2 \cdot \left(\left(x \cdot y + z \cdot t\right) - \left(\sqrt[3]{a + b \cdot c} \cdot \sqrt[3]{a + b \cdot c}\right) \cdot \left(\sqrt[3]{a + b \cdot c} \cdot \left(i \cdot c\right)\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019208 
(FPCore (x y z t a b c i)
  :name "Diagrams.ThreeD.Shapes:frustum from diagrams-lib-1.3.0.3, A"
  :precision binary64

  :herbie-target
  (* 2 (- (+ (* x y) (* z t)) (* (+ a (* b c)) (* c i))))

  (* 2 (- (+ (* x y) (* z t)) (* (* (+ a (* b c)) c) i))))