Average Error: 12.3 → 11.3
Time: 28.4s
Precision: 64
\[\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
\[\begin{array}{l} \mathbf{if}\;z \le -2.973496614217344094601403267363420899231 \cdot 10^{-55} \lor \neg \left(z \le 1.751377172133955651818986187295260027638 \cdot 10^{-61}\right):\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(z \cdot \left(b \cdot c\right) + \left(-i \cdot a\right) \cdot b\right)\right) + \left(\left(j \cdot c\right) \cdot t + \left(-i \cdot \left(j \cdot y\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(y \cdot z\right) \cdot x + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\left(j \cdot c\right) \cdot t + \left(-\left(i \cdot j\right) \cdot y\right)\right)\\ \end{array}\]
\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)
\begin{array}{l}
\mathbf{if}\;z \le -2.973496614217344094601403267363420899231 \cdot 10^{-55} \lor \neg \left(z \le 1.751377172133955651818986187295260027638 \cdot 10^{-61}\right):\\
\;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(z \cdot \left(b \cdot c\right) + \left(-i \cdot a\right) \cdot b\right)\right) + \left(\left(j \cdot c\right) \cdot t + \left(-i \cdot \left(j \cdot y\right)\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\left(\left(\left(y \cdot z\right) \cdot x + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\left(j \cdot c\right) \cdot t + \left(-\left(i \cdot j\right) \cdot y\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 r99165 = x;
        double r99166 = y;
        double r99167 = z;
        double r99168 = r99166 * r99167;
        double r99169 = t;
        double r99170 = a;
        double r99171 = r99169 * r99170;
        double r99172 = r99168 - r99171;
        double r99173 = r99165 * r99172;
        double r99174 = b;
        double r99175 = c;
        double r99176 = r99175 * r99167;
        double r99177 = i;
        double r99178 = r99177 * r99170;
        double r99179 = r99176 - r99178;
        double r99180 = r99174 * r99179;
        double r99181 = r99173 - r99180;
        double r99182 = j;
        double r99183 = r99175 * r99169;
        double r99184 = r99177 * r99166;
        double r99185 = r99183 - r99184;
        double r99186 = r99182 * r99185;
        double r99187 = r99181 + r99186;
        return r99187;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r99188 = z;
        double r99189 = -2.973496614217344e-55;
        bool r99190 = r99188 <= r99189;
        double r99191 = 1.7513771721339557e-61;
        bool r99192 = r99188 <= r99191;
        double r99193 = !r99192;
        bool r99194 = r99190 || r99193;
        double r99195 = x;
        double r99196 = y;
        double r99197 = r99196 * r99188;
        double r99198 = t;
        double r99199 = a;
        double r99200 = r99198 * r99199;
        double r99201 = r99197 - r99200;
        double r99202 = r99195 * r99201;
        double r99203 = b;
        double r99204 = c;
        double r99205 = r99203 * r99204;
        double r99206 = r99188 * r99205;
        double r99207 = i;
        double r99208 = r99207 * r99199;
        double r99209 = -r99208;
        double r99210 = r99209 * r99203;
        double r99211 = r99206 + r99210;
        double r99212 = r99202 - r99211;
        double r99213 = j;
        double r99214 = r99213 * r99204;
        double r99215 = r99214 * r99198;
        double r99216 = r99213 * r99196;
        double r99217 = r99207 * r99216;
        double r99218 = -r99217;
        double r99219 = r99215 + r99218;
        double r99220 = r99212 + r99219;
        double r99221 = r99197 * r99195;
        double r99222 = r99195 * r99198;
        double r99223 = r99199 * r99222;
        double r99224 = -r99223;
        double r99225 = r99221 + r99224;
        double r99226 = r99204 * r99188;
        double r99227 = r99226 - r99208;
        double r99228 = r99203 * r99227;
        double r99229 = r99225 - r99228;
        double r99230 = r99207 * r99213;
        double r99231 = r99230 * r99196;
        double r99232 = -r99231;
        double r99233 = r99215 + r99232;
        double r99234 = r99229 + r99233;
        double r99235 = r99194 ? r99220 : r99234;
        return r99235;
}

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

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.973496614217344e-55 or 1.7513771721339557e-61 < z

    1. Initial program 15.3

      \[\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    2. Using strategy rm
    3. Applied sub-neg15.3

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \color{blue}{\left(c \cdot t + \left(-i \cdot y\right)\right)}\]
    4. Applied distribute-lft-in15.3

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \color{blue}{\left(j \cdot \left(c \cdot t\right) + j \cdot \left(-i \cdot y\right)\right)}\]
    5. Simplified15.8

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(j \cdot \left(c \cdot t\right) + \color{blue}{\left(-i \cdot \left(j \cdot y\right)\right)}\right)\]
    6. Using strategy rm
    7. Applied associate-*r*15.9

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\color{blue}{\left(j \cdot c\right) \cdot t} + \left(-i \cdot \left(j \cdot y\right)\right)\right)\]
    8. Using strategy rm
    9. Applied sub-neg15.9

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \color{blue}{\left(c \cdot z + \left(-i \cdot a\right)\right)}\right) + \left(\left(j \cdot c\right) \cdot t + \left(-i \cdot \left(j \cdot y\right)\right)\right)\]
    10. Applied distribute-lft-in15.9

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \color{blue}{\left(b \cdot \left(c \cdot z\right) + b \cdot \left(-i \cdot a\right)\right)}\right) + \left(\left(j \cdot c\right) \cdot t + \left(-i \cdot \left(j \cdot y\right)\right)\right)\]
    11. Simplified12.7

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(\color{blue}{z \cdot \left(b \cdot c\right)} + b \cdot \left(-i \cdot a\right)\right)\right) + \left(\left(j \cdot c\right) \cdot t + \left(-i \cdot \left(j \cdot y\right)\right)\right)\]
    12. Simplified12.7

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

    if -2.973496614217344e-55 < z < 1.7513771721339557e-61

    1. Initial program 9.5

      \[\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    2. Using strategy rm
    3. Applied sub-neg9.5

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \color{blue}{\left(c \cdot t + \left(-i \cdot y\right)\right)}\]
    4. Applied distribute-lft-in9.5

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \color{blue}{\left(j \cdot \left(c \cdot t\right) + j \cdot \left(-i \cdot y\right)\right)}\]
    5. Simplified9.7

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(j \cdot \left(c \cdot t\right) + \color{blue}{\left(-i \cdot \left(j \cdot y\right)\right)}\right)\]
    6. Using strategy rm
    7. Applied associate-*r*10.0

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\color{blue}{\left(j \cdot c\right) \cdot t} + \left(-i \cdot \left(j \cdot y\right)\right)\right)\]
    8. Using strategy rm
    9. Applied associate-*r*9.3

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\left(j \cdot c\right) \cdot t + \left(-\color{blue}{\left(i \cdot j\right) \cdot y}\right)\right)\]
    10. Using strategy rm
    11. Applied sub-neg9.3

      \[\leadsto \left(x \cdot \color{blue}{\left(y \cdot z + \left(-t \cdot a\right)\right)} - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\left(j \cdot c\right) \cdot t + \left(-\left(i \cdot j\right) \cdot y\right)\right)\]
    12. Applied distribute-lft-in9.3

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

      \[\leadsto \left(\left(\color{blue}{\left(y \cdot z\right) \cdot x} + x \cdot \left(-t \cdot a\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\left(j \cdot c\right) \cdot t + \left(-\left(i \cdot j\right) \cdot y\right)\right)\]
    14. Simplified10.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -2.973496614217344094601403267363420899231 \cdot 10^{-55} \lor \neg \left(z \le 1.751377172133955651818986187295260027638 \cdot 10^{-61}\right):\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(z \cdot \left(b \cdot c\right) + \left(-i \cdot a\right) \cdot b\right)\right) + \left(\left(j \cdot c\right) \cdot t + \left(-i \cdot \left(j \cdot y\right)\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(y \cdot z\right) \cdot x + \left(-a \cdot \left(x \cdot t\right)\right)\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \left(\left(j \cdot c\right) \cdot t + \left(-\left(i \cdot j\right) \cdot y\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019304 
(FPCore (x y z t a b c i j)
  :name "Linear.Matrix:det33 from linear-1.19.1.3"
  :precision binary64
  (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y)))))