Average Error: 11.5 → 12.5
Time: 32.0s
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}\;j \le -1.7806792499353292 \cdot 10^{-209} \lor \neg \left(j \le 5.738120609945175 \cdot 10^{-106}\right):\\ \;\;\;\;(\left(z \cdot y - a \cdot t\right) \cdot x + \left(\left(c \cdot t - y \cdot i\right) \cdot j - \left(\sqrt[3]{z \cdot c - a \cdot i} \cdot \sqrt[3]{z \cdot c - a \cdot i}\right) \cdot \left(\left(\left(\sqrt[3]{\sqrt[3]{z \cdot c - a \cdot i}} \cdot \sqrt[3]{\sqrt[3]{z \cdot c - a \cdot i}}\right) \cdot \sqrt[3]{\sqrt[3]{z \cdot c - a \cdot i}}\right) \cdot b\right)\right))_*\\ \mathbf{else}:\\ \;\;\;\;(\left(z \cdot y - a \cdot t\right) \cdot x + \left(\left(-b\right) \cdot \left(z \cdot c - a \cdot i\right)\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

Derivation

  1. Split input into 2 regimes
  2. if j < -1.7806792499353292e-209 or 5.738120609945175e-106 < j

    1. Initial program 9.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. Initial simplification9.3

      \[\leadsto (\left(z \cdot y - t \cdot a\right) \cdot x + \left(\left(t \cdot c - y \cdot i\right) \cdot j - \left(z \cdot c - i \cdot a\right) \cdot b\right))_*\]
    3. Using strategy rm
    4. Applied add-cube-cbrt9.6

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

      \[\leadsto (\left(z \cdot y - t \cdot a\right) \cdot x + \left(\left(t \cdot c - y \cdot i\right) \cdot j - \color{blue}{\left(\sqrt[3]{z \cdot c - i \cdot a} \cdot \sqrt[3]{z \cdot c - i \cdot a}\right) \cdot \left(\sqrt[3]{z \cdot c - i \cdot a} \cdot b\right)}\right))_*\]
    6. Using strategy rm
    7. Applied add-cube-cbrt9.7

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

    if -1.7806792499353292e-209 < j < 5.738120609945175e-106

    1. Initial program 16.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. Initial simplification16.2

      \[\leadsto (\left(z \cdot y - t \cdot a\right) \cdot x + \left(\left(t \cdot c - y \cdot i\right) \cdot j - \left(z \cdot c - i \cdot a\right) \cdot b\right))_*\]
    3. Taylor expanded around 0 18.5

      \[\leadsto (\left(z \cdot y - t \cdot a\right) \cdot x + \left(\color{blue}{0} - \left(z \cdot c - i \cdot a\right) \cdot b\right))_*\]
  3. Recombined 2 regimes into one program.
  4. Final simplification12.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;j \le -1.7806792499353292 \cdot 10^{-209} \lor \neg \left(j \le 5.738120609945175 \cdot 10^{-106}\right):\\ \;\;\;\;(\left(z \cdot y - a \cdot t\right) \cdot x + \left(\left(c \cdot t - y \cdot i\right) \cdot j - \left(\sqrt[3]{z \cdot c - a \cdot i} \cdot \sqrt[3]{z \cdot c - a \cdot i}\right) \cdot \left(\left(\left(\sqrt[3]{\sqrt[3]{z \cdot c - a \cdot i}} \cdot \sqrt[3]{\sqrt[3]{z \cdot c - a \cdot i}}\right) \cdot \sqrt[3]{\sqrt[3]{z \cdot c - a \cdot i}}\right) \cdot b\right)\right))_*\\ \mathbf{else}:\\ \;\;\;\;(\left(z \cdot y - a \cdot t\right) \cdot x + \left(\left(-b\right) \cdot \left(z \cdot c - a \cdot i\right)\right))_*\\ \end{array}\]

Reproduce

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

start228.0ms

Algorithm
intervals

setup171.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 13.8b

localize43.0ms

Local error

Found 4 expressions with local error:

6.9b
(* (- (* t c) (* y i)) j)
6.7b
(* (- (* z c) (* i a)) b)
4.6b
(fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b)))
0.3b
(- (* t c) (* y i))

rewrite12.0ms

Algorithm
rewrite-expression-head
Counts
4 → 56
Calls

4 calls. Slowest were:

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

series527.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

415.0ms
(fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b)))
44.0ms
(* (- (* z c) (* i a)) b)
42.0ms
(* (- (* t c) (* y i)) j)
26.0ms
(- (* t c) (* y i))

