Details

Time bar (total: 5.0s)

analyze286.0ms (5.7%)

Algorithm
search
egg-herbie
Rules
752×distribute-rgt-in_binary64
602×distribute-lft-in_binary64
406×unsub-neg_binary64
389×sub-neg_binary64
376×neg-sub0_binary64
373×distribute-rgt-out--_binary64
362×neg-mul-1_binary64
335×distribute-neg-in_binary64
244×*-commutative_binary64
218×div-sub_binary64
201×distribute-lft-neg-out_binary64
198×distribute-rgt-neg-out_binary64
172×associate--r+_binary64
158×+-commutative_binary64
156×times-frac_binary64
138×associate-/l/_binary64
137×associate--l+_binary64
136×associate-+l+_binary64
133×associate-+l-_binary64
132×cancel-sign-sub-inv_binary64
127×distribute-neg-out_binary64
123×associate-+r+_binary64
117×distribute-rgt-neg-in_binary64
116×associate-/r/_binary64
114×distribute-rgt-out_binary64
107×associate--r-_binary64
100×distribute-lft-neg-in_binary64
98×associate--l-_binary64
93×associate-/l*_binary64
91×associate-/r*_binary64
82×associate-+r-_binary64
75×log-div_binary64
55×log-prod_binary64 distribute-rgt1-in_binary64
51×count-2_binary64
45×associate-*l*_binary64
42×distribute-neg-frac_binary64
39×associate-*r*_binary64
38×cancel-sign-sub_binary64
23×+-lft-identity_binary64
22×*-rgt-identity_binary64 *-lft-identity_binary64
21×remove-double-neg_binary64
20×distribute-lft-out--_binary64 associate-*l/_binary64
18×sub0-neg_binary64
16×--rgt-identity_binary64 distribute-lft-out_binary64 associate-*r/_binary64
14×+-rgt-identity_binary64
13×log-rec_binary64
12×mul0-rgt_binary64 distribute-lft1-in_binary64
11×distribute-frac-neg_binary64
10×div0_binary64
mul-1-neg_binary64
mul0-lft_binary64
/-rgt-identity_binary64
+-inverses_binary64 remove-double-div_binary64
1-exp_binary64 *-inverses_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-pow_binary64 pow-base-0_binary64 unpow1/3_binary64 unpow3_binary64 unpow2_binary64 unpow1/2_binary64 pow-plus_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow1_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 exp-prod_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 exp-diff_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-unmult_binary64 cube-mult_binary64 cube-div_binary64 cube-prod_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 sqr-neg_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 pow-sqr_binary64 sqr-pow_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 unswap-sqr_binary64 swap-sqr_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01115
12015
22615
34015
46015
58115
611715
720115
836715
949215
1057415
1156615
1261115
1368115
1484115
15172815
16177315
17209615
18239715
19248515
20251415
21252815
22252815
23271815
24279615
25293215
26306615
27305015
28306215
29306615
30429615
31450615
32471315
011
111
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
0%50%50%3
25%25%50%4
37.5%12.5%50%5
43.7%6.2%50%6
46.9%3.1%50%7
48.4%1.6%50%8
49.2%0.8%50%9
49.6%0.4%50%10
49.8%0.2%50%11
49.9%0.1%50%12
49.9%0%50%13
49.9%0%50%14
Compiler

Compiled 13 to 12 computations (7.7% saved)

sample83.0ms (1.7%)

Algorithm
intervals
Results
45.0ms120×body1024valid
15.0ms68×body512valid
9.0ms30×body256valid
4.0msbody2048valid
2.0ms30×body128valid
Compiler

Compiled 25 to 24 computations (4% saved)

simplify268.0ms (5.4%)

