Details

Time bar (total: 13.7s)

analyze880.0ms (6.4%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
6.2%93.6%0.2%9
9.4%90.4%0.2%10
23.4%74.9%1.8%11
27.3%69%3.7%12
36.6%56.5%6.8%13
40.5%52%7.4%14
Compiler

Compiled 14 to 9 computations (35.7% saved)

sample1.2s (8.9%)

Symmetry

(sort y t)

Results
877.0ms8256×body128valid
198.0ms1929×body128invalid
Compiler

Compiled 41 to 26 computations (36.6% saved)

simplify43.0ms (0.3%)

Algorithm
egg-herbie
Rules
998×fma-def_binary64
304×fma-neg_binary64
112×distribute-rgt-in_binary64
90×associate-*l*_binary64
87×associate-*r*_binary64
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0910
12010
24310
39610
417210
525210
639810
758110
884610
991010
1094310
1194910
1294910
1388610

prune3.0ms (0%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.1b
Counts
3 → 2
Alt Table
StatusErrorProgram
6.7b
(*.f64 y (*.f64 t (-.f64 x z)))
8.5b
(*.f64 (-.f64 (*.f64 x y) (*.f64 z y)) t)
Compiler

Compiled 68 to 41 computations (39.7% saved)

localize6.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.0b
(*.f64 t (-.f64 x z))
6.3b
(*.f64 y (*.f64 t (-.f64 x z)))

series23.0ms (0.2%)

Counts
2 → 84
Calls

2 calls:

16.0ms
(*.f64 y (*.f64 t (-.f64 x z)))
6.0ms
(*.f64 t (-.f64 x z))

rewrite24.0ms (0.2%)

Algorithm
rewrite-expression-head
Rules
65×distribute-lft-in_binary64
65×distribute-rgt-in_binary64
54×prod-diff_binary64
51×add-sqr-sqrt_binary64
49×*-un-lft-identity_binary64
Counts
2 → 124
Calls

2 calls:

7.0ms
(*.f64 y (*.f64 t (-.f64 x z)))
6.0ms
(*.f64 t (-.f64 x z))

simplify121.0ms (0.9%)

Algorithm
egg-herbie
Rules
449×*-commutative_binary64
402×distribute-rgt-in_binary64
400×distribute-rgt-neg-out_binary64
379×distribute-lft-in_binary64
309×fma-def_binary64
Counts
208 → 153
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02192765
13262564
210792402
330772078
449652078
547512078

prune131.0ms (1%)

Pruning

10 alts after pruning (10 fresh and 0 done)

PrunedKeptTotal
New14310153
Fresh101
Picked101
Done000
Total14510155
Error
0.0b
Counts
155 → 10
Alt Table
StatusErrorProgram
7.6b
(*.f64 y (*.f64 (*.f64 (cbrt.f64 t) (cbrt.f64 t)) (*.f64 (cbrt.f64 t) (-.f64 x z))))
7.5b
(*.f64 (*.f64 (cbrt.f64 (*.f64 y (*.f64 t (-.f64 x z)))) (cbrt.f64 (*.f64 y (*.f64 t (-.f64 x z))))) (cbrt.f64 (*.f64 y (*.f64 t (-.f64 x z)))))
7.5b
(*.f64 y (*.f64 (*.f64 (cbrt.f64 (*.f64 t (-.f64 x z))) (cbrt.f64 (*.f64 t (-.f64 x z)))) (cbrt.f64 (*.f64 t (-.f64 x z)))))
8.1b
(*.f64 (-.f64 x z) (*.f64 y t))
6.7b
(*.f64 (-.f64 (*.f64 t x) (*.f64 t z)) y)
32.2b
(*.f64 (sqrt.f64 (*.f64 y (*.f64 t (-.f64 x z)))) (sqrt.f64 (*.f64 y (*.f64 t (-.f64 x z)))))
7.5b
(*.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (*.f64 t (*.f64 (-.f64 x z) (cbrt.f64 y))))
41.9b
(*.f64 y (/.f64 (*.f64 t (-.f64 (pow.f64 x 3) (pow.f64 z 3))) (+.f64 (*.f64 x x) (+.f64 (*.f64 z z) (*.f64 x z)))))
8.5b
(+.f64 (*.f64 t (*.f64 x y)) (neg.f64 (*.f64 t (*.f64 z y))))
7.5b
(*.f64 y (+.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (cbrt.f64 x) (neg.f64 (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))) t) (*.f64 (fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z)))) t)))
Compiler

