Average Error: 25.3 → 25.4
Time: 2.5m
Precision: 64
Internal Precision: 128
\[\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\]
\[(\left(y0 \cdot c - y1 \cdot a\right) \cdot \left(y2 \cdot x - z \cdot y3\right) + \left(\left(\left(\sqrt[3]{\left(y \cdot x\right) \cdot \left(b \cdot a - c \cdot i\right)} \cdot \sqrt[3]{\left(y \cdot x\right) \cdot \left(b \cdot a - c \cdot i\right)}\right) \cdot \sqrt[3]{\left(y \cdot x\right) \cdot \left(b \cdot a - c \cdot i\right)} + \left(b \cdot a - c \cdot i\right) \cdot \left(t \cdot \left(-z\right)\right)\right) - \left(y0 \cdot b - y1 \cdot i\right) \cdot \left(x \cdot j - k \cdot z\right)\right))_* + \left(\left(b \cdot y4 - y5 \cdot i\right) \cdot \left(t \cdot j - y \cdot k\right) - \left(\left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - a \cdot y5\right) - \left(y1 \cdot y4 - y0 \cdot y5\right) \cdot \left(y2 \cdot k - j \cdot y3\right)\right)\right)\]

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

Bits error versus y0

Bits error versus y1

Bits error versus y2

Bits error versus y3

Bits error versus y4

Bits error versus y5