Algorithm
egg-herbie
Rules
752×distribute-rgt-in_binary64
602×distribute-lft-in_binary64
406×unsub-neg_binary64
389×sub-neg_binary64
376×neg-sub0_binary64
373×distribute-rgt-out--_binary64
362×neg-mul-1_binary64
335×distribute-neg-in_binary64
244×*-commutative_binary64
218×div-sub_binary64
201×distribute-lft-neg-out_binary64
198×distribute-rgt-neg-out_binary64
172×associate--r+_binary64
158×+-commutative_binary64
156×times-frac_binary64
138×associate-/l/_binary64
137×associate--l+_binary64
136×associate-+l+_binary64
133×associate-+l-_binary64
132×cancel-sign-sub-inv_binary64
127×distribute-neg-out_binary64
123×associate-+r+_binary64
117×distribute-rgt-neg-in_binary64
116×associate-/r/_binary64
114×distribute-rgt-out_binary64
107×associate--r-_binary64
100×distribute-lft-neg-in_binary64
98×associate--l-_binary64
93×associate-/l*_binary64
91×associate-/r*_binary64
82×associate-+r-_binary64
75×log-div_binary64
55×log-prod_binary64 distribute-rgt1-in_binary64
51×count-2_binary64
45×associate-*l*_binary64
42×distribute-neg-frac_binary64
39×associate-*r*_binary64
38×cancel-sign-sub_binary64
23×+-lft-identity_binary64
22×*-rgt-identity_binary64 *-lft-identity_binary64
21×remove-double-neg_binary64
20×distribute-lft-out--_binary64 associate-*l/_binary64
18×sub0-neg_binary64
16×--rgt-identity_binary64 distribute-lft-out_binary64 associate-*r/_binary64
14×+-rgt-identity_binary64
13×log-rec_binary64
12×mul0-rgt_binary64 distribute-lft1-in_binary64
11×distribute-frac-neg_binary64
10×div0_binary64
mul-1-neg_binary64
mul0-lft_binary64
/-rgt-identity_binary64
+-inverses_binary64 remove-double-div_binary64
1-exp_binary64 *-inverses_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-pow_binary64 pow-base-0_binary64 unpow1/3_binary64 unpow3_binary64 unpow2_binary64 unpow1/2_binary64 pow-plus_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow1_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 exp-prod_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 exp-diff_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-unmult_binary64 cube-mult_binary64 cube-div_binary64 cube-prod_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 sqr-neg_binary64 rem-sqrt-square_binary64 rem-square-sqrt_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 pow-sqr_binary64 sqr-pow_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 unswap-sqr_binary64 swap-sqr_binary64
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01115
12015
22615
34015
46015
58115
611715
720115
836715
949215
1057415
1156615
1261115
1368115
1484115
15172815
16177315
17209615
18239715
19248515
20251415
21252815
22252815
23271815
24279615
25293215
26306615
27305015
28306215
29306615
30429615
31450615
32471315

prune3.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New011
Fresh101
Picked000
Done000
Total112
Error
56.8b
Counts
2 → 1
Compiler

Compiled 20 to 18 computations (10% saved)

localize7.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(/.f64 (+.f64 1 x) (-.f64 1 x))
7.4b
(log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x)))

rewrite158.0ms (3.2%)

Algorithm
rewrite-expression-head
Error
56.6b
Rules
78×*-un-lft-identity_binary64
52×add-sqr-sqrt_binary64
48×times-frac_binary64
30×log-prod_binary64
25×add-cube-cbrt_binary64
18×difference-of-squares_binary64
13×distribute-lft-out_binary64
distribute-lft-out--_binary64
add-exp-log_binary64
associate-/r*_binary64
associate-/r/_binary64 add-cbrt-cube_binary64 associate-/l*_binary64
pow1_binary64
div-inv_binary64 flip3--_binary64 flip--_binary64 div-exp_binary64 rem-log-exp_binary64 add-log-exp_binary64 associate-/l/_binary64
log-pow_binary64 log-div_binary64 cbrt-undiv_binary64 frac-2neg_binary64 clear-num_binary64 flip3-+_binary64 flip-+_binary64
Counts
2 → 91
Calls