Compiled 3402 to 913 computations (73.2% saved)

localize6.0ms (0%)

Local error

Found 2 expressions with local error:

NewErrorProgram
0.3b
(-.f64 (*.f64 t x) (*.f64 t z))
6.3b
(*.f64 (-.f64 (*.f64 t x) (*.f64 t z)) y)

series23.0ms (0.2%)

Counts
2 → 54
Calls

2 calls:

15.0ms
(*.f64 (-.f64 (*.f64 t x) (*.f64 t z)) y)
8.0ms
(-.f64 (*.f64 t x) (*.f64 t z))

rewrite9.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
add-sqr-sqrt_binary64
associate-*l*_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
add-cbrt-cube_binary64
Counts
2 → 40
Calls

2 calls:

5.0ms
(*.f64 (-.f64 (*.f64 t x) (*.f64 t z)) y)
2.0ms
(-.f64 (*.f64 t x) (*.f64 t z))

simplify69.0ms (0.5%)

Algorithm
egg-herbie
Rules
943×fma-def_binary64
247×distribute-lft-neg-out_binary64
237×distribute-rgt-neg-out_binary64
230×*-commutative_binary64
221×fma-neg_binary64
Counts
94 → 83
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0861023
1219963
2773956
32035953
44486953
54935953

prune61.0ms (0.4%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New80383
Fresh279
Picked011
Done000
Total821193
Error
0.0b
Counts
93 → 11
Alt Table
StatusErrorProgram
35.4b
(*.f64 (sqrt.f64 (-.f64 (*.f64 t x) (*.f64 t z))) (*.f64 y (sqrt.f64 (*.f64 t (-.f64 x z)))))
32.2b
(*.f64 (sqrt.f64 (*.f64 y (*.f64 t (-.f64 x z)))) (sqrt.f64 (*.f64 y (*.f64 t (-.f64 x z)))))
7.5b
(*.f64 y (+.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (cbrt.f64 x) (neg.f64 (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))) t) (*.f64 (fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z)))) t)))
30.0b
(*.f64 (/.f64 (*.f64 t (*.f64 (*.f64 t (-.f64 x z)) (+.f64 x z))) (*.f64 t (+.f64 x z))) y)
7.5b
(*.f64 y (*.f64 (*.f64 (cbrt.f64 (*.f64 t (-.f64 x z))) (cbrt.f64 (*.f64 t (-.f64 x z)))) (cbrt.f64 (*.f64 t (-.f64 x z)))))
8.1b
(*.f64 (-.f64 x z) (*.f64 y t))
6.7b
(*.f64 (-.f64 (*.f64 t x) (*.f64 t z)) y)
7.6b
(*.f64 y (*.f64 (*.f64 (cbrt.f64 t) (cbrt.f64 t)) (*.f64 (cbrt.f64 t) (-.f64 x z))))
7.5b
(*.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (*.f64 t (*.f64 (-.f64 x z) (cbrt.f64 y))))
29.3b
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 t x) (*.f64 t x)) (*.f64 (*.f64 t z) (*.f64 t z))) y) (+.f64 (*.f64 t x) (*.f64 t z)))
8.5b
(+.f64 (*.f64 t (*.f64 x y)) (neg.f64 (*.f64 t (*.f64 z y))))
Compiler

Compiled 1646 to 480 computations (70.8% saved)

localize27.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.6b
(cbrt.f64 x)
0.6b
(cbrt.f64 z)
6.3b
(*.f64 y (+.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (cbrt.f64 x) (neg.f64 (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))) t) (*.f64 (fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z)))) t)))
60.9b
(fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))

series3.8s (27.7%)

Counts
4 → 84
Calls

4 calls:

3.7s
(*.f64 y (+.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (cbrt.f64 x) (neg.f64 (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))) t) (*.f64 (fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z)))) t)))
48.0ms
(fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))
35.0ms
(cbrt.f64 z)
32.0ms
(cbrt.f64 x)