Derivation

  1. Initial program 25.3

    \[\left(\left(\left(\left(\left(x \cdot y - z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right) - \left(x \cdot j - z \cdot k\right) \cdot \left(y0 \cdot b - y1 \cdot i\right)\right) + \left(x \cdot y2 - z \cdot y3\right) \cdot \left(y0 \cdot c - y1 \cdot a\right)\right) + \left(t \cdot j - y \cdot k\right) \cdot \left(y4 \cdot b - y5 \cdot i\right)\right) - \left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - y5 \cdot a\right)\right) + \left(k \cdot y2 - j \cdot y3\right) \cdot \left(y4 \cdot y1 - y5 \cdot y0\right)\]
  2. Simplified25.3

    \[\leadsto \color{blue}{(\left(y0 \cdot c - y1 \cdot a\right) \cdot \left(y2 \cdot x - z \cdot y3\right) + \left(\left(a \cdot b - c \cdot i\right) \cdot \left(x \cdot y - z \cdot t\right) - \left(y0 \cdot b - i \cdot y1\right) \cdot \left(j \cdot x - z \cdot k\right)\right))_* + \left(\left(t \cdot j - k \cdot y\right) \cdot \left(b \cdot y4 - y5 \cdot i\right) - \left(\left(y2 \cdot t - y \cdot y3\right) \cdot \left(c \cdot y4 - a \cdot y5\right) - \left(y4 \cdot y1 - y0 \cdot y5\right) \cdot \left(y2 \cdot k - j \cdot y3\right)\right)\right)}\]
  3. Using strategy rm
  4. Applied sub-neg25.3

    \[\leadsto (\left(y0 \cdot c - y1 \cdot a\right) \cdot \left(y2 \cdot x - z \cdot y3\right) + \left(\left(a \cdot b - c \cdot i\right) \cdot \color{blue}{\left(x \cdot y + \left(-z \cdot t\right)\right)} - \left(y0 \cdot b - i \cdot y1\right) \cdot \left(j \cdot x - z \cdot k\right)\right))_* + \left(\left(t \cdot j - k \cdot y\right) \cdot \left(b \cdot y4 - y5 \cdot i\right) - \left(\left(y2 \cdot t - y \cdot y3\right) \cdot \left(c \cdot y4 - a \cdot y5\right) - \left(y4 \cdot y1 - y0 \cdot y5\right) \cdot \left(y2 \cdot k - j \cdot y3\right)\right)\right)\]
  5. Applied distribute-rgt-in25.3

    \[\leadsto (\left(y0 \cdot c - y1 \cdot a\right) \cdot \left(y2 \cdot x - z \cdot y3\right) + \left(\color{blue}{\left(\left(x \cdot y\right) \cdot \left(a \cdot b - c \cdot i\right) + \left(-z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right)\right)} - \left(y0 \cdot b - i \cdot y1\right) \cdot \left(j \cdot x - z \cdot k\right)\right))_* + \left(\left(t \cdot j - k \cdot y\right) \cdot \left(b \cdot y4 - y5 \cdot i\right) - \left(\left(y2 \cdot t - y \cdot y3\right) \cdot \left(c \cdot y4 - a \cdot y5\right) - \left(y4 \cdot y1 - y0 \cdot y5\right) \cdot \left(y2 \cdot k - j \cdot y3\right)\right)\right)\]
  6. Using strategy rm
  7. Applied add-cube-cbrt25.4

    \[\leadsto (\left(y0 \cdot c - y1 \cdot a\right) \cdot \left(y2 \cdot x - z \cdot y3\right) + \left(\left(\color{blue}{\left(\sqrt[3]{\left(x \cdot y\right) \cdot \left(a \cdot b - c \cdot i\right)} \cdot \sqrt[3]{\left(x \cdot y\right) \cdot \left(a \cdot b - c \cdot i\right)}\right) \cdot \sqrt[3]{\left(x \cdot y\right) \cdot \left(a \cdot b - c \cdot i\right)}} + \left(-z \cdot t\right) \cdot \left(a \cdot b - c \cdot i\right)\right) - \left(y0 \cdot b - i \cdot y1\right) \cdot \left(j \cdot x - z \cdot k\right)\right))_* + \left(\left(t \cdot j - k \cdot y\right) \cdot \left(b \cdot y4 - y5 \cdot i\right) - \left(\left(y2 \cdot t - y \cdot y3\right) \cdot \left(c \cdot y4 - a \cdot y5\right) - \left(y4 \cdot y1 - y0 \cdot y5\right) \cdot \left(y2 \cdot k - j \cdot y3\right)\right)\right)\]
  8. Final simplification25.4

    \[\leadsto (\left(y0 \cdot c - y1 \cdot a\right) \cdot \left(y2 \cdot x - z \cdot y3\right) + \left(\left(\left(\sqrt[3]{\left(y \cdot x\right) \cdot \left(b \cdot a - c \cdot i\right)} \cdot \sqrt[3]{\left(y \cdot x\right) \cdot \left(b \cdot a - c \cdot i\right)}\right) \cdot \sqrt[3]{\left(y \cdot x\right) \cdot \left(b \cdot a - c \cdot i\right)} + \left(b \cdot a - c \cdot i\right) \cdot \left(t \cdot \left(-z\right)\right)\right) - \left(y0 \cdot b - y1 \cdot i\right) \cdot \left(x \cdot j - k \cdot z\right)\right))_* + \left(\left(b \cdot y4 - y5 \cdot i\right) \cdot \left(t \cdot j - y \cdot k\right) - \left(\left(t \cdot y2 - y \cdot y3\right) \cdot \left(y4 \cdot c - a \cdot y5\right) - \left(y1 \cdot y4 - y0 \cdot y5\right) \cdot \left(y2 \cdot k - j \cdot y3\right)\right)\right)\]

Reproduce

herbie shell --seed 2019010 +o rules:numerics
(FPCore (x y z t a b c i j k y0 y1 y2 y3 y4 y5)
  :name "Linear.Matrix:det44 from linear-1.19.1.3"
  (+ (- (+ (+ (- (* (- (* x y) (* z t)) (- (* a b) (* c i))) (* (- (* x j) (* z k)) (- (* y0 b) (* y1 i)))) (* (- (* x y2) (* z y3)) (- (* y0 c) (* y1 a)))) (* (- (* t j) (* y k)) (- (* y4 b) (* y5 i)))) (* (- (* t y2) (* y y3)) (- (* y4 c) (* y5 a)))) (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0)))))

Details

Time bar (total: 2.4m)Debug log

sample2.3s

Algorithm
intervals

simplify327.0ms

