Average Error: 11.6 → 12.3
Time: 34.6s
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 -6.075137221518064 \cdot 10^{-153} \lor \neg \left(j \le 5.649135357315778 \cdot 10^{-180}\right):\\ \;\;\;\;(\left(z \cdot y - a \cdot t\right) \cdot x + \left(j \cdot \left(\sqrt[3]{c \cdot t - y \cdot i} \cdot \left(\sqrt[3]{c \cdot t - y \cdot i} \cdot \sqrt[3]{c \cdot t - y \cdot i}\right)\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 < -6.075137221518064e-153 or 5.649135357315778e-180 < j

    1. Initial program 9.7

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

      \[\leadsto \color{blue}{(\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.1

      \[\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))_*\]

    if -6.075137221518064e-153 < j < 5.649135357315778e-180

    1. Initial program 16.4

      \[\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. Simplified16.4

      \[\leadsto \color{blue}{(\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 17.9

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;j \le -6.075137221518064 \cdot 10^{-153} \lor \neg \left(j \le 5.649135357315778 \cdot 10^{-180}\right):\\ \;\;\;\;(\left(z \cdot y - a \cdot t\right) \cdot x + \left(j \cdot \left(\sqrt[3]{c \cdot t - y \cdot i} \cdot \left(\sqrt[3]{c \cdot t - y \cdot i} \cdot \sqrt[3]{c \cdot t - y \cdot i}\right)\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 2019002 +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: 32.4s)Debug log

sample218.0ms

Algorithm
intervals

simplify272.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

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

prune29.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 13.4b

localize53.0ms

Local error

Found 4 expressions with local error:

5.8b
(* (- (* z c) (* i a)) b)
5.5b
(fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b)))
4.7b
(* (- (* t c) (* y i)) j)
0.0b
(- (* t c) (* y i))

rewrite21.0ms

Algorithm
rewrite-expression-head
Counts
4 → 56
Calls

4 calls. Slowest were:

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

series769.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

610.0ms
(fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b)))
75.0ms
(* (- (* t c) (* y i)) j)
49.0ms
(* (- (* z c) (* i a)) b)
35.0ms
(- (* t c) (* y i))

simplify1.7s

Counts
23 → 68
Calls

23 calls. Slowest were:

323.0ms
(- (* a (* i b)) (+ (* z (* b c)) (* i (* j y))))
304.0ms
(- (* a (* i b)) (+ (* z (* b c)) (* i (* j y))))
192.0ms
(* (- (pow (* t c) 3) (pow (* y i) 3)) j)

prune1.3s

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 8.5b

localize18.0ms

Local error

Found 4 expressions with local error:

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

rewrite21.0ms

Algorithm
rewrite-expression-head
Counts
4 → 60
Calls

4 calls. Slowest were:

15.0ms
(* (- (* z c) (* i a)) b)
3.0ms
(cbrt (- (* t c) (* y i)))
1.0ms
(cbrt (- (* t c) (* y i)))

series513.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

174.0ms
(cbrt (- (* t c) (* y i)))
155.0ms
(cbrt (- (* t c) (* y i)))
126.0ms
(cbrt (- (* t c) (* y i)))
58.0ms
(* (- (* z c) (* i a)) b)

simplify5.6s

Counts
31 → 72
Calls

31 calls. Slowest were:

605.0ms
(cbrt (- (* (* t c) (* t c)) (* (* y i) (* y i))))
557.0ms
(cbrt (- (* (* t c) (* t c)) (* (* y i) (* y i))))
519.0ms
(cbrt (- (pow (* t c) 3) (pow (* y i) 3)))

prune1.8s

Pruning

11 alts after pruning (10 fresh and 1 done)

Merged error: 8.5b

localize26.0ms

Local error

Found 4 expressions with local error:

5.8b
(* (- (* z c) (* i a)) b)
5.8b
(* (- (* z c) (* i a)) b)
5.8b
(* (- (* z c) (* i a)) b)
5.5b
(fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b)))

rewrite14.0ms

Algorithm
rewrite-expression-head
Counts
4 → 55
Calls

4 calls. Slowest were:

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

series780.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

570.0ms
(fma (- (* z y) (* t a)) x (- (* (- (* t c) (* y i)) j) (* (- (* z c) (* i a)) b)))
77.0ms
(* (- (* z c) (* i a)) b)
75.0ms
(* (- (* z c) (* i a)) b)
58.0ms
(* (- (* z c) (* i a)) b)

simplify1.9s

Counts
24 → 67
Calls

24 calls. Slowest were:

244.0ms
(- (* a (* i b)) (+ (* z (* b c)) (* i (* j y))))
232.0ms
(- (* a (* i b)) (+ (* z (* b c)) (* i (* j y))))
216.0ms
(* (- (pow (* z c) 3) (pow (* i a) 3)) b)

prune1.7s

Pruning

13 alts after pruning (11 fresh and 2 done)

Merged error: 8.5b

localize36.0ms

Local error

Found 4 expressions with local error:

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

rewrite23.0ms

Algorithm
rewrite-expression-head
Counts
4 → 61
Calls

4 calls. Slowest were:

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

series484.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

147.0ms
(cbrt (- (* t c) (* y i)))
140.0ms
(cbrt (- (* t c) (* y i)))
139.0ms
(cbrt (- (* (* t c) (* t c)) (* (* y i) (* y i))))
57.0ms
(* (- (* z c) (* i a)) b)

simplify5.3s

Counts
32 → 73
Calls

32 calls. Slowest were:

571.0ms
(cbrt (- (* (* t c) (* t c)) (* (* y i) (* y i))))
549.0ms
(cbrt (* (cbrt (- (* (* t c) (* t c)) (* (* y i) (* y i)))) (cbrt (- (* (* t c) (* t c)) (* (* y i) (* y i))))))
486.0ms
(cbrt (sqrt (- (* (* t c) (* t c)) (* (* y i) (* y i)))))

prune1.6s

Pruning

13 alts after pruning (10 fresh and 3 done)

Merged error: 8.5b

regimes1.6s

Accuracy

-8.9% (4.8b remaining)

Error of 12.3b against oracle of 7.5b and baseline of 11.9b

bsearch370.0ms

end0.0ms

sample6.2s

Algorithm
intervals