2 calls:

8.0ms
(/.f64 (+.f64 1 x) (-.f64 1 x))
8.0ms
(log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x)))
Compiler

Compiled 1372 to 1094 computations (20.3% saved)

series32.0ms (0.6%)

Error
0.0b
Counts
2 → 14
Calls

2 calls:

12.0ms
(log.f64 (/.f64 (+.f64 1 x) (-.f64 1 x)))
9.0ms
(/.f64 (+.f64 1 x) (-.f64 1 x))
Compiler

Compiled 315 to 293 computations (7% saved)

simplify122.0ms (2.4%)

Algorithm
egg-herbie
Rules
506×div-sub_binary64
437×distribute-rgt-in_binary64
365×distribute-lft-in_binary64
329×associate-/l*_binary64
229×sub-neg_binary64
189×associate-/l/_binary64
165×log-div_binary64
139×cancel-sign-sub-inv_binary64
132×distribute-rgt-out_binary64 associate-/r/_binary64
105×times-frac_binary64
103×div-exp_binary64 associate-*l*_binary64
95×prod-exp_binary64 associate-*r*_binary64
92×associate-+l+_binary64
84×+-commutative_binary64
82×log-prod_binary64
73×*-commutative_binary64
71×distribute-rgt-neg-out_binary64
70×unsub-neg_binary64
67×associate-/r*_binary64
62×associate-+r+_binary64
57×distribute-lft-neg-out_binary64 associate--l-_binary64
48×associate-+l-_binary64
43×distribute-lft-out_binary64
42×neg-sub0_binary64 distribute-rgt-neg-in_binary64
41×neg-mul-1_binary64
40×log-rec_binary64
38×associate-+r-_binary64
37×cube-prod_binary64
33×distribute-lft-neg-in_binary64
32×exp-sum_binary64
29×sqr-pow_binary64 associate--l+_binary64
26×exp-prod_binary64
25×distribute-rgt1-in_binary64 distribute-rgt-out--_binary64
24×cube-div_binary64
23×associate-*l/_binary64
22×rec-exp_binary64 unswap-sqr_binary64 distribute-neg-out_binary64
20×associate-*r/_binary64
19×*-rgt-identity_binary64
18×exp-diff_binary64 /-rgt-identity_binary64 distribute-neg-frac_binary64
16×cube-unmult_binary64 *-lft-identity_binary64
13×distribute-neg-in_binary64
11×swap-sqr_binary64
10×unpow3_binary64 distribute-lft1-in_binary64
+-rgt-identity_binary64 cancel-sign-sub_binary64 count-2_binary64
sqr-neg_binary64 distribute-frac-neg_binary64
rem-exp-log_binary64 sub0-neg_binary64 remove-double-div_binary64 distribute-lft-out--_binary64 associate--r+_binary64
pow-plus_binary64 cube-neg_binary64 mul-1-neg_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64
exp-to-pow_binary64 cube-mult_binary64 rem-sqrt-square_binary64 remove-double-neg_binary64 pow-sqr_binary64
log-pow_binary64 unpow2_binary64 unpow1/2_binary64 unpow1_binary64 1-exp_binary64 exp-1-e_binary64 rem-log-exp_binary64 +-inverses_binary64 difference-of-sqr--1_binary64 associate--r-_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 pow-base-0_binary64 unpow1/3_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 exp-neg_binary64 e-exp-1_binary64 exp-0_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 rem-square-sqrt_binary64 --rgt-identity_binary64 +-lft-identity_binary64 mul0-rgt_binary64 mul0-lft_binary64 div0_binary64 *-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64
Counts
105 → 92
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01452071
13251979
27571931
319951927
442561927
556171927