Counts
1 → 1
Calls
1 calls:
Slowest
327.0ms
(+ (- (+ (+ (- (* (- (* x y) (* z t)) (- (* a b) (* c i))) (* (- (* x j) (* z k)) (- (* y0 b) (* y1 i)))) (* (- (* x y2) (* z y3)) (- (* y0 c) (* y1 a)))) (* (- (* t j) (* y k)) (- (* y4 b) (* y5 i)))) (* (- (* t y2) (* y y3)) (- (* y4 c) (* y5 a)))) (* (- (* k y2) (* j y3)) (- (* y4 y1) (* y5 y0))))

prune54.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 26.5b

localize129.0ms

Local error

Found 4 expressions with local error:

10.3b
(* (- (* t j) (* k y)) (- (* b y4) (* y5 i)))
9.4b
(* (- (* a b) (* c i)) (- (* x y) (* z t)))
8.8b
(* (- (* y2 t) (* y y3)) (- (* c y4) (* a y5)))
8.4b
(* (- (* y4 y1) (* y0 y5)) (- (* y2 k) (* j y3)))

rewrite39.0ms

Algorithm
rewrite-expression-head
Rules
24×flip--
24×flip3--
16×frac-times
12×add-cube-cbrt
12×add-exp-log
12×associate-*l*
12×associate-*r*
12×add-cbrt-cube
12×distribute-lft-in
12×*-un-lft-identity
12×pow1
12×add-sqr-sqrt
12×distribute-rgt-in
associate-*r/
associate-*l/
prod-diff
sub-neg
add-log-exp
log1p-expm1-u
cbrt-unprod
*-commutative
prod-exp
pow-prod-down
expm1-log1p-u
Counts
4 → 132
Calls
4 calls:
Slowest
9.0ms
(* (- (* t j) (* k y)) (- (* b y4) (* y5 i)))
9.0ms
(* (- (* a b) (* c i)) (- (* x y) (* z t)))
9.0ms
(* (- (* y2 t) (* y y3)) (- (* c y4) (* a y5)))
9.0ms
(* (- (* y4 y1) (* y0 y5)) (- (* y2 k) (* j y3)))

series491.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
138.0ms
(* (- (* y2 t) (* y y3)) (- (* c y4) (* a y5)))
120.0ms
(* (- (* a b) (* c i)) (- (* x y) (* z t)))
117.0ms
(* (- (* t j) (* k y)) (- (* b y4) (* y5 i)))
116.0ms
(* (- (* y4 y1) (* y0 y5)) (- (* y2 k) (* j y3)))

simplify11.2s

Counts
116 → 144
Calls
116 calls:
Slowest
417.0ms
(* (- (* (* y2 t) (* y2 t)) (* (* y y3) (* y y3))) (- (* (* c y4) (* c y4)) (* (* a y5) (* a y5))))
388.0ms
(* (- (* (* t j) (* t j)) (* (* k y) (* k y))) (- (* (* b y4) (* b y4)) (* (* y5 i) (* y5 i))))
384.0ms
(* (- (* (* a b) (* a b)) (* (* c i) (* c i))) (- (* (* x y) (* x y)) (* (* z t) (* z t))))
380.0ms
(* (- (* (* y4 y1) (* y4 y1)) (* (* y0 y5) (* y0 y5))) (- (* (* y2 k) (* y2 k)) (* (* j y3) (* j y3))))
323.0ms
(* (- (* a b) (* c i)) (- (* x y) (* z t)))

prune6.2s

Pruning

22 alts after pruning (22 fresh and 0 done)

Merged error: 21.5b

localize28.0ms

Local error

Found 4 expressions with local error:

10.3b
(* (- (* t j) (* k y)) (- (* b y4) (* y5 i)))
9.5b
(* (* x y) (- (* a b) (* c i)))
9.4b
(* (- (* z t)) (- (* a b) (* c i)))
8.8b
(* (- (* y2 t) (* y y3)) (- (* c y4) (* a y5)))

rewrite33.0ms