rewrite10.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
10×add-sqr-sqrt_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
cbrt-prod_binary64
add-cbrt-cube_binary64
Counts
4 → 61
Calls

4 calls:

5.0ms
(*.f64 y (+.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (cbrt.f64 x) (neg.f64 (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))) t) (*.f64 (fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z)))) t)))
1.0ms
(cbrt.f64 z)
1.0ms
(cbrt.f64 x)
0.0ms
(fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))

simplify112.0ms (0.8%)

Algorithm
egg-herbie
Rules
639×fma-neg_binary64
585×distribute-rgt-in_binary64
541×distribute-lft-in_binary64
477×fma-def_binary64
410×*-commutative_binary64
Counts
145 → 106
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01221441
13021290
211771115
332071109
441071109
549941109
645321109

prune176.0ms (1.3%)

Pruning

11 alts after pruning (10 fresh and 1 done)

PrunedKeptTotal
New2842286
Fresh189
Picked101
Done011
Total28611297
Error
0b
Counts
297 → 11
Alt Table
StatusErrorProgram
35.4b
(*.f64 (sqrt.f64 (-.f64 (*.f64 t x) (*.f64 t z))) (*.f64 y (sqrt.f64 (*.f64 t (-.f64 x z)))))
32.2b
(*.f64 (sqrt.f64 (*.f64 y (*.f64 t (-.f64 x z)))) (sqrt.f64 (*.f64 y (*.f64 t (-.f64 x z)))))
9.0b
(*.f64 (*.f64 y t) (+.f64 (fma.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (cbrt.f64 x) (neg.f64 (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))) (fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))))
29.3b
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 t x) (*.f64 t x)) (*.f64 (*.f64 t z) (*.f64 t z))) y) (+.f64 (*.f64 t x) (*.f64 t z)))
6.7b
(*.f64 (-.f64 (*.f64 t x) (*.f64 t z)) y)
7.6b
(*.f64 y (*.f64 (*.f64 (cbrt.f64 t) (cbrt.f64 t)) (*.f64 (cbrt.f64 t) (-.f64 x z))))
7.5b
(*.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (*.f64 t (*.f64 (-.f64 x z) (cbrt.f64 y))))
7.5b
(*.f64 (*.f64 y (*.f64 (cbrt.f64 (*.f64 t (-.f64 x z))) (cbrt.f64 (*.f64 t (-.f64 x z))))) (cbrt.f64 (+.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (cbrt.f64 x) (neg.f64 (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))) t) (*.f64 (fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z)))) t))))
8.5b
(+.f64 (*.f64 t (*.f64 x y)) (neg.f64 (*.f64 t (*.f64 z y))))
30.0b
(*.f64 (/.f64 (*.f64 t (*.f64 (*.f64 t (-.f64 x z)) (+.f64 x z))) (*.f64 t (+.f64 x z))) y)
8.1b
(*.f64 (-.f64 x z) (*.f64 y t))
Compiler

Compiled 13326 to 1966 computations (85.2% saved)

localize25.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
1.0b
(*.f64 y (*.f64 (cbrt.f64 (*.f64 t (-.f64 x z))) (cbrt.f64 (*.f64 t (-.f64 x z)))))
8.7b
(cbrt.f64 (*.f64 t (-.f64 x z)))
8.7b
(cbrt.f64 (+.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (cbrt.f64 x) (neg.f64 (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))) t) (*.f64 (fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z)))) t)))
60.9b
(fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))

series4.5s (33%)

Counts
3 → 120
Calls

3 calls:

3.3s
(cbrt.f64 (+.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (cbrt.f64 x) (neg.f64 (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))) t) (*.f64 (fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z)))) t)))
1.0s
(*.f64 y (*.f64 (cbrt.f64 (*.f64 t (-.f64 x z))) (cbrt.f64 (*.f64 t (-.f64 x z)))))
261.0ms
(cbrt.f64 (*.f64 t (-.f64 x z)))

rewrite16.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
24×associate-*r/_binary64
16×cbrt-div_binary64
add-exp-log_binary64
pow1_binary64
flip--_binary64
Counts
3 → 58
Calls

