Average Error: 12.2 → 13.1
Time: 34.0s
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}\;c \le -5478662367150612676608:\\ \;\;\;\;\left(\left(y \cdot z - t \cdot a\right) \cdot x - \sqrt[3]{z \cdot c - i \cdot a} \cdot \left(\left(\sqrt[3]{z \cdot c - i \cdot a} \cdot \sqrt[3]{z \cdot c - i \cdot a}\right) \cdot b\right)\right) + \left(\left(\left(-y\right) \cdot j\right) \cdot i + j \cdot \left(t \cdot c\right)\right)\\ \mathbf{elif}\;c \le -6.535140165540710269045334632618486765212 \cdot 10^{-32}:\\ \;\;\;\;\left(t \cdot c - i \cdot y\right) \cdot j + \left(z \cdot c - i \cdot a\right) \cdot \left(-b\right)\\ \mathbf{else}:\\ \;\;\;\;\left(j \cdot \left(t \cdot c\right) + \left(-j \cdot \left(i \cdot y\right)\right)\right) + \left(\left(y \cdot z - t \cdot a\right) \cdot x - \left(\left(\left(\sqrt[3]{\sqrt[3]{z \cdot c - i \cdot a} \cdot \sqrt[3]{z \cdot c - i \cdot a}} \cdot \sqrt[3]{\sqrt[3]{z \cdot c - i \cdot a}}\right) \cdot \sqrt[3]{z \cdot c - i \cdot a}\right) \cdot b\right) \cdot \sqrt[3]{z \cdot c - i \cdot a}\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}\;c \le -5478662367150612676608:\\
\;\;\;\;\left(\left(y \cdot z - t \cdot a\right) \cdot x - \sqrt[3]{z \cdot c - i \cdot a} \cdot \left(\left(\sqrt[3]{z \cdot c - i \cdot a} \cdot \sqrt[3]{z \cdot c - i \cdot a}\right) \cdot b\right)\right) + \left(\left(\left(-y\right) \cdot j\right) \cdot i + j \cdot \left(t \cdot c\right)\right)\\

\mathbf{elif}\;c \le -6.535140165540710269045334632618486765212 \cdot 10^{-32}:\\
\;\;\;\;\left(t \cdot c - i \cdot y\right) \cdot j + \left(z \cdot c - i \cdot a\right) \cdot \left(-b\right)\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26300277 = x;
        double r26300278 = y;
        double r26300279 = z;
        double r26300280 = r26300278 * r26300279;
        double r26300281 = t;
        double r26300282 = a;
        double r26300283 = r26300281 * r26300282;
        double r26300284 = r26300280 - r26300283;
        double r26300285 = r26300277 * r26300284;
        double r26300286 = b;
        double r26300287 = c;
        double r26300288 = r26300287 * r26300279;
        double r26300289 = i;
        double r26300290 = r26300289 * r26300282;
        double r26300291 = r26300288 - r26300290;
        double r26300292 = r26300286 * r26300291;
        double r26300293 = r26300285 - r26300292;
        double r26300294 = j;
        double r26300295 = r26300287 * r26300281;
        double r26300296 = r26300289 * r26300278;
        double r26300297 = r26300295 - r26300296;
        double r26300298 = r26300294 * r26300297;
        double r26300299 = r26300293 + r26300298;
        return r26300299;
}

double f(double x, double y, double z, double t, double a, double b, double c, double i, double j) {
        double r26300300 = c;
        double r26300301 = -5.478662367150613e+21;
        bool r26300302 = r26300300 <= r26300301;
        double r26300303 = y;
        double r26300304 = z;
        double r26300305 = r26300303 * r26300304;
        double r26300306 = t;
        double r26300307 = a;
        double r26300308 = r26300306 * r26300307;
        double r26300309 = r26300305 - r26300308;
        double r26300310 = x;
        double r26300311 = r26300309 * r26300310;
        double r26300312 = r26300304 * r26300300;
        double r26300313 = i;
        double r26300314 = r26300313 * r26300307;
        double r26300315 = r26300312 - r26300314;
        double r26300316 = cbrt(r26300315);
        double r26300317 = r26300316 * r26300316;
        double r26300318 = b;
        double r26300319 = r26300317 * r26300318;
        double r26300320 = r26300316 * r26300319;
        double r26300321 = r26300311 - r26300320;
        double r26300322 = -r26300303;
        double r26300323 = j;
        double r26300324 = r26300322 * r26300323;
        double r26300325 = r26300324 * r26300313;
        double r26300326 = r26300306 * r26300300;
        double r26300327 = r26300323 * r26300326;
        double r26300328 = r26300325 + r26300327;
        double r26300329 = r26300321 + r26300328;
        double r26300330 = -6.53514016554071e-32;
        bool r26300331 = r26300300 <= r26300330;
        double r26300332 = r26300313 * r26300303;
        double r26300333 = r26300326 - r26300332;
        double r26300334 = r26300333 * r26300323;
        double r26300335 = -r26300318;
        double r26300336 = r26300315 * r26300335;
        double r26300337 = r26300334 + r26300336;
        double r26300338 = r26300323 * r26300332;
        double r26300339 = -r26300338;
        double r26300340 = r26300327 + r26300339;
        double r26300341 = cbrt(r26300317);
        double r26300342 = cbrt(r26300316);
        double r26300343 = r26300341 * r26300342;
        double r26300344 = r26300343 * r26300316;
        double r26300345 = r26300344 * r26300318;
        double r26300346 = r26300345 * r26300316;
        double r26300347 = r26300311 - r26300346;
        double r26300348 = r26300340 + r26300347;
        double r26300349 = r26300331 ? r26300337 : r26300348;
        double r26300350 = r26300302 ? r26300329 : r26300349;
        return r26300350;
}

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

