Average Error: 11.6 → 11.6
Time: 33.5s
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}\;x \le -1.0149904180022324 \cdot 10^{-237}:\\ \;\;\;\;\left(\left(y \cdot z - a \cdot t\right) \cdot x - b \cdot \left(z \cdot c - i \cdot a\right)\right) + j \cdot \left(\left(\sqrt[3]{c \cdot t - i \cdot y} \cdot \sqrt[3]{c \cdot t - i \cdot y}\right) \cdot \sqrt[3]{c \cdot t - i \cdot y}\right)\\ \mathbf{elif}\;x \le 2.9236665634658005 \cdot 10^{-272}:\\ \;\;\;\;j \cdot \left(c \cdot t - i \cdot y\right) + \left(-b\right) \cdot \left(z \cdot c - i \cdot a\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(y \cdot z - a \cdot t\right) \cdot x - \left(\sqrt[3]{b \cdot \left(z \cdot c - i \cdot a\right)} \cdot \sqrt[3]{b \cdot \left(z \cdot c - i \cdot a\right)}\right) \cdot \sqrt[3]{b \cdot \left(z \cdot c - i \cdot a\right)}\right) + j \cdot \left(c \cdot t - i \cdot y\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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if x < -1.0149904180022324e-237

    1. Initial program 11.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. Using strategy rm
    3. Applied add-cube-cbrt11.6

      \[\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(\left(\sqrt[3]{c \cdot t - i \cdot y} \cdot \sqrt[3]{c \cdot t - i \cdot y}\right) \cdot \sqrt[3]{c \cdot t - i \cdot y}\right)}\]

    if -1.0149904180022324e-237 < x < 2.9236665634658005e-272

    1. Initial program 17.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. Taylor expanded around 0 15.2

      \[\leadsto \left(\color{blue}{0} - b \cdot \left(c \cdot z - i \cdot a\right)\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]

    if 2.9236665634658005e-272 < x

    1. Initial program 10.5

      \[\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 add-cube-cbrt10.8

      \[\leadsto \left(x \cdot \left(y \cdot z - t \cdot a\right) - \color{blue}{\left(\sqrt[3]{b \cdot \left(c \cdot z - i \cdot a\right)} \cdot \sqrt[3]{b \cdot \left(c \cdot z - i \cdot a\right)}\right) \cdot \sqrt[3]{b \cdot \left(c \cdot z - i \cdot a\right)}}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\]
  3. Recombined 3 regimes into one program.
  4. Final simplification11.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -1.0149904180022324 \cdot 10^{-237}:\\ \;\;\;\;\left(\left(y \cdot z - a \cdot t\right) \cdot x - b \cdot \left(z \cdot c - i \cdot a\right)\right) + j \cdot \left(\left(\sqrt[3]{c \cdot t - i \cdot y} \cdot \sqrt[3]{c \cdot t - i \cdot y}\right) \cdot \sqrt[3]{c \cdot t - i \cdot y}\right)\\ \mathbf{elif}\;x \le 2.9236665634658005 \cdot 10^{-272}:\\ \;\;\;\;j \cdot \left(c \cdot t - i \cdot y\right) + \left(-b\right) \cdot \left(z \cdot c - i \cdot a\right)\\ \mathbf{else}:\\ \;\;\;\;\left(\left(y \cdot z - a \cdot t\right) \cdot x - \left(\sqrt[3]{b \cdot \left(z \cdot c - i \cdot a\right)} \cdot \sqrt[3]{b \cdot \left(z \cdot c - i \cdot a\right)}\right) \cdot \sqrt[3]{b \cdot \left(z \cdot c - i \cdot a\right)}\right) + j \cdot \left(c \cdot t - i \cdot y\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019002 
(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: 29.7s)Debug log

sample232.0ms

Algorithm
intervals

simplify234.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

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

prune23.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 13.4b

localize65.0ms

Local error

Found 4 expressions with local error:

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

rewrite20.0ms

Algorithm
rewrite-expression-head
Counts
4 → 63
Calls

4 calls. Slowest were:

11.0ms
(* b (- (* c z) (* i a)))
4.0ms
(* x (- (* y z) (* t a)))
3.0ms
(* j (- (* c t) (* i y)))

series201.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

62.0ms
(* x (- (* y z) (* t a)))
62.0ms
(* b (- (* c z) (* i a)))
50.0ms
(* j (- (* c t) (* i y)))
26.0ms
(- (* c t) (* i y))

simplify1.4s

Counts
40 → 75
Calls

40 calls. Slowest were:

165.0ms
(+ (* (* c z) (* c z)) (+ (* (* i a) (* i a)) (* (* c z) (* i a))))
144.0ms
(+ (* (* c t) (* c t)) (+ (* (* i y) (* i y)) (* (* c t) (* i y))))
138.0ms
(+ (* (* y z) (* y z)) (+ (* (* t a) (* t a)) (* (* y z) (* t a))))

prune1.7s

Pruning

17 alts after pruning (17 fresh and 0 done)

Merged error: 8.9b

localize15.0ms

Local error

Found 4 expressions with local error:

6.7b
(cbrt (* b (- (* c z) (* i a))))
6.7b
(cbrt (* b (- (* c z) (* i a))))
6.7b
(cbrt (* b (- (* c z) (* i a))))
5.8b
(* b (- (* c z) (* i a)))

rewrite16.0ms

Algorithm
rewrite-expression-head
Counts
4 → 50
Calls

4 calls. Slowest were:

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

series589.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

181.0ms
(cbrt (* b (- (* c z) (* i a))))
176.0ms
(cbrt (* b (- (* c z) (* i a))))
164.0ms
(cbrt (* b (- (* c z) (* i a))))
67.0ms
(* b (- (* c z) (* i a)))

simplify2.9s

Counts
30 → 62
Calls

30 calls. Slowest were:

249.0ms
(* (exp (* -1/3 (+ (log (/ -1 c)) (+ (log (/ -1 b)) (log (/ -1 z)))))) (cbrt -1))
239.0ms
(exp (* 1/3 (+ (log i) (+ (log a) (+ (log -1) (log b))))))
206.0ms
(exp (* 1/3 (+ (log i) (+ (log a) (+ (log -1) (log b))))))

prune1.7s

Pruning

18 alts after pruning (17 fresh and 1 done)

Merged error: 8.9b

localize27.0ms

Local error

Found 4 expressions with local error:

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

rewrite20.0ms

Algorithm
rewrite-expression-head
Counts
4 → 50
Calls

4 calls. Slowest were:

8.0ms
(* b (- (* c z) (* i a)))
4.0ms
(cbrt (* x (- (* y z) (* t a))))
4.0ms
(cbrt (* x (- (* y z) (* t a))))

series550.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

185.0ms
(cbrt (* x (- (* y z) (* t a))))
144.0ms
(cbrt (* x (- (* y z) (* t a))))
142.0ms
(cbrt (* x (- (* y z) (* t a))))
80.0ms
(* b (- (* c z) (* i a)))

simplify3.1s

Counts
30 → 62
Calls

30 calls. Slowest were:

273.0ms
(exp (* 1/3 (+ (log t) (+ (log a) (+ (log -1) (log x))))))
223.0ms
(cbrt (* x (- (pow (* y z) 3) (pow (* t a) 3))))
210.0ms
(exp (* 1/3 (+ (log t) (+ (log a) (+ (log -1) (log x))))))

prune1.6s

Pruning

18 alts after pruning (16 fresh and 2 done)

Merged error: 8.9b

localize38.0ms

Local error

Found 4 expressions with local error:

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

rewrite17.0ms

Algorithm
rewrite-expression-head
Counts
4 → 52
Calls

4 calls. Slowest were:

6.0ms
(* b (- (* c z) (* i a)))
4.0ms
(cbrt (* x (- (* y z) (* t a))))
4.0ms
(cbrt (* x (- (* y z) (* t a))))

series533.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

165.0ms
(cbrt (* x (- (* y z) (* t a))))
155.0ms
(cbrt (* x (- (* y z) (* t a))))
150.0ms
(cbrt (- (* y z) (* t a)))
63.0ms
(* b (- (* c z) (* i a)))

simplify3.6s

Counts
32 → 64
Calls

32 calls. Slowest were:

593.0ms
(* (cbrt -1) (exp (* -1/3 (+ (log (/ -1 x)) (+ (log (/ -1 z)) (log (/ -1 y)))))))
373.0ms
(cbrt (- (pow (* y z) 3) (pow (* t a) 3)))
349.0ms
(exp (* -1/3 (+ (log (/ 1 z)) (log (/ 1 y)))))

prune1.6s

Pruning

20 alts after pruning (18 fresh and 2 done)

Merged error: 8.9b

regimes2.5s

Accuracy

7.3% (3.3b remaining)

Error of 11.6b against oracle of 8.3b and baseline of 11.9b

bsearch481.0ms

end0.0ms

sample6.5s

Algorithm
intervals