Average Error: 11.7 → 11.4
Time: 24.2s
Precision: 64
Internal Precision: 128
\[\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}\;x \le 1.3099434334785528 \cdot 10^{+80}:\\ \;\;\;\;j \cdot \left(t \cdot c - y \cdot i\right) + \left(\left(\left(x \cdot t\right) \cdot \left(-a\right) + \sqrt[3]{\left(y \cdot z\right) \cdot x} \cdot \left(\sqrt[3]{\left(y \cdot z\right) \cdot x} \cdot \sqrt[3]{\left(y \cdot z\right) \cdot x}\right)\right) - b \cdot \left(z \cdot c - a \cdot i\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(y \cdot z - a \cdot t\right) \cdot x - \sqrt[3]{z \cdot c - a \cdot i} \cdot \left(b \cdot \left(\sqrt[3]{z \cdot c - a \cdot i} \cdot \sqrt[3]{z \cdot c - a \cdot i}\right)\right)\right) + j \cdot \left(t \cdot c - y \cdot i\right)\\ \end{array}\]

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 x < 1.3099434334785528e+80

    1. Initial program 12.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-neg12.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) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    4. Applied distribute-lft-in12.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) + j \cdot \left(c \cdot t - i \cdot y\right)\]
    5. Taylor expanded around -inf 11.8

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

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

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

    if 1.3099434334785528e+80 < x

    1. Initial program 7.4

      \[\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-cbrt7.6

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

      \[\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)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification11.4

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

Reproduce

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

Details

Time bar (total: 21.5s)Debug log

sample229.0ms

Algorithm
intervals
Results
185.0ms623×body80valid

simplify144.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
144.0ms
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y))))

prune12.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 10.3b

localize57.0ms

Local error

Found 4 expressions with local error:

5.5b
(* b (- (* c z) (* i a)))
4.7b
(* j (- (* c t) (* i y)))
3.8b
(* x (- (* y z) (* t a)))
0.2b
(- (* y z) (* t a))

rewrite12.0ms

Algorithm
rewrite-expression-head
Rules
associate-*r*
add-cube-cbrt
*-un-lft-identity
sub-neg
add-sqr-sqrt
add-log-exp
associate-*r/
distribute-lft-in
distribute-rgt-in
flip--
add-exp-log
add-cbrt-cube
flip3--
pow1
*-commutative
diff-log
Counts
4 → 63
Calls
4 calls:
Slowest
3.0ms
(* b (- (* c z) (* i a)))
3.0ms
(* j (- (* c t) (* i y)))
3.0ms
(* x (- (* y z) (* t a)))
2.0ms
(- (* y z) (* t a))

series219.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
72.0ms
(* x (- (* y z) (* t a)))
69.0ms
(* j (- (* c t) (* i y)))
50.0ms
(* b (- (* c z) (* i a)))
28.0ms
(- (* y z) (* t a))

simplify1.2s

Counts
40 → 75
Calls
40 calls:
Slowest
128.0ms
(+ (* (* y z) (* y z)) (+ (* (* t a) (* t a)) (* (* y z) (* t a))))
121.0ms
(+ (* (* c t) (* c t)) (+ (* (* i y) (* i y)) (* (* c t) (* i y))))
102.0ms
(+ (* (* c z) (* c z)) (+ (* (* i a) (* i a)) (* (* c z) (* i a))))
88.0ms
(- (* z (* b c)) (* a (* i b)))
70.0ms
(- (* t (* j c)) (* i (* y j)))

prune1.4s

Pruning

18 alts after pruning (18 fresh and 0 done)

Merged error: 7.1b

localize19.0ms

Local error

Found 4 expressions with local error:

5.5b
(* b (- (* c z) (* i a)))
4.8b
(* x (- (* t a)))
4.7b
(* j (- (* c t) (* i y)))
3.1b
(* x (* y z))

rewrite9.0ms

Algorithm
rewrite-expression-head
Rules
13×associate-*r*
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
add-log-exp
*-commutative
add-exp-log
associate-*r/
add-cbrt-cube
distribute-lft-in
sub-neg
pow1
distribute-rgt-in
flip--
flip3--
distribute-rgt-neg-out
distribute-rgt-neg-in
neg-mul-1
distribute-lft-neg-in
Counts
4 → 58
Calls
4 calls:
Slowest
3.0ms
(* b (- (* c z) (* i a)))
3.0ms
(* j (- (* c t) (* i y)))
1.0ms
(* x (- (* t a)))
1.0ms
(* x (* y z))

series547.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
444.0ms
(* j (- (* c t) (* i y)))
58.0ms
(* b (- (* c z) (* i a)))
29.0ms
(* x (- (* t a)))
16.0ms
(* x (* y z))

simplify886.0ms

