Average Error: 11.2 → 11.3
Time: 29.7s
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)\]
\[x \cdot (y \cdot z + \left(t \cdot \left(-a\right)\right))_* + \left(\left(x \cdot (\left(-a\right) \cdot t + \left(a \cdot t\right))_* - b \cdot \left(z \cdot c - i \cdot a\right)\right) + (c \cdot t + \left(-i \cdot y\right))_* \cdot j\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

Derivation

  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 fma-neg11.2

    \[\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}{(c \cdot t + \left(-i \cdot y\right))_*}\]
  4. Using strategy rm
  5. Applied prod-diff11.3

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

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

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

    \[\leadsto \color{blue}{(y \cdot z + \left(-a \cdot t\right))_* \cdot x + \left(\left((\left(-a\right) \cdot t + \left(a \cdot t\right))_* \cdot x - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot (c \cdot t + \left(-i \cdot y\right))_*\right)}\]
  9. Final simplification11.3

    \[\leadsto x \cdot (y \cdot z + \left(t \cdot \left(-a\right)\right))_* + \left(\left(x \cdot (\left(-a\right) \cdot t + \left(a \cdot t\right))_* - b \cdot \left(z \cdot c - i \cdot a\right)\right) + (c \cdot t + \left(-i \cdot y\right))_* \cdot j\right)\]

Reproduce

herbie shell --seed 2019005 +o rules:numerics
(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: 26.4s)Debug log

sample323.0ms

Algorithm
intervals

simplify239.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

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

prune44.0ms

Pruning

2 alts after pruning (2 fresh and 0 done)

Merged error: 7.9b

localize67.0ms

Local error

Found 4 expressions with local error:

3.8b
(* b (- (* c z) (* i a)))
3.6b
(* j (- (* c t) (* i y)))
2.7b
(* x (- (* y z) (* t a)))
0.3b
(- (* c t) (* i y))

rewrite26.0ms

Algorithm
rewrite-expression-head
Counts
4 → 79
Calls

4 calls. Slowest were:

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

series268.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

79.0ms
(* x (- (* y z) (* t a)))
78.0ms
(* j (- (* c t) (* i y)))
75.0ms
(* b (- (* c z) (* i a)))
35.0ms
(- (* c t) (* i y))

simplify2.0s

Counts
48 → 91
Calls

48 calls. Slowest were:

225.0ms
(+ (* (* c t) (* c t)) (+ (* (* i y) (* i y)) (* (* c t) (* i y))))
186.0ms
(+ (* (* y z) (* y z)) (+ (* (* t a) (* t a)) (* (* y z) (* t a))))
173.0ms
(+ (* (* c z) (* c z)) (+ (* (* i a) (* i a)) (* (* c z) (* i a))))

prune1.9s

Pruning

21 alts after pruning (21 fresh and 0 done)

Merged error: 6.3b

localize24.0ms

Local error

Found 4 expressions with local error:

3.8b
(* b (- (* c z) (* i a)))
3.6b
(* j (fma c t (- (* i y))))
2.7b
(* x (- (* y z) (* t a)))
0.0b
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (fma c t (- (* i y)))))

rewrite32.0ms

Algorithm
rewrite-expression-head
Counts
4 → 86
Calls

4 calls. Slowest were:

21.0ms
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (fma c t (- (* i y)))))
4.0ms
(* x (- (* y z) (* t a)))
4.0ms
(* b (- (* c z) (* i a)))

series871.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

628.0ms
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (fma c t (- (* i y)))))
83.0ms
(* j (fma c t (- (* i y))))
81.0ms
(* x (- (* y z) (* t a)))
79.0ms
(* b (- (* c z) (* i a)))

simplify3.6s

Counts
55 → 98
Calls

55 calls. Slowest were:

295.0ms
(* (cbrt (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a))))) (cbrt (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a))))))
292.0ms
(sqrt (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))))
284.0ms
(fma x (- (* y z) (* t a)) (- (* (- (* c z) (* i a)) b)))

prune2.0s

Pruning

18 alts after pruning (18 fresh and 0 done)

Merged error: 3.0b

localize66.0ms

Local error

Found 4 expressions with local error:

3.8b
(* (- (* z c) (* i a)) b)
3.6b
(* (- (* t c) (* y i)) j)
2.2b
(fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b)))
0.3b
(- (* t c) (* y i))

rewrite24.0ms

Algorithm
rewrite-expression-head
Counts
4 → 56
Calls

4 calls. Slowest were:

9.0ms
(* (- (* z c) (* i a)) b)
9.0ms
(* (- (* t c) (* y i)) j)
4.0ms
(- (* t c) (* y i))

series784.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

611.0ms
(fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b)))
74.0ms
(* (- (* z c) (* i a)) b)
72.0ms
(* (- (* t c) (* y i)) j)
27.0ms
(- (* t c) (* y i))

simplify1.7s

Counts
23 → 68
Calls

23 calls. Slowest were:

351.0ms
(- (* a (* i b)) (+ (* z (* b c)) (* i (* j y))))
264.0ms
(- (* a (* i b)) (+ (* z (* b c)) (* i (* j y))))
205.0ms
(* (- (pow (* t c) 3) (pow (* y i) 3)) j)

prune1.5s

Pruning

18 alts after pruning (18 fresh and 0 done)

Merged error: 3.0b

localize32.0ms

Local error

Found 4 expressions with local error:

51.6b
(fma (- a) t (* a t))
3.8b
(* b (- (* c z) (* i a)))
3.6b
(* j (fma c t (- (* i y))))
2.7b
(* (fma y z (- (* a t))) x)

rewrite15.0ms

Algorithm
rewrite-expression-head
Counts
4 → 59
Calls

4 calls. Slowest were:

7.0ms
(* b (- (* c z) (* i a)))
5.0ms
(* (fma y z (- (* a t))) x)
2.0ms
(* j (fma c t (- (* i y))))

series200.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

73.0ms
(* j (fma c t (- (* i y))))
56.0ms
(* (fma y z (- (* a t))) x)
45.0ms
(* b (- (* c z) (* i a)))
25.0ms
(fma (- a) t (* a t))

simplify1.0s

Counts
30 → 71
Calls

30 calls. Slowest were:

184.0ms
(+ (* (* c z) (* c z)) (+ (* (* i a) (* i a)) (* (* c z) (* i a))))
95.0ms
(- (* t (* j c)) (* i (* y j)))
95.0ms
(- (* x (* z y)) (* t (* x a)))

prune1.9s

Pruning

18 alts after pruning (17 fresh and 1 done)

Merged error: 3.0b

regimes1.6s

Accuracy

0% (7.2b remaining)

Error of 11.3b against oracle of 4.1b and baseline of 11.3b

bsearch8.0ms

end0.0ms

sample6.1s

Algorithm
intervals