Algorithm
rewrite-expression-head
Rules
14×flip--
14×flip3--
13×associate-*l*
12×add-exp-log
12×associate-*r*
12×add-cbrt-cube
12×distribute-lft-in
12×pow1
12×distribute-rgt-in
11×add-cube-cbrt
11×*-un-lft-identity
11×add-sqr-sqrt
associate-*r/
prod-diff
sub-neg
frac-times
add-log-exp
log1p-expm1-u
cbrt-unprod
*-commutative
prod-exp
associate-*l/
pow-prod-down
expm1-log1p-u
distribute-rgt-neg-in
neg-mul-1
distribute-lft-neg-in
distribute-lft-neg-out
Counts
4 → 122
Calls
4 calls:
Slowest
9.0ms
(* (- (* t j) (* k y)) (- (* b y4) (* y5 i)))
9.0ms
(* (- (* y2 t) (* y y3)) (- (* c y4) (* a y5)))
7.0ms
(* (- (* z t)) (- (* a b) (* c i)))
6.0ms
(* (* x y) (- (* a b) (* c i)))

series370.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
119.0ms
(* (- (* t j) (* k y)) (- (* b y4) (* y5 i)))
115.0ms
(* (- (* y2 t) (* y y3)) (- (* c y4) (* a y5)))
71.0ms
(* (- (* z t)) (- (* a b) (* c i)))
64.0ms
(* (* x y) (- (* a b) (* c i)))

simplify10.5s

Counts
96 → 134
Calls
96 calls:
Slowest
460.0ms
(* (- (* (* y2 t) (* y2 t)) (* (* y y3) (* y y3))) (- (* (* c y4) (* c y4)) (* (* a y5) (* a y5))))
438.0ms
(* (* x y) (- (* a b) (* c i)))
382.0ms
(* (- (* (* t j) (* t j)) (* (* k y) (* k y))) (- (* (* b y4) (* b y4)) (* (* y5 i) (* y5 i))))
335.0ms
(- (* a (* x (* y b))) (* i (* x (* c y))))
319.0ms
(* (- (* t j) (* k y)) (- (* b y4) (* y5 i)))

prune8.3s

Pruning

23 alts after pruning (23 fresh and 0 done)

Merged error: 20.8b

localize56.0ms

Local error

Found 4 expressions with local error:

13.6b
(cbrt (* (* x y) (- (* a b) (* c i))))
13.6b
(cbrt (* (* x y) (- (* a b) (* c i))))
13.6b
(cbrt (* (* x y) (- (* a b) (* c i))))
10.3b
(* (- (* t j) (* k y)) (- (* b y4) (* y5 i)))

rewrite24.0ms

Algorithm
rewrite-expression-head
Rules
flip--
flip3--
associate-*r/
add-cube-cbrt
add-exp-log
add-cbrt-cube
*-un-lft-identity
cbrt-div
pow1
add-sqr-sqrt
add-log-exp
log1p-expm1-u
frac-times
expm1-log1p-u
associate-*l*
associate-*r*
pow1/3
distribute-lft-in
distribute-rgt-in
cbrt-prod
associate-*l/
prod-diff
sub-neg
cbrt-unprod
*-commutative
prod-exp
pow-prod-down
Counts
4 → 72
Calls
4 calls:
Slowest
9.0ms
(* (- (* t j) (* k y)) (- (* b y4) (* y5 i)))
4.0ms
(cbrt (* (* x y) (- (* a b) (* c i))))
3.0ms
(cbrt (* (* x y) (- (* a b) (* c i))))
3.0ms
(cbrt (* (* x y) (- (* a b) (* c i))))

series788.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
211.0ms
(cbrt (* (* x y) (- (* a b) (* c i))))
210.0ms
(cbrt (* (* x y) (- (* a b) (* c i))))
190.0ms
(cbrt (* (* x y) (- (* a b) (* c i))))
177.0ms
(* (- (* t j) (* k y)) (- (* b y4) (* y5 i)))

simplify10.4s

