Average Error: 11.1 → 11.2
Time: 40.1s
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 \left(-y\right)\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.1

    \[\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 prod-diff11.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}{\left((c \cdot t + \left(-y \cdot i\right))_* + (\left(-y\right) \cdot i + \left(y \cdot i\right))_*\right)}\]
  4. Applied distribute-lft-in11.2

    \[\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 (c \cdot t + \left(-y \cdot i\right))_* + j \cdot (\left(-y\right) \cdot i + \left(y \cdot i\right))_*\right)}\]
  5. Applied associate-+r+11.2

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

    \[\leadsto \left(\left(x \cdot \left(y \cdot z - t \cdot a\right) - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot (c \cdot t + \left(-y \cdot i\right))_*\right) + \color{blue}{0}\]
  7. Using strategy rm
  8. Applied prod-diff11.2

    \[\leadsto \left(\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(-y \cdot i\right))_*\right) + 0\]
  9. Applied distribute-rgt-in11.2

    \[\leadsto \left(\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(-y \cdot i\right))_*\right) + 0\]
  10. Applied associate--l+11.2

    \[\leadsto \left(\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(-y \cdot i\right))_*\right) + 0\]
  11. Applied associate-+l+11.2

    \[\leadsto \color{blue}{\left((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(-y \cdot i\right))_*\right)\right)} + 0\]
  12. Final simplification11.2

    \[\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 \left(-y\right)\right))_* \cdot j\right)\]

Reproduce

herbie shell --seed 2019004 +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: 37.1s)Debug log

sample234.0ms

Algorithm
intervals

simplify184.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

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

prune32.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 10.4b

localize53.0ms

Local error

Found 4 expressions with local error:

5.8b
(* b (- (* c z) (* i a)))
4.4b
(* x (- (* y z) (* t a)))
4.0b
(* j (- (* c t) (* i y)))
0.0b
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y))))

rewrite33.0ms

Algorithm
rewrite-expression-head
Counts
4 → 108
Calls

4 calls. Slowest were:

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

series753.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

563.0ms
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (- (* c t) (* i y))))
72.0ms
(* j (- (* c t) (* i y)))
61.0ms
(* x (- (* y z) (* t a)))
58.0ms
(* b (- (* c z) (* i a)))

simplify9.4s

Counts
89 → 120
Calls

89 calls. Slowest were:

536.0ms
(* (* (+ (* (* y z) (* y z)) (+ (* (* t a) (* t a)) (* (* y z) (* t a)))) (+ (* (* c z) (* c z)) (+ (* (* i a) (* i a)) (* (* c z) (* i a))))) (+ (* (* c t) (* c t)) (+ (* (* i y) (* i y)) (* (* c t) (* i y)))))
505.0ms
(+ (* (- (* (* x (- (* (* y z) (* y z)) (* (* t a) (* t a)))) (+ (* c z) (* i a))) (* (+ (* y z) (* t a)) (* b (- (* (* c z) (* c z)) (* (* i a) (* i a)))))) (+ (* c t) (* i y))) (* (* (+ (* y z) (* t a)) (+ (* c z) (* i a))) (* j (- (* (* c t) (* c t)) (* (* i y) (* i y))))))
411.0ms
(* (* (+ (* (* y z) (* y z)) (+ (* (* t a) (* t a)) (* (* y z) (* t a)))) (+ (* (* c z) (* c z)) (+ (* (* i a) (* i a)) (* (* c z) (* i a))))) (+ (* c t) (* i y)))

prune2.3s

Pruning

18 alts after pruning (18 fresh and 0 done)

Merged error: 4.2b

localize32.0ms

Local error

Found 4 expressions with local error:

5.8b
(* b (- (* c z) (* i a)))
4.4b
(* x (- (* y z) (* t a)))
4.0b
(* j (fma c t (- (* y i))))
0.0b
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (fma c t (- (* y i)))))

rewrite32.0ms

Algorithm
rewrite-expression-head
Counts
4 → 86
Calls

4 calls. Slowest were:

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

series757.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

619.0ms
(+ (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))) (* j (fma c t (- (* y i)))))
47.0ms
(* j (fma c t (- (* y i))))
46.0ms
(* x (- (* y z) (* t a)))
45.0ms
(* b (- (* c z) (* i a)))

simplify2.8s

Counts
55 → 98
Calls

55 calls. Slowest were:

238.0ms
(* (cbrt (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a))))) (cbrt (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a))))))
224.0ms
(+ (* (* y z) (* y z)) (+ (* (* t a) (* t a)) (* (* y z) (* t a))))
193.0ms
(sqrt (- (* x (- (* y z) (* t a))) (* b (- (* c z) (* i a)))))

prune1.8s

Pruning

17 alts after pruning (17 fresh and 0 done)

Merged error: 4.2b

localize29.0ms

Local error

Found 4 expressions with local error:

52.0b
(fma (- a) t (* a t))
5.8b
(* b (- (* c z) (* i a)))
4.4b
(* (fma y z (- (* a t))) x)
4.0b
(* j (fma c t (- (* y i))))

rewrite8.0ms

Algorithm
rewrite-expression-head
Counts
4 → 59
Calls

4 calls. Slowest were:

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

series184.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

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

simplify977.0ms

Counts
30 → 71
Calls

30 calls. Slowest were:

252.0ms
(+ (* (* c z) (* c z)) (+ (* (* i a) (* i a)) (* (* c z) (* i a))))
85.0ms
(- (* z (* b c)) (* a (* i b)))
59.0ms
(- (* z (* b c)) (* a (* i b)))

prune1.3s

Pruning

17 alts after pruning (16 fresh and 1 done)

Merged error: 4.2b

localize15.0ms

Local error

Found 4 expressions with local error:

5.8b
(* b (- (* c z) (* i a)))
4.8b
(cbrt (- (* c t) (* i y)))
4.8b
(cbrt (- (* c t) (* i y)))
4.8b
(cbrt (- (* c t) (* i y)))

rewrite12.0ms

Algorithm
rewrite-expression-head
Counts
4 → 66
Calls

4 calls. Slowest were:

7.0ms
(* b (- (* c z) (* i a)))
2.0ms
(cbrt (- (* c t) (* i y)))
1.0ms
(cbrt (- (* c t) (* i y)))

series409.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

137.0ms
(cbrt (- (* c t) (* i y)))
119.0ms
(cbrt (- (* c t) (* i y)))
106.0ms
(cbrt (- (* c t) (* i y)))
46.0ms
(* b (- (* c z) (* i a)))

simplify4.8s

Counts
38 → 78
Calls

38 calls. Slowest were:

562.0ms
(cbrt (- (* (* c t) (* c t)) (* (* i y) (* i y))))
489.0ms
(cbrt (- (* (* c t) (* c t)) (* (* i y) (* i y))))
411.0ms
(exp (* -1/3 (+ (log (/ 1 c)) (log (/ 1 t)))))

prune1.4s

Pruning

17 alts after pruning (16 fresh and 1 done)

Merged error: 4.2b

regimes1.9s

Accuracy

0% (7.1b remaining)

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

bsearch6.0ms

end0.0ms

sample7.7s

Algorithm
intervals