simplify1.3s

Counts
23 → 68
Calls

23 calls. Slowest were:

212.0ms
(- (* a (* i b)) (+ (* z (* b c)) (* i (* j y))))
208.0ms
(- (* a (* i b)) (+ (* z (* b c)) (* i (* j y))))
165.0ms
(* (- (pow (* z c) 3) (pow (* i a) 3)) b)

prune1.1s

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 7.6b

localize19.0ms

Local error

Found 4 expressions with local error:

8.5b
(cbrt (- (* z c) (* i a)))
8.5b
(cbrt (- (* z c) (* i a)))
8.5b
(cbrt (- (* z c) (* i a)))
6.9b
(* (- (* t c) (* y i)) j)

rewrite9.0ms

Algorithm
rewrite-expression-head
Counts
4 → 60
Calls

4 calls. Slowest were:

4.0ms
(* (- (* t c) (* y i)) j)
2.0ms
(cbrt (- (* z c) (* i a)))
1.0ms
(cbrt (- (* z c) (* i a)))

series386.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

129.0ms
(cbrt (- (* z c) (* i a)))
115.0ms
(cbrt (- (* z c) (* i a)))
99.0ms
(cbrt (- (* z c) (* i a)))
43.0ms
(* (- (* t c) (* y i)) j)

simplify4.5s

Counts
31 → 72
Calls

31 calls. Slowest were:

550.0ms
(cbrt (- (* (* z c) (* z c)) (* (* i a) (* i a))))
517.0ms
(cbrt (- (* (* z c) (* z c)) (* (* i a) (* i a))))
452.0ms
(cbrt (- (* (* z c) (* z c)) (* (* i a) (* i a))))

prune1.2s

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 7.5b

localize23.0ms

Local error

Found 4 expressions with local error:

8.5b
(cbrt (- (* z c) (* i a)))
8.5b
(cbrt (- (* z c) (* i a)))
8.5b
(cbrt (- (* z c) (* i a)))
8.5b
(cbrt (- (* z c) (* i a)))

rewrite6.0ms

Algorithm
rewrite-expression-head
Counts
4 → 60
Calls

4 calls. Slowest were:

1.0ms
(cbrt (- (* z c) (* i a)))
1.0ms
(cbrt (- (* z c) (* i a)))
1.0ms
(cbrt (- (* z c) (* i a)))

series433.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

132.0ms
(cbrt (- (* z c) (* i a)))
102.0ms
(cbrt (- (* z c) (* i a)))
100.0ms
(cbrt (- (* z c) (* i a)))
100.0ms
(cbrt (- (* z c) (* i a)))

simplify5.7s

Counts
32 → 72
Calls

32 calls. Slowest were:

616.0ms
(exp (* -1/3 (+ (log (/ 1 z)) (log (/ 1 c)))))
542.0ms
(cbrt (- (* (* z c) (* z c)) (* (* i a) (* i a))))
513.0ms
(cbrt (- (* (* z c) (* z c)) (* (* i a) (* i a))))

prune1.3s

Pruning

13 alts after pruning (12 fresh and 1 done)

Merged error: 7.5b

localize15.0ms

Local error

Found 4 expressions with local error:

6.9b
(* (- (* t c) (* y i)) j)
6.9b
(* (- (* t c) (* y i)) j)
6.9b
(* (- (* t c) (* y i)) j)
6.7b
(* (- (* z c) (* i a)) b)

rewrite19.0ms

Algorithm
rewrite-expression-head
Counts
4 → 60
Calls

4 calls. Slowest were:

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

series169.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

43.0ms
(* (- (* t c) (* y i)) j)
43.0ms
(* (- (* z c) (* i a)) b)
42.0ms
(* (- (* t c) (* y i)) j)
41.0ms
(* (- (* t c) (* y i)) j)

simplify1.7s

Counts
28 → 72
Calls

28 calls. Slowest were:

199.0ms
(* (- (pow (* t c) 3) (pow (* y i) 3)) j)
151.0ms
(* (- (pow (* t c) 3) (pow (* y i) 3)) j)
143.0ms
(* (- (pow (* z c) 3) (pow (* i a) 3)) b)

prune1.6s

Pruning

13 alts after pruning (12 fresh and 1 done)

Merged error: 7.5b

regimes1.3s

Accuracy

-12.5% (5.3b remaining)

Error of 12.5b against oracle of 7.2b and baseline of 11.9b

bsearch640.0ms