Counts
47 → 84
Calls
47 calls:
Slowest
594.0ms
(exp (* -1/3 (+ (log (/ -1 x)) (+ (log (/ -1 a)) (+ (log (/ -1 b)) (log (/ -1 y)))))))
585.0ms
(exp (* -1/3 (+ (log (/ -1 x)) (+ (log (/ -1 a)) (+ (log (/ -1 b)) (log (/ -1 y)))))))
576.0ms
(* (+ (* (* t j) (* t j)) (+ (* (* k y) (* k y)) (* (* t j) (* k y)))) (+ (* (* b y4) (* b y4)) (+ (* (* y5 i) (* y5 i)) (* (* b y4) (* y5 i)))))
506.0ms
(* (- (* (* t j) (* t j)) (* (* k y) (* k y))) (- (* (* b y4) (* b y4)) (* (* y5 i) (* y5 i))))
502.0ms
(exp (* -1/3 (+ (log (/ 1 b)) (+ (log (/ 1 x)) (+ (log (/ 1 a)) (log (/ 1 y)))))))

prune6.2s

Pruning

23 alts after pruning (22 fresh and 1 done)

Merged error: 20.8b

localize24.0ms

Local error

Found 4 expressions with local error:

10.3b
(* (- (* t j) (* k y)) (- (* b y4) (* y5 i)))
9.4b
(* (- (* a b) (* c i)) (- (* x y) (* z t)))
8.8b
(* (- (* y2 t) (* y y3)) (- (* c y4) (* a y5)))
8.8b
(* (- (* y2 t) (* y y3)) (- (* c y4) (* a y5)))

rewrite61.0ms

Algorithm
rewrite-expression-head
Rules
24×flip--
24×flip3--
16×frac-times
12×add-cube-cbrt
12×add-exp-log
12×associate-*l*
12×associate-*r*
12×add-cbrt-cube
12×distribute-lft-in
12×*-un-lft-identity
12×pow1
12×add-sqr-sqrt
12×distribute-rgt-in
associate-*r/
associate-*l/
prod-diff
sub-neg
add-log-exp
log1p-expm1-u
cbrt-unprod
*-commutative
prod-exp
pow-prod-down
expm1-log1p-u
Counts
4 → 132
Calls
4 calls:
Slowest
22.0ms
(* (- (* y2 t) (* y y3)) (- (* c y4) (* a y5)))
16.0ms
(* (- (* y2 t) (* y y3)) (- (* c y4) (* a y5)))
10.0ms
(* (- (* t j) (* k y)) (- (* b y4) (* y5 i)))
9.0ms
(* (- (* a b) (* c i)) (- (* x y) (* z t)))

series728.0ms

Counts
4 → 12
Calls
4 calls:
Slowest
207.0ms
(* (- (* y2 t) (* y y3)) (- (* c y4) (* a y5)))
188.0ms
(* (- (* a b) (* c i)) (- (* x y) (* z t)))
185.0ms
(* (- (* y2 t) (* y y3)) (- (* c y4) (* a y5)))
148.0ms
(* (- (* t j) (* k y)) (- (* b y4) (* y5 i)))

simplify16.8s

Counts
116 → 144
Calls
116 calls:
Slowest
911.0ms
(* (- (* (* y2 t) (* y2 t)) (* (* y y3) (* y y3))) (- (* (* c y4) (* c y4)) (* (* a y5) (* a y5))))
600.0ms
(* (- (* (* y2 t) (* y2 t)) (* (* y y3) (* y y3))) (- (* (* c y4) (* c y4)) (* (* a y5) (* a y5))))
584.0ms
(* (- (* (* a b) (* a b)) (* (* c i) (* c i))) (- (* (* x y) (* x y)) (* (* z t) (* z t))))
528.0ms
(* (- (* (* t j) (* t j)) (* (* k y) (* k y))) (- (* (* b y4) (* b y4)) (* (* y5 i) (* y5 i))))
522.0ms
(* (- (* y2 t) (* y y3)) (- (* c y4) (* a y5)))

prune7.3s

Pruning

23 alts after pruning (22 fresh and 1 done)

Merged error: 20.8b

regimes10.8s

Accuracy

0% (6.6b remaining)

Error of 25.4b against oracle of 18.8b and baseline of 25.4b

bsearch17.0ms

end0.0ms

sample50.2s

Algorithm
intervals