Counts
35 → 70
Calls
35 calls:
Slowest
112.0ms
(+ (* (* c t) (* c t)) (+ (* (* i y) (* i y)) (* (* c t) (* i y))))
104.0ms
(+ (* (* c z) (* c z)) (+ (* (* i a) (* i a)) (* (* c z) (* i a))))
87.0ms
(- (* z (* b c)) (* a (* i b)))
61.0ms
(- (* t (* j c)) (* i (* y j)))
56.0ms
(- (* z (* b c)) (* a (* i b)))

prune1.6s

Pruning

17 alts after pruning (17 fresh and 0 done)

Merged error: 5.7b

localize22.0ms

Local error

Found 4 expressions with local error:

5.5b
(* b (- (* c z) (* i a)))
4.7b
(* j (- (* c t) (* i y)))
3.5b
(* (* x t) (- a))
3.1b
(* x (* y z))

rewrite14.0ms

Algorithm
rewrite-expression-head
Rules
11×associate-*r*
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
add-exp-log
add-cbrt-cube
pow1
add-log-exp
*-commutative
associate-*r/
distribute-lft-in
sub-neg
distribute-rgt-in
flip--
flip3--
cbrt-unprod
distribute-rgt-neg-out
prod-exp
pow-prod-down
associate-*l*
neg-mul-1
Counts
4 → 60
Calls
4 calls:
Slowest
6.0ms
(* b (- (* c z) (* i a)))
3.0ms
(* j (- (* c t) (* i y)))
3.0ms
(* (* x t) (- a))
1.0ms
(* x (* y z))

series156.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
64.0ms
(* j (- (* c t) (* i y)))
47.0ms
(* b (- (* c z) (* i a)))
27.0ms
(* (* x t) (- a))
17.0ms
(* x (* y z))

simplify1.4s

Counts
36 → 72
Calls
36 calls:
Slowest
546.0ms
(* (* (* (* x t) (* x t)) (* x t)) (* (* (- a) (- a)) (- a)))
150.0ms
(+ (* (* c t) (* c t)) (+ (* (* i y) (* i y)) (* (* c t) (* i y))))
124.0ms
(+ (* (* c z) (* c z)) (+ (* (* i a) (* i a)) (* (* c z) (* i a))))
67.0ms
(- (* t (* j c)) (* i (* y j)))
56.0ms
(- (* z (* b c)) (* a (* i b)))

prune1.4s

Pruning

17 alts after pruning (17 fresh and 0 done)

Merged error: 5.2b

localize38.0ms

Local error

Found 4 expressions with local error:

17.1b
(cbrt (* x (* y z)))
17.1b
(cbrt (* x (* y z)))
17.1b
(cbrt (* x (* y z)))
5.5b
(* b (- (* c z) (* i a)))

rewrite10.0ms

Algorithm
rewrite-expression-head
Rules
add-cube-cbrt
*-un-lft-identity
add-sqr-sqrt
add-log-exp
add-exp-log
add-cbrt-cube
pow1
associate-*r*
pow1/3
cbrt-prod
associate-*r/
distribute-lft-in
sub-neg
distribute-rgt-in
flip--
*-commutative
flip3--
Counts
4 → 44
Calls
4 calls:
Slowest
6.0ms
(* b (- (* c z) (* i a)))
1.0ms
(cbrt (* x (* y z)))
1.0ms
(cbrt (* x (* y z)))
1.0ms
(cbrt (* x (* y z)))

series386.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
126.0ms
(cbrt (* x (* y z)))
110.0ms
(cbrt (* x (* y z)))
94.0ms
(cbrt (* x (* y z)))
55.0ms
(* b (- (* c z) (* i a)))

simplify1.5s

Counts
24 → 56
Calls
24 calls:
Slowest
207.0ms
(* (cbrt -1) (exp (* -1/3 (+ (log (/ -1 x)) (+ (log (/ -1 z)) (log (/ -1 y)))))))
190.0ms
(* (cbrt -1) (exp (* -1/3 (+ (log (/ -1 x)) (+ (log (/ -1 z)) (log (/ -1 y)))))))
144.0ms
(* (cbrt -1) (exp (* -1/3 (+ (log (/ -1 x)) (+ (log (/ -1 z)) (log (/ -1 y)))))))
123.0ms
(exp (* -1/3 (+ (log (/ 1 z)) (+ (log (/ 1 x)) (log (/ 1 y))))))
118.0ms
(+ (* (* c z) (* c z)) (+ (* (* i a) (* i a)) (* (* c z) (* i a))))

prune1.3s

Pruning

17 alts after pruning (16 fresh and 1 done)

Merged error: 5.2b

regimes2.0s

Accuracy

13.8% (5.1b remaining)

Error of 11.4b against oracle of 6.3b and baseline of 12.2b

bsearch302.0ms

end0.0ms

sample6.5s

Algorithm
intervals
Results
5.6s18959×body80valid