Details

Time bar (total: 12.6s)

analyze2.5s (19.7%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
12.5%87.4%0.1%7
12.5%87.4%0.1%8
31.2%68.6%0.1%9
31.2%68.6%0.1%10
31.2%68.6%0.1%11
40.6%59.3%0.1%12
40.6%59.3%0.1%13
40.6%59.3%0.1%14
Compiler

Compiled 34 to 19 computations (44.1% saved)

sample5.9s (46.9%)

Results
3.0s2052×body1024valid
1.4s4591×body128valid
989.0ms1051×body512valid
335.0ms558×body256valid
11.0msbody2048valid
Compiler

Compiled 101 to 56 computations (44.6% saved)

simplify283.0ms (2.2%)

Algorithm
egg-herbie
Rules
1350×fma-def_binary64
1306×fma-neg_binary64
889×div-sub_binary64
757×associate-/r/_binary64
558×associate-/l*_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01950
14450
210950
322950
433350
551550
671750
798450
8130850
9163350
10158950
11159150
12162350
13167150
14167150
15210350
16259150
17255950
18261550
19278350
20287950
21292750
22335150
23331950
24331950
25248750
26286350
27259150
28259150
29259150
30259150
31237650

prune2.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.1b
Counts
2 → 1
Alt Table
StatusErrorProgram
0.1b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 eh (sin.f64 t)) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
Compiler

Compiled 99 to 54 computations (45.5% saved)

localize21.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 eh (sin.f64 t))
0.1b
(*.f64 (neg.f64 eh) (tan.f64 t))
2.2b
(/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)
21.3b
(cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))

series148.0ms (1.2%)

Counts
4 → 120
Calls

4 calls:

91.0ms
(/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)
27.0ms
(*.f64 (neg.f64 eh) (tan.f64 t))
22.0ms
(cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))
8.0ms
(*.f64 eh (sin.f64 t))

rewrite17.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
16×add-sqr-sqrt_binary64
13×associate-*l*_binary64
13×add-cbrt-cube_binary64
13×add-exp-log_binary64
12×*-un-lft-identity_binary64
Counts
4 → 85
Calls

4 calls:

4.0ms
(/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)
4.0ms
(*.f64 (neg.f64 eh) (tan.f64 t))
4.0ms
(*.f64 eh (sin.f64 t))
1.0ms
(cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))

simplify105.0ms (0.8%)

Algorithm
egg-herbie
Rules
776×times-frac_binary64
641×fma-def_binary64
349×div-sub_binary64
186×fma-neg_binary64
182×distribute-lft-neg-out_binary64
Counts
205 → 155
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01882842
14682661
216742646
342042644
451132644