3 calls:

6.0ms
(*.f64 y (*.f64 (cbrt.f64 (*.f64 t (-.f64 x z))) (cbrt.f64 (*.f64 t (-.f64 x z)))))
3.0ms
(cbrt.f64 (*.f64 t (-.f64 x z)))
2.0ms
(cbrt.f64 (+.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (cbrt.f64 x) (neg.f64 (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))) t) (*.f64 (fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z)))) t)))

simplify128.0ms (0.9%)

Algorithm
egg-herbie
Rules
443×associate-*r*_binary64
332×fma-neg_binary64
310×associate-*l*_binary64
270×*-commutative_binary64
232×times-frac_binary64
Counts
178 → 191
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
04615977
113165153
247725153
349775153

prune243.0ms (1.8%)

Pruning

11 alts after pruning (9 fresh and 2 done)

PrunedKeptTotal
New2730273
Fresh099
Picked011
Done011
Total27311284
Error
0b
Counts
284 → 11
Alt Table
StatusErrorProgram
35.4b
(*.f64 (sqrt.f64 (-.f64 (*.f64 t x) (*.f64 t z))) (*.f64 y (sqrt.f64 (*.f64 t (-.f64 x z)))))
32.2b
(*.f64 (sqrt.f64 (*.f64 y (*.f64 t (-.f64 x z)))) (sqrt.f64 (*.f64 y (*.f64 t (-.f64 x z)))))
9.0b
(*.f64 (*.f64 y t) (+.f64 (fma.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (cbrt.f64 x) (neg.f64 (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))) (fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))))
29.3b
(/.f64 (*.f64 (-.f64 (*.f64 (*.f64 t x) (*.f64 t x)) (*.f64 (*.f64 t z) (*.f64 t z))) y) (+.f64 (*.f64 t x) (*.f64 t z)))
6.7b
(*.f64 (-.f64 (*.f64 t x) (*.f64 t z)) y)
7.6b
(*.f64 y (*.f64 (*.f64 (cbrt.f64 t) (cbrt.f64 t)) (*.f64 (cbrt.f64 t) (-.f64 x z))))
7.5b
(*.f64 (*.f64 (cbrt.f64 y) (cbrt.f64 y)) (*.f64 t (*.f64 (-.f64 x z) (cbrt.f64 y))))
7.5b
(*.f64 (*.f64 y (*.f64 (cbrt.f64 (*.f64 t (-.f64 x z))) (cbrt.f64 (*.f64 t (-.f64 x z))))) (cbrt.f64 (+.f64 (*.f64 (fma.f64 (*.f64 (cbrt.f64 x) (cbrt.f64 x)) (cbrt.f64 x) (neg.f64 (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z))))) t) (*.f64 (fma.f64 (neg.f64 (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (cbrt.f64 z)) (*.f64 (cbrt.f64 z) (*.f64 (cbrt.f64 z) (cbrt.f64 z)))) t))))
8.5b
(+.f64 (*.f64 t (*.f64 x y)) (neg.f64 (*.f64 t (*.f64 z y))))
30.0b
(*.f64 (/.f64 (*.f64 t (*.f64 (*.f64 t (-.f64 x z)) (+.f64 x z))) (*.f64 t (+.f64 x z))) y)
8.1b
(*.f64 (-.f64 x z) (*.f64 y t))
Compiler

Compiled 20467 to 5028 computations (75.4% saved)

regimes1.8s (12.8%)

Accuracy

Total 1.5b remaining (98.8%)

Threshold costs 0b (0%)

Counts
157 → 3
Compiler

Compiled 26464 to 13478 computations (49.1% saved)

bsearch7.0ms (0%)

Compiler

Compiled 13 to 8 computations (38.5% saved)

simplify5.0ms (0%)

Algorithm
egg-herbie
Rules
20×*-commutative_binary64
+-commutative_binary64
sub-neg_binary64
neg-sub0_binary64
neg-mul-1_binary64
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
03174
15374
26574
37872
49072
59672
69872
79672

end276.0ms (2%)

Compiler

Compiled 485 to 226 computations (53.4% saved)

Profiling

Loading profile data...