Average Error: 11.6 → 11.7
Time: 39.8s
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 -2.3604055830462238 \cdot 10^{-200} \lor \neg \left(j \le 1.394574573285174 \cdot 10^{-197}\right):\\ \;\;\;\;(\left(z \cdot y - a \cdot t\right) \cdot x + \left(\left(j \cdot \sqrt[3]{c \cdot t - y \cdot i}\right) \cdot \left(\sqrt[3]{c \cdot t - y \cdot i} \cdot \sqrt[3]{c \cdot t - y \cdot i}\right) - b \cdot \left(z \cdot c - a \cdot i\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 < -2.3604055830462238e-200 or 1.394574573285174e-197 < j

    1. Initial program 10.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 simplification10.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-cbrt10.6

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

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

    if -2.3604055830462238e-200 < j < 1.394574573285174e-197

    1. Initial program 16.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 simplification16.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. Taylor expanded around 0 15.7

      \[\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 simplification11.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;j \le -2.3604055830462238 \cdot 10^{-200} \lor \neg \left(j \le 1.394574573285174 \cdot 10^{-197}\right):\\ \;\;\;\;(\left(z \cdot y - a \cdot t\right) \cdot x + \left(\left(j \cdot \sqrt[3]{c \cdot t - y \cdot i}\right) \cdot \left(\sqrt[3]{c \cdot t - y \cdot i} \cdot \sqrt[3]{c \cdot t - y \cdot i}\right) - b \cdot \left(z \cdot c - a \cdot i\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 2018362 +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: 27.7s)Debug log

start224.0ms

Algorithm
intervals

setup292.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 13.5b

localize75.0ms

Local error

Found 4 expressions with local error:

6.2b
(* (- (* t c) (* y i)) j)
5.6b
(fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b)))
4.9b
(* (- (* z c) (* i a)) b)
0.2b
(- (* t c) (* y i))

rewrite19.0ms

Algorithm
rewrite-expression-head
Counts
4 → 56
Calls

4 calls. Slowest were:

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

series558.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

419.0ms
(fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b)))
67.0ms
(* (- (* t c) (* y i)) j)
46.0ms
(* (- (* z c) (* i a)) b)
26.0ms
(- (* t c) (* y i))

simplify1.2s

Counts
23 → 68
Calls

23 calls. Slowest were:

255.0ms
(- (* a (* i b)) (+ (* z (* b c)) (* i (* j y))))
233.0ms
(- (* a (* i b)) (+ (* z (* b c)) (* i (* j y))))
166.0ms
(* (- (pow (* z c) 3) (pow (* i a) 3)) b)

prune1.1s

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 7.2b

localize20.0ms

Local error

Found 4 expressions with local error:

8.1b
(cbrt (- (* t c) (* y i)))
8.1b
(cbrt (- (* t c) (* y i)))
8.1b
(cbrt (- (* t c) (* y i)))
5.6b
(fma (- (* z y) (* t a)) x (- (* (* (cbrt (- (* t c) (* y i))) (cbrt (- (* t c) (* y i)))) (* (cbrt (- (* t c) (* y i))) j)) (* (- (* z c) (* i a)) b)))

rewrite5.0ms

Algorithm
rewrite-expression-head
Counts
4 → 55
Calls

4 calls. Slowest were:

2.0ms
(cbrt (- (* t c) (* y i)))
1.0ms
(cbrt (- (* t c) (* y i)))
1.0ms
(cbrt (- (* t c) (* y i)))

series884.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

501.0ms
(fma (- (* z y) (* t a)) x (- (* (* (cbrt (- (* t c) (* y i))) (cbrt (- (* t c) (* y i)))) (* (cbrt (- (* t c) (* y i))) j)) (* (- (* z c) (* i a)) b)))
161.0ms
(cbrt (- (* t c) (* y i)))
117.0ms
(cbrt (- (* t c) (* y i)))
104.0ms
(cbrt (- (* t c) (* y i)))

simplify5.6s

Counts
27 → 67
Calls

27 calls. Slowest were:

638.0ms
(- (* a (* i b)) (+ (* z (* b c)) (* i (* j y))))
531.0ms
(cbrt (- (* (* t c) (* t c)) (* (* y i) (* y i))))
530.0ms
(cbrt (- (* (* t c) (* t c)) (* (* y i) (* y i))))

prune1.5s

Pruning

16 alts after pruning (15 fresh and 1 done)

Merged error: 7.1b

localize23.0ms

Local error

Found 4 expressions with local error:

6.2b
(* (- (* t c) (* y i)) j)
6.2b
(* (- (* t c) (* y i)) j)
6.2b
(* (- (* t c) (* y i)) j)
5.6b
(fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b)))

rewrite23.0ms

Algorithm
rewrite-expression-head
Counts
4 → 55
Calls

4 calls. Slowest were:

9.0ms
(* (- (* t c) (* y i)) j)
8.0ms
(* (- (* t c) (* y i)) j)
4.0ms
(* (- (* t c) (* y i)) j)

series661.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

505.0ms
(fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b)))
63.0ms
(* (- (* t c) (* y i)) j)
50.0ms
(* (- (* t c) (* y i)) j)
43.0ms
(* (- (* t c) (* y i)) j)

simplify2.0s

Counts
24 → 67
Calls

24 calls. Slowest were:

286.0ms
(- (* a (* i b)) (+ (* z (* b c)) (* i (* j y))))
237.0ms
(- (* a (* i b)) (+ (* z (* b c)) (* i (* j y))))
220.0ms
(* (- (pow (* t c) 3) (pow (* y i) 3)) j)

prune1.8s

Pruning

17 alts after pruning (15 fresh and 2 done)

Merged error: 7.1b

localize34.0ms

Local error

Found 4 expressions with local error:

24.0b
(cbrt (- (* (* t c) (* t c)) (* (* y i) (* y i))))
8.1b
(cbrt (+ (* t c) (* y i)))
8.1b
(cbrt (- (* t c) (* y i)))
8.1b
(cbrt (- (* t c) (* y i)))

rewrite8.0ms

Algorithm
rewrite-expression-head
Counts
4 → 61
Calls

4 calls. Slowest were:

4.0ms
(cbrt (- (* (* t c) (* t c)) (* (* y i) (* y i))))
1.0ms
(cbrt (- (* t c) (* y i)))
1.0ms
(cbrt (- (* t c) (* y i)))

series419.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

124.0ms
(cbrt (- (* t c) (* y i)))
102.0ms
(cbrt (- (* t c) (* y i)))
97.0ms
(cbrt (- (* (* t c) (* t c)) (* (* y i) (* y i))))
96.0ms
(cbrt (+ (* t c) (* y i)))

simplify6.4s

Counts
33 → 73
Calls

33 calls. Slowest were:

549.0ms
(cbrt (- (* (* t c) (* t c)) (* (* y i) (* y i))))
524.0ms
(cbrt (- (* (* t c) (* t c)) (* (* y i) (* y i))))
479.0ms
(cbrt (sqrt (- (* (* t c) (* t c)) (* (* y i) (* y i)))))

prune2.1s

Pruning

17 alts after pruning (15 fresh and 2 done)

Merged error: 7.1b

regimes2.3s

Accuracy

2.9% (4.7b remaining)

Error of 11.7b against oracle of 7.0b and baseline of 11.9b

bsearch440.0ms