prune189.0ms (1.5%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New2555260
Fresh000
Picked101
Done000
Total2565261
Error
0.1b
Counts
261 → 5
Alt Table
StatusErrorProgram
0.1b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (/.f64 1 (hypot.f64 1 (/.f64 (*.f64 (tan.f64 t) eh) ew)))) (*.f64 (*.f64 eh (sin.f64 t)) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
32.6b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 eh (sqrt.f64 (sin.f64 t))) (sqrt.f64 (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
30.4b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (sqrt.f64 eh) (*.f64 (sqrt.f64 eh) (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
0.5b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 (cbrt.f64 eh) (cbrt.f64 eh)) (*.f64 (cbrt.f64 eh) (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
0.5b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 eh (sin.f64 t))) (cbrt.f64 (*.f64 eh (sin.f64 t)))) (cbrt.f64 (*.f64 eh (sin.f64 t)))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
Compiler

Compiled 9693 to 2165 computations (77.7% saved)

localize26.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.1b
(*.f64 (neg.f64 eh) (tan.f64 t))
0.1b
(/.f64 1 (hypot.f64 1 (/.f64 (*.f64 (tan.f64 t) eh) ew)))
2.2b
(/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)
2.2b
(/.f64 (*.f64 (tan.f64 t) eh) ew)

series255.0ms (2%)

Counts
2 → 72
Calls

2 calls:

209.0ms
(/.f64 1 (hypot.f64 1 (/.f64 (*.f64 (tan.f64 t) eh) ew)))
46.0ms
(/.f64 (*.f64 (tan.f64 t) eh) ew)

rewrite9.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
12×*-un-lft-identity_binary64
12×times-frac_binary64
12×add-sqr-sqrt_binary64
12×add-cube-cbrt_binary64
11×add-exp-log_binary64
Counts
2 → 57
Calls

2 calls:

4.0ms
(/.f64 (*.f64 (tan.f64 t) eh) ew)
2.0ms
(/.f64 1 (hypot.f64 1 (/.f64 (*.f64 (tan.f64 t) eh) ew)))

simplify170.0ms (1.4%)

Algorithm
egg-herbie
Rules
361×associate-/r/_binary64
361×fma-neg_binary64
331×fma-def_binary64
302×associate-/l/_binary64
234×cancel-sign-sub-inv_binary64
Counts
129 → 125
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02203357
15993198
223313153
347013153
449843153
549993153
649973153
749583153

prune309.0ms (2.5%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New2300230
Fresh044
Picked011
Done000
Total2305235
Error
0.1b
Counts
235 → 5
Alt Table
StatusErrorProgram
0.1b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (/.f64 1 (hypot.f64 1 (/.f64 (*.f64 (tan.f64 t) eh) ew)))) (*.f64 (*.f64 eh (sin.f64 t)) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
32.6b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 eh (sqrt.f64 (sin.f64 t))) (sqrt.f64 (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
30.4b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (sqrt.f64 eh) (*.f64 (sqrt.f64 eh) (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
0.5b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 (cbrt.f64 eh) (cbrt.f64 eh)) (*.f64 (cbrt.f64 eh) (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
0.5b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 eh (sin.f64 t))) (cbrt.f64 (*.f64 eh (sin.f64 t)))) (cbrt.f64 (*.f64 eh (sin.f64 t)))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
Compiler

Compiled 9650 to 3531 computations (63.4% saved)

localize24.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (cbrt.f64 eh) (cbrt.f64 eh))
0.5b
(cbrt.f64 eh)
2.2b
(/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)
21.3b
(cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))

series72.0ms (0.6%)

Counts
2 → 24
Calls

2 calls:

37.0ms
(*.f64 (cbrt.f64 eh) (cbrt.f64 eh))
35.0ms
(cbrt.f64 eh)

rewrite7.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
19×add-sqr-sqrt_binary64
19×cbrt-prod_binary64
11×*-un-lft-identity_binary64
11×add-cube-cbrt_binary64
pow1_binary64
Counts
2 → 55
Calls

2 calls:

4.0ms
(*.f64 (cbrt.f64 eh) (cbrt.f64 eh))
1.0ms
(cbrt.f64 eh)

simplify63.0ms (0.5%)

Algorithm
egg-herbie
Rules
577×distribute-rgt-in_binary64
561×log-prod_binary64
538×distribute-lft-in_binary64
525×unswap-sqr_binary64
384×fma-def_binary64
Counts
79 → 74
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
058610
198554
2296516
3769502
41799410
54642410
64805410

prune287.0ms (2.3%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New2281229
Fresh033
Picked011
Done011
Total2286234
Error
0.1b
Counts
234 → 6
Alt Table
StatusErrorProgram
0.6b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 (cbrt.f64 eh) (cbrt.f64 eh)) (*.f64 (*.f64 (cbrt.f64 (*.f64 (cbrt.f64 eh) (cbrt.f64 eh))) (cbrt.f64 (cbrt.f64 eh))) (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
0.1b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (/.f64 1 (hypot.f64 1 (/.f64 (*.f64 (tan.f64 t) eh) ew)))) (*.f64 (*.f64 eh (sin.f64 t)) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
32.6b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 eh (sqrt.f64 (sin.f64 t))) (sqrt.f64 (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
30.4b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (sqrt.f64 eh) (*.f64 (sqrt.f64 eh) (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
0.5b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 (cbrt.f64 eh) (cbrt.f64 eh)) (*.f64 (cbrt.f64 eh) (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
0.5b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 eh (sin.f64 t))) (cbrt.f64 (*.f64 eh (sin.f64 t)))) (cbrt.f64 (*.f64 eh (sin.f64 t)))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
Compiler

Compiled 10061 to 1853 computations (81.6% saved)

localize23.0ms (0.2%)

Local error

Found 4 expressions with local error:

NewErrorProgram
0.5b
(*.f64 (cbrt.f64 (*.f64 eh (sin.f64 t))) (cbrt.f64 (*.f64 eh (sin.f64 t))))
2.2b
(/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)
8.3b
(cbrt.f64 (*.f64 eh (sin.f64 t)))
21.3b
(cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))

series1.2s (9.6%)

Counts
2 → 48
Calls

2 calls:

759.0ms
(*.f64 (cbrt.f64 (*.f64 eh (sin.f64 t))) (cbrt.f64 (*.f64 eh (sin.f64 t))))
449.0ms
(cbrt.f64 (*.f64 eh (sin.f64 t)))

rewrite8.0ms (0.1%)

Algorithm
rewrite-expression-head
Rules
pow1_binary64
add-sqr-sqrt_binary64
pow1/3_binary64
*-un-lft-identity_binary64
add-cube-cbrt_binary64
Counts
2 → 44
Calls

2 calls:

4.0ms
(*.f64 (cbrt.f64 (*.f64 eh (sin.f64 t))) (cbrt.f64 (*.f64 eh (sin.f64 t))))
2.0ms
(cbrt.f64 (*.f64 eh (sin.f64 t)))

simplify88.0ms (0.7%)

Algorithm
egg-herbie
Rules
921×fma-neg_binary64
526×associate-*l*_binary64
432×associate-*r*_binary64
335×distribute-rgt-neg-in_binary64
313×distribute-lft-neg-in_binary64
Counts
92 → 85
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01301914
13121669
28171321
327651055
446831055
549421055

prune379.0ms (3%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New2551256
Fresh033
Picked011
Done022
Total2557262
Error
0.0b
Counts
262 → 7
Alt Table
StatusErrorProgram
0.1b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (/.f64 1 (hypot.f64 1 (/.f64 (*.f64 (tan.f64 t) eh) ew)))) (*.f64 (*.f64 eh (sin.f64 t)) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
0.7b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 eh (sin.f64 t))) (cbrt.f64 (*.f64 eh (sin.f64 t)))) (*.f64 (*.f64 (cbrt.f64 (cbrt.f64 (*.f64 eh (sin.f64 t)))) (cbrt.f64 (cbrt.f64 (*.f64 eh (sin.f64 t))))) (cbrt.f64 (cbrt.f64 (*.f64 eh (sin.f64 t)))))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
0.6b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 (cbrt.f64 eh) (cbrt.f64 eh)) (*.f64 (*.f64 (cbrt.f64 (*.f64 (cbrt.f64 eh) (cbrt.f64 eh))) (cbrt.f64 (cbrt.f64 eh))) (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
32.6b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 eh (sqrt.f64 (sin.f64 t))) (sqrt.f64 (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
30.4b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (sqrt.f64 eh) (*.f64 (sqrt.f64 eh) (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
0.5b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 (cbrt.f64 eh) (cbrt.f64 eh)) (*.f64 (cbrt.f64 eh) (sin.f64 t))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
0.5b
(fabs.f64 (-.f64 (*.f64 (*.f64 ew (cos.f64 t)) (cos.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew)))) (*.f64 (*.f64 (*.f64 (cbrt.f64 (*.f64 eh (sin.f64 t))) (cbrt.f64 (*.f64 eh (sin.f64 t)))) (cbrt.f64 (*.f64 eh (sin.f64 t)))) (sin.f64 (atan.f64 (/.f64 (*.f64 (neg.f64 eh) (tan.f64 t)) ew))))))
Compiler

Compiled 13074 to 2429 computations (81.4% saved)

regimes337.0ms (2.7%)

Accuracy

Total 0.0b remaining (32%)

Threshold costs 0.0b (32%)

Counts
53 → 1
Compiler

Compiled 9919 to 5888 computations (40.6% saved)

simplify5.0ms (0%)

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

Useful iterations: 0 (0.0ms)

IterNodesCost
02350
14250
27150
310150
412250
513350
613550
713350

end174.0ms (1.4%)

Compiler

Compiled 372 to 199 computations (46.5% saved)

Profiling

Loading profile data...