Target

Original12.2
Target16.1
Herbie13.1
\[\begin{array}{l} \mathbf{if}\;t \lt -8.12097891919591218149793027759825150959 \cdot 10^{-33}:\\ \;\;\;\;x \cdot \left(z \cdot y - a \cdot t\right) - \left(b \cdot \left(z \cdot c - a \cdot i\right) - \left(c \cdot t - y \cdot i\right) \cdot j\right)\\ \mathbf{elif}\;t \lt -4.712553818218485141757938537793350881052 \cdot 10^{-169}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \frac{j \cdot \left({\left(c \cdot t\right)}^{2} - {\left(i \cdot y\right)}^{2}\right)}{c \cdot t + i \cdot y}\\ \mathbf{elif}\;t \lt -7.633533346031583686060259351057142920433 \cdot 10^{-308}:\\ \;\;\;\;x \cdot \left(z \cdot y - a \cdot t\right) - \left(b \cdot \left(z \cdot c - a \cdot i\right) - \left(c \cdot t - y \cdot i\right) \cdot j\right)\\ \mathbf{elif}\;t \lt 1.053588855745548710002760210539645467715 \cdot 10^{-139}:\\ \;\;\;\;\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + \frac{j \cdot \left({\left(c \cdot t\right)}^{2} - {\left(i \cdot y\right)}^{2}\right)}{c \cdot t + i \cdot y}\\ \mathbf{else}:\\ \;\;\;\;x \cdot \left(z \cdot y - a \cdot t\right) - \left(b \cdot \left(z \cdot c - a \cdot i\right) - \left(c \cdot t - y \cdot i\right) \cdot j\right)\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if c < -5.478662367150613e+21

    1. Initial program 16.7

      \[\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 add-cube-cbrt17.0

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \color{blue}{\left(\left(\sqrt[3]{c \cdot z - i \cdot a} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right) \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    4. Applied associate-*r*17.0

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \color{blue}{\left(b \cdot \left(\sqrt[3]{c \cdot z - i \cdot a} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)\right) \cdot \sqrt[3]{c \cdot z - i \cdot a}}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    5. Using strategy rm
    6. Applied sub-neg17.0

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(b \cdot \left(\sqrt[3]{c \cdot z - i \cdot a} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)\right) \cdot \sqrt[3]{c \cdot z - i \cdot a}\right) + j \cdot \color{blue}{\left(c \cdot t + \left(-i \cdot y\right)\right)}\]
    7. Applied distribute-rgt-in17.0

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(b \cdot \left(\sqrt[3]{c \cdot z - i \cdot a} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)\right) \cdot \sqrt[3]{c \cdot z - i \cdot a}\right) + \color{blue}{\left(\left(c \cdot t\right) \cdot j + \left(-i \cdot y\right) \cdot j\right)}\]
    8. Using strategy rm
    9. Applied distribute-rgt-neg-in17.0

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

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

    if -5.478662367150613e+21 < c < -6.53514016554071e-32

    1. Initial program 10.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. Taylor expanded around 0 23.3

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

    if -6.53514016554071e-32 < c

    1. Initial program 11.2

      \[\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 add-cube-cbrt11.5

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \color{blue}{\left(\left(\sqrt[3]{c \cdot z - i \cdot a} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right) \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    4. Applied associate-*r*11.5

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

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(b \cdot \left(\sqrt[3]{c \cdot z - i \cdot a} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)\right) \cdot \sqrt[3]{c \cdot z - i \cdot a}\right) + j \cdot \color{blue}{\left(c \cdot t + \left(-i \cdot y\right)\right)}\]
    7. Applied distribute-rgt-in11.5

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

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \left(b \cdot \left(\sqrt[3]{\color{blue}{\left(\sqrt[3]{c \cdot z - i \cdot a} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right) \cdot \sqrt[3]{c \cdot z - i \cdot a}}} \cdot \sqrt[3]{c \cdot z - i \cdot a}\right)\right) \cdot \sqrt[3]{c \cdot z - i \cdot a}\right) + \left(\left(c \cdot t\right) \cdot j + \left(-i \cdot y\right) \cdot j\right)\]
    10. Applied cbrt-prod11.6

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

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

Reproduce

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

  :herbie-target
  (if (< t -8.120978919195912e-33) (- (* x (- (* z y) (* a t))) (- (* b (- (* z c) (* a i))) (* (- (* c t) (* y i)) j))) (if (< t -4.712553818218485e-169) (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (/ (* j (- (pow (* c t) 2.0) (pow (* i y) 2.0))) (+ (* c t) (* i y)))) (if (< t -7.633533346031584e-308) (- (* x (- (* z y) (* a t))) (- (* b (- (* z c) (* a i))) (* (- (* c t) (* y i)) j))) (if (< t 1.0535888557455487e-139) (+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (/ (* j (- (pow (* c t) 2.0) (pow (* i y) 2.0))) (+ (* c t) (* i y)))) (- (* x (- (* z y) (* a t))) (- (* b (- (* z c) (* a i))) (* (- (* c t) (* y i)) j)))))))

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