prune54.0ms (1.1%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New88492
Fresh000
Picked101
Done000
Total89493
Error
0.0b
Counts
93 → 4
Compiler

Compiled 1164 to 920 computations (21% saved)

localize11.0ms (0.2%)

Local error

Found 3 expressions with local error:

0.0b
(+.f64 (*.f64 2/3 (pow.f64 x 3)) (*.f64 2/5 (pow.f64 x 5)))
0.1b
(*.f64 2/5 (pow.f64 x 5))
0.1b
(*.f64 2/3 (pow.f64 x 3))

rewrite92.0ms (1.8%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
22×add-sqr-sqrt_binary64
19×associate-*r*_binary64
13×add-exp-log_binary64
10×add-cube-cbrt_binary64 *-un-lft-identity_binary64
unpow-prod-down_binary64
add-cbrt-cube_binary64 unswap-sqr_binary64
prod-exp_binary64 associate-*l*_binary64
add-log-exp_binary64
cube-prod_binary64 sqr-pow_binary64
pow1_binary64
pow-to-exp_binary64 pow-exp_binary64 cbrt-unprod_binary64 *-commutative_binary64
unpow3_binary64 cube-mult_binary64 sum-log_binary64 flip3-+_binary64 flip-+_binary64 +-commutative_binary64
Counts
3 → 67
Calls

3 calls:

6.0ms
(*.f64 2/3 (pow.f64 x 3))
6.0ms
(*.f64 2/5 (pow.f64 x 5))
5.0ms
(+.f64 (*.f64 2/3 (pow.f64 x 3)) (*.f64 2/5 (pow.f64 x 5)))
Compiler

Compiled 1452 to 1086 computations (25.2% saved)

series44.0ms (0.9%)

Error
0.0b
Counts
3 → 12
Calls

3 calls:

22.0ms
(+.f64 (*.f64 2/3 (pow.f64 x 3)) (*.f64 2/5 (pow.f64 x 5)))
10.0ms
(*.f64 2/5 (pow.f64 x 5))
9.0ms
(*.f64 2/3 (pow.f64 x 3))
Compiler

Compiled 378 to 307 computations (18.8% saved)

simplify79.0ms (1.6%)

Algorithm
egg-herbie
Rules
570×unswap-sqr_binary64
494×cancel-sign-sub-inv_binary64
330×*-commutative_binary64
217×sqr-pow_binary64
204×distribute-rgt-neg-in_binary64
190×distribute-lft-neg-in_binary64
180×distribute-rgt-in_binary64
164×log-prod_binary64
163×distribute-lft-in_binary64
162×exp-prod_binary64
150×associate-+l+_binary64
146×associate-+r+_binary64
139×cube-prod_binary64
103×associate-*l*_binary64
101×associate-*r*_binary64
90×sub-neg_binary64
86×neg-mul-1_binary64
82×neg-sub0_binary64
61×pow-sqr_binary64
60×distribute-rgt-out_binary64
59×swap-sqr_binary64
45×rem-sqrt-square_binary64
42×unsub-neg_binary64
38×associate-/l*_binary64
35×unpow3_binary64
32×+-commutative_binary64
30×difference-of-squares_binary64
29×times-frac_binary64
27×log-pow_binary64
26×pow-plus_binary64
24×associate-/r*_binary64
22×distribute-rgt-out--_binary64
20×cube-mult_binary64
18×cube-unmult_binary64
15×distribute-lft-neg-out_binary64 associate-+l-_binary64
12×sub0-neg_binary64 distribute-lft-out_binary64
11×distribute-neg-in_binary64 associate-+r-_binary64
10×associate-/l/_binary64 associate-*r/_binary64
count-2_binary64 associate-/r/_binary64
+-rgt-identity_binary64
mul0-rgt_binary64 mul0-lft_binary64
exp-sum_binary64 associate--r+_binary64
unpow2_binary64 distribute-lft-out--_binary64
unpow1/3_binary64 prod-exp_binary64 1-exp_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 rem-square-sqrt_binary64 remove-double-neg_binary64 distribute-rgt-neg-out_binary64 associate--l+_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 log-rec_binary64 log-div_binary64 pow-base-0_binary64 unpow1/2_binary64 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow1_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 div-exp_binary64 rec-exp_binary64 exp-diff_binary64 exp-neg_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-div_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-3cbrt-lft_binary64 sqr-abs_binary64 sqr-neg_binary64 div-sub_binary64 mul-1-neg_binary64 /-rgt-identity_binary64 *-rgt-identity_binary64 *-lft-identity_binary64 --rgt-identity_binary64 +-lft-identity_binary64 div0_binary64 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 cancel-sign-sub_binary64 distribute-neg-frac_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 associate-*l/_binary64 associate--r-_binary64 associate--l-_binary64
Counts
79 → 36
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
0118972
1260908
2715908
31426908
43692897
55320897

prune29.0ms (0.6%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New36036
Fresh033
Picked011
Done000
Total36440
Error
0.0b
Counts
40 → 4
Compiler

Compiled 578 to 426 computations (26.3% saved)

localize8.0ms (0.2%)

Local error

Found 3 expressions with local error:

0.0b
(-.f64 (log.f64 (+.f64 x 1)) (log.f64 (-.f64 1 x)))
7.5b
(log.f64 (-.f64 1 x))
7.5b
(log.f64 (+.f64 x 1))

rewrite71.0ms (1.4%)

Algorithm
rewrite-expression-head
Error
0b
Rules
22×*-un-lft-identity_binary64
20×log-prod_binary64
16×add-sqr-sqrt_binary64
10×pow1_binary64
log-div_binary64 add-cube-cbrt_binary64
log-pow_binary64
distribute-lft-out--_binary64 associate--r+_binary64
add-exp-log_binary64 difference-of-squares_binary64
cancel-sign-sub-inv_binary64 associate--l+_binary64
add-log-exp_binary64 add-cbrt-cube_binary64 flip3--_binary64 flip--_binary64
flip3-+_binary64 flip-+_binary64 distribute-lft-out_binary64 rem-log-exp_binary64 associate--r-_binary64 associate--l-_binary64
diff-log_binary64 sub-neg_binary64
Counts
3 → 66
Calls

3 calls:

9.0ms
(-.f64 (log.f64 (+.f64 x 1)) (log.f64 (-.f64 1 x)))
3.0ms
(log.f64 (-.f64 1 x))
3.0ms
(log.f64 (+.f64 x 1))
Compiler

Compiled 1053 to 861 computations (18.2% saved)

series50.0ms (1%)

Error
0.0b
Counts
3 → 20
Calls

3 calls:

14.0ms
(-.f64 (log.f64 (+.f64 x 1)) (log.f64 (-.f64 1 x)))
12.0ms
(log.f64 (-.f64 1 x))
11.0ms
(log.f64 (+.f64 x 1))
Compiler

Compiled 687 to 594 computations (13.5% saved)

simplify148.0ms (2.9%)

Algorithm
egg-herbie
Rules
352×distribute-rgt-in_binary64
281×distribute-lft-in_binary64
241×associate-+l+_binary64
236×sub-neg_binary64
218×associate--r+_binary64
201×neg-mul-1_binary64
197×associate-+l-_binary64
153×associate-*r*_binary64
147×associate-*l*_binary64
129×distribute-rgt-out_binary64
120×distribute-rgt-neg-in_binary64
116×associate-+r-_binary64
109×associate--r-_binary64
106×distribute-lft-neg-in_binary64
97×distribute-lft-out_binary64
96×+-commutative_binary64
95×associate--l+_binary64
89×unsub-neg_binary64
78×*-commutative_binary64
75×log-prod_binary64
74×distribute-neg-in_binary64
73×distribute-rgt-out--_binary64
72×cancel-sign-sub-inv_binary64
58×distribute-lft-out--_binary64
56×neg-sub0_binary64
51×distribute-lft-neg-out_binary64 associate-+r+_binary64
48×distribute-rgt-neg-out_binary64
45×associate--l-_binary64
43×sqr-pow_binary64
38×sub0-neg_binary64
34×log-pow_binary64 unswap-sqr_binary64
31×exp-sum_binary64
28×log-div_binary64
24×exp-prod_binary64
23×unpow3_binary64
22×times-frac_binary64
21×+-rgt-identity_binary64
19×distribute-rgt1-in_binary64
18×exp-diff_binary64
17×pow-plus_binary64 div-sub_binary64
16×cube-unmult_binary64
14×swap-sqr_binary64
12×cube-prod_binary64
11×difference-of-squares_binary64 associate-/r*_binary64
cancel-sign-sub_binary64
log-rec_binary64 mul-1-neg_binary64
mul0-rgt_binary64 mul0-lft_binary64 associate-/l*_binary64
sqr-neg_binary64 rem-sqrt-square_binary64 count-2_binary64
*-rgt-identity_binary64 *-lft-identity_binary64 distribute-neg-out_binary64
--rgt-identity_binary64
rem-log-exp_binary64 rem-exp-log_binary64 cube-mult_binary64 pow-sqr_binary64 difference-of-sqr-1_binary64 distribute-lft1-in_binary64
rec-exp_binary64 cube-neg_binary64 remove-double-neg_binary64 +-inverses_binary64 distribute-neg-frac_binary64 associate-*l/_binary64
unpow2_binary64 unpow1/2_binary64 exp-to-pow_binary64 unpow1_binary64 div-exp_binary64 1-exp_binary64 cube-div_binary64 rem-3cbrt-lft_binary64 rem-square-sqrt_binary64 /-rgt-identity_binary64 +-lft-identity_binary64 remove-double-div_binary64 difference-of-sqr--1_binary64 associate-/r/_binary64 associate-*r/_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 pow-base-0_binary64 unpow1/3_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 prod-exp_binary64 exp-neg_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 div0_binary64 *-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 distribute-frac-neg_binary64 associate-/l/_binary64
Counts
86 → 45
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01561229
13301163
26991153
318421139
446821139
549131139
649951139
748761139

prune33.0ms (0.7%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New43245
Fresh112
Picked101
Done011
Total45449
Error
0.0b
Counts
49 → 4
Compiler

Compiled 686 to 541 computations (21.1% saved)

localize11.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.1b
(pow.f64 (log.f64 (+.f64 x 1)) 3)
0.1b
(cbrt.f64 (pow.f64 (log.f64 (+.f64 x 1)) 3))
7.5b
(log.f64 (-.f64 1 x))
7.5b
(log.f64 (+.f64 x 1))

rewrite80.0ms (1.6%)

Algorithm
rewrite-expression-head
Error
0b
Rules
17×*-un-lft-identity_binary64
15×add-sqr-sqrt_binary64
14×cbrt-prod_binary64
12×add-cube-cbrt_binary64
11×pow1_binary64
10×log-prod_binary64
unpow-prod-down_binary64 cube-prod_binary64
add-exp-log_binary64
log-pow_binary64
add-cbrt-cube_binary64
log-div_binary64 add-log-exp_binary64
pow-unpow_binary64
rem-log-exp_binary64 difference-of-squares_binary64 unpow3_binary64 cube-mult_binary64 sqr-pow_binary64
flip3-+_binary64 flip-+_binary64 distribute-lft-out_binary64 flip3--_binary64 flip--_binary64 distribute-lft-out--_binary64 pow1/3_binary64 rem-cbrt-cube_binary64 pow-pow_binary64 pow-to-exp_binary64 pow-exp_binary64 rem-cube-cbrt_binary64
Counts
4 → 80
Calls

4 calls:

3.0ms
(log.f64 (-.f64 1 x))
3.0ms
(log.f64 (+.f64 x 1))
2.0ms
(pow.f64 (log.f64 (+.f64 x 1)) 3)
2.0ms
(cbrt.f64 (pow.f64 (log.f64 (+.f64 x 1)) 3))
Compiler

Compiled 1290 to 1108 computations (14.1% saved)

series76.0ms (1.5%)

Error
0.0b
Counts
4 → 28
Calls

4 calls:

18.0ms
(pow.f64 (log.f64 (+.f64 x 1)) 3)
13.0ms
(log.f64 (-.f64 1 x))
12.0ms
(log.f64 (+.f64 x 1))
10.0ms
(cbrt.f64 (pow.f64 (log.f64 (+.f64 x 1)) 3))
Compiler

Compiled 1264 to 1097 computations (13.2% saved)

simplify87.0ms (1.7%)

Algorithm
egg-herbie
Rules
541×times-frac_binary64
487×associate-*l*_binary64
447×associate-*r*_binary64
310×log-prod_binary64
271×exp-prod_binary64
243×unswap-sqr_binary64
239×cube-prod_binary64
109×cancel-sign-sub-inv_binary64
97×*-commutative_binary64
82×distribute-rgt-in_binary64
63×sub-neg_binary64 +-commutative_binary64
60×associate-+l+_binary64
59×distribute-rgt-neg-in_binary64
56×sqr-pow_binary64
53×distribute-lft-in_binary64
51×associate-+l-_binary64
49×distribute-lft-neg-in_binary64
45×associate-+r+_binary64
44×associate--r+_binary64
40×associate-+r-_binary64
39×distribute-neg-in_binary64
33×pow-plus_binary64
32×neg-sub0_binary64 swap-sqr_binary64
31×log-pow_binary64
30×associate--l+_binary64
29×cube-unmult_binary64 unsub-neg_binary64
27×neg-mul-1_binary64 associate-/l*_binary64
25×unpow3_binary64 distribute-rgt-out_binary64
18×associate-/r*_binary64
15×rem-sqrt-square_binary64
14×associate--r-_binary64
13×cube-mult_binary64 distribute-lft-out_binary64
12×distribute-rgt-neg-out_binary64 distribute-lft-neg-out_binary64
11×exp-to-pow_binary64 pow-sqr_binary64
10×distribute-rgt-out--_binary64
distribute-rgt1-in_binary64
log-div_binary64 distribute-lft-out--_binary64
div-sub_binary64
mul-1-neg_binary64 distribute-frac-neg_binary64 count-2_binary64 associate-/l/_binary64
rem-log-exp_binary64 rem-cbrt-cube_binary64 sqr-neg_binary64 remove-double-neg_binary64 associate-*l/_binary64 associate-*r/_binary64
unpow1/2_binary64 unpow1_binary64 cube-div_binary64 cube-neg_binary64 /-rgt-identity_binary64 associate-/r/_binary64 associate--l-_binary64
unpow2_binary64 exp-sum_binary64 rem-exp-log_binary64 *-rgt-identity_binary64 *-lft-identity_binary64
log-rec_binary64 1-exp_binary64 rem-3cbrt-lft_binary64 rem-cube-cbrt_binary64 rem-square-sqrt_binary64 +-inverses_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 distribute-neg-frac_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same erfc-erf_binary64 erf-erfc_binary64 erf-odd_binary64 if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 not-gte_binary64 not-lte_binary64 not-gt_binary64 not-lt_binary64 gte-same_binary64 lte-same_binary64 gt-same_binary64 lt-same_binary64 sinh---cosh_binary64 sinh-+-cosh_binary64 sinh-cosh_binary64 tanh-def-c_binary64 tanh-def-b_binary64 tanh-def-a_binary64 cosh-def_binary64 sinh-def_binary64 tan-neg_binary64 cos-neg_binary64 sin-neg_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 hang-m-tan_binary64 hang-p-tan_binary64 hang-m0-tan_binary64 hang-p0-tan_binary64 hang-0m-tan_binary64 hang-0p-tan_binary64 tan-+PI/2_binary64 tan-+PI_binary64 tan-PI_binary64 tan-PI/3_binary64 tan-PI/4_binary64 tan-PI/6_binary64 cos-+PI/2_binary64 cos-+PI_binary64 cos-PI_binary64 cos-PI/2_binary64 cos-PI/3_binary64 cos-PI/4_binary64 cos-PI/6_binary64 sin-+PI/2_binary64 sin-+PI_binary64 sin-PI_binary64 sin-PI/2_binary64 sin-PI/3_binary64 sin-PI/4_binary64 sin-PI/6_binary64 sub-1-sin_binary64 sub-1-cos_binary64 -1-add-sin_binary64 -1-add-cos_binary64 1-sub-sin_binary64 1-sub-cos_binary64 cos-sin-sum_binary64 log-E_binary64 pow-base-0_binary64 unpow1/3_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 exp-sqrt_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 exp-diff_binary64 exp-neg_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-3cbrt-rft_binary64 sqr-abs_binary64 sub0-neg_binary64 --rgt-identity_binary64 +-rgt-identity_binary64 +-lft-identity_binary64 mul0-rgt_binary64 mul0-lft_binary64 div0_binary64 *-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 cancel-sign-sub_binary64 distribute-neg-out_binary64 distribute-lft1-in_binary64
Counts
108 → 73
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01601361
13221240
28191202
332781202
449441202

prune36.0ms (0.7%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New73073
Fresh022
Picked011
Done011
Total73477
Error
0.0b
Counts
77 → 4
Compiler

Compiled 822 to 657 computations (20.1% saved)

regimes441.0ms (8.8%)

Accuracy

Total 0.2b remaining (94.4%)

Threshold costs 0.2b (94.4%)

Compiler

Compiled 6018 to 5380 computations (10.6% saved)

bsearch0.0ms (0%)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64
+-commutative_binary64
not-true not-false not-not not-and not-or and-true-l and-true-r and-false-l and-false-r and-same or-true-l or-true-r or-false-l or-false-r or-same if-if-and-not_binary64 if-if-and_binary64 if-if-or-not_binary64 if-if-or_binary64 if-not_binary64 if-same_binary64 if-false_binary64 if-true_binary64 tan-0_binary64 cos-0_binary64 sin-0_binary64 unpow1_binary64 e-exp-1_binary64 1-exp_binary64 exp-1-e_binary64 exp-0_binary64 sqr-abs_binary64 sqr-neg_binary64 neg-mul-1_binary64 neg-sub0_binary64 unsub-neg_binary64 sub-neg_binary64 mul-1-neg_binary64 /-rgt-identity_binary64 *-rgt-identity_binary64 *-lft-identity_binary64 remove-double-neg_binary64 sub0-neg_binary64 --rgt-identity_binary64 +-rgt-identity_binary64 +-lft-identity_binary64 cancel-sign-sub-inv_binary64 cancel-sign-sub_binary64 distribute-neg-frac_binary64 distribute-frac-neg_binary64 distribute-neg-out_binary64 distribute-neg-in_binary64 distribute-rgt-neg-out_binary64 distribute-lft-neg-out_binary64 distribute-rgt-neg-in_binary64 distribute-lft-neg-in_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01525
12025
22025

end1.0ms (0%)

Compiler

Compiled 17 to 14 computations (17.6% saved)

sample2.7s (53.8%)

Algorithm
intervals
Results
1.5s3966×body1024valid
450.0ms2058×body512valid
210.0ms379×body2048valid
120.0ms966×body256valid
39.0ms631×body128valid
Compiler

Compiled 102 to 91 computations (10.8% saved)

Profiling

Loading profile data...