Details

Time bar (total: 3.7s)

analyze403.0ms (10.7%)

Algorithm
search
egg-herbie
Rules
1502×associate-/l*_binary64
822×distribute-rgt-in_binary64
738×cancel-sign-sub-inv_binary64
657×*-commutative_binary64
616×sub-neg_binary64
594×distribute-lft-in_binary64
542×associate-/l/_binary64
540×div-sub_binary64
539×distribute-rgt-neg-in_binary64
519×associate-/r/_binary64
413×neg-mul-1_binary64 distribute-lft-neg-in_binary64
410×associate-/r*_binary64
382×unsub-neg_binary64
376×neg-sub0_binary64
343×distribute-neg-frac_binary64
314×distribute-frac-neg_binary64
304×times-frac_binary64
207×distribute-rgt-neg-out_binary64
170×distribute-lft-neg-out_binary64
82×associate--r+_binary64
78×div0_binary64
76×mul0-rgt_binary64
74×mul0-lft_binary64
61×associate-*l*_binary64
48×associate-*r*_binary64
39×+-commutative_binary64
29×remove-double-div_binary64
28×*-lft-identity_binary64 swap-sqr_binary64
19×distribute-neg-in_binary64
17×/-rgt-identity_binary64 associate--l-_binary64
16×associate-*l/_binary64 associate-+r-_binary64
15×associate-+l-_binary64
14×remove-double-neg_binary64
13×associate--r-_binary64
12×*-inverses_binary64 lft-mult-inverse_binary64
11×*-rgt-identity_binary64
10×sub0-neg_binary64
associate-+r+_binary64
mul-1-neg_binary64
--rgt-identity_binary64 associate-+l+_binary64
+-lft-identity_binary64
sqr-neg_binary64
+-rgt-identity_binary64 distribute-rgt-out--_binary64
1-exp_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_binary64 associate-*r/_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-pow_binary64 log-rec_binary64 log-div_binary64 log-prod_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 rem-sqrt-square_binary64 rem-square-sqrt_binary64 +-inverses_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 cancel-sign-sub_binary64 distribute-neg-out_binary64 distribute-rgt-out_binary64 distribute-lft-out--_binary64 distribute-lft-out_binary64 count-2_binary64
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01532
12432
23932
35732
47732
513932
616632
734732
849232
955132
10116932
11208032
12174632
13192432
14202432
15202432
16219532
17218132
18214932
19216932
20216532
21216932
22216932
23218932
24218932
25356532
26338132
27350432
28372432
29375332
30374132
31392932
32432132
33493332
34465032
022
122
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
50%50%0.1%3
50%50%0.1%4
50%50%0.1%5
62.4%37.5%0.1%6
74.9%25%0.1%7
81.2%18.7%0.1%8
87.4%12.5%0.1%9
90.5%9.4%0.1%10
93.7%6.2%0.1%11
95.2%4.7%0.1%12
96.8%3.1%0.1%13
97.6%2.3%0.1%14
Compiler

Compiled 12 to 10 computations (16.7% saved)

sample18.0ms (0.5%)

Algorithm
intervals
Results
9.0ms256×body128valid
Compiler

Compiled 23 to 21 computations (8.7% saved)

simplify400.0ms (10.7%)

Algorithm
egg-herbie
Rules
4285×associate-/l/_binary64
1506×div-sub_binary64
825×sub-neg_binary64
818×associate-/l*_binary64
785×distribute-rgt-in_binary64
650×distribute-lft-in_binary64
636×associate-/r/_binary64
602×cancel-sign-sub-inv_binary64
455×unsub-neg_binary64
395×associate-/r*_binary64
341×*-commutative_binary64
337×distribute-rgt-neg-out_binary64
295×associate-*l/_binary64
259×associate-*l*_binary64
247×distribute-neg-in_binary64
224×neg-mul-1_binary64
219×neg-sub0_binary64
217×associate-*r*_binary64
207×distribute-lft-neg-out_binary64 associate--r+_binary64
180×distribute-rgt-neg-in_binary64
149×associate-*r/_binary64
147×+-commutative_binary64
135×associate--l+_binary64
134×mul0-rgt_binary64
133×mul0-lft_binary64
130×div0_binary64 distribute-frac-neg_binary64
125×distribute-neg-frac_binary64
120×*-lft-identity_binary64
80×times-frac_binary64
72×distribute-lft-neg-in_binary64
31×associate--r-_binary64
17×associate--l-_binary64
16×/-rgt-identity_binary64 distribute-rgt-out--_binary64
15×*-rgt-identity_binary64
12×cancel-sign-sub_binary64
11×associate-+l-_binary64
10×sub0-neg_binary64
mul-1-neg_binary64 distribute-rgt-out_binary64
remove-double-neg_binary64 +-lft-identity_binary64
+-rgt-identity_binary64
associate-+l+_binary64
--rgt-identity_binary64 *-inverses_binary64 swap-sqr_binary64 distribute-neg-out_binary64 associate-+r-_binary64 associate-+r+_binary64
lft-mult-inverse_binary64
sqr-neg_binary64
1-exp_binary64 distribute-rgt1-in_binary64 distribute-lft1-in_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 log-rec_binary64 log-div_binary64 log-prod_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 rem-sqrt-square_binary64 rem-square-sqrt_binary64 +-inverses_binary64 rgt-mult-inverse_binary64 remove-double-div_binary64 pow-sqr_binary64 sqr-pow_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 unswap-sqr_binary64 distribute-lft-out--_binary64 distribute-lft-out_binary64 count-2_binary64
Counts
1 → 0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01016
11816
22816
33916
45216
58316
610916
715816
830716
942116
1065716
11124416
12156616
13151116
14156516
15159516
16160116
17160116
18186516
19164116
20164116
21280116
22355116
23337916
24330716
25327316
26334116
27414116
28363716
29363716
30363716
31365716
32364116
33364116
34364116
35364116
36489416

prune1.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New000
Fresh011
Picked000
Done000
Total011
Error
0.0b
Counts
1 → 1
Compiler

Compiled 11 to 9 computations (18.2% saved)

localize8.0ms (0.2%)

Local error

Found 1 expressions with local error:

6.9b
(/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2)))

rewrite53.0ms (1.4%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
18×*-un-lft-identity_binary64
12×times-frac_binary64
10×add-cube-cbrt_binary64 add-sqr-sqrt_binary64
distribute-lft-out_binary64 associate-/r*_binary64
add-exp-log_binary64 add-cbrt-cube_binary64 associate-/l*_binary64
associate-/r/_binary64
pow1_binary64 div-exp_binary64 add-log-exp_binary64 cbrt-undiv_binary64 frac-2neg_binary64 clear-num_binary64 div-inv_binary64 flip3-+_binary64 flip-+_binary64
Counts
1 → 33
Calls

1 calls:

7.0ms
(/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2)))
Compiler

Compiled 620 to 371 computations (40.2% saved)

series26.0ms (0.7%)

Error
0.0b
Counts
1 → 12
Calls

1 calls:

20.0ms
(/.f64 y (+.f64 1 (/.f64 (*.f64 x y) 2)))
Compiler

Compiled 291 to 239 computations (17.9% saved)

simplify82.0ms (2.2%)

Algorithm
egg-herbie
Rules
591×cancel-sign-sub-inv_binary64
444×associate-/l/_binary64
288×unswap-sqr_binary64
273×distribute-rgt-neg-in_binary64
258×distribute-lft-neg-in_binary64
221×associate-*r*_binary64
211×associate-*l*_binary64
198×neg-mul-1_binary64
183×distribute-rgt-in_binary64
146×distribute-lft-in_binary64
118×associate-/l*_binary64
104×associate-*l/_binary64
93×times-frac_binary64 distribute-rgt-out_binary64
91×associate-*r/_binary64
85×*-commutative_binary64
74×div-sub_binary64
66×sub-neg_binary64
63×distribute-rgt-out--_binary64
61×cube-div_binary64 associate-/r*_binary64
55×distribute-neg-frac_binary64
53×cube-prod_binary64
51×distribute-lft-out--_binary64
40×neg-sub0_binary64
38×associate-/r/_binary64
36×distribute-lft-out_binary64
35×sqr-pow_binary64
32×unpow3_binary64
23×cube-mult_binary64
17×distribute-lft-neg-out_binary64 associate-+l+_binary64 +-commutative_binary64
15×*-rgt-identity_binary64
14×log-div_binary64 cube-unmult_binary64
13×*-lft-identity_binary64 associate-+l-_binary64 associate-+r+_binary64
12×associate--l+_binary64
11×log-prod_binary64
10×swap-sqr_binary64
unsub-neg_binary64 /-rgt-identity_binary64 distribute-rgt1-in_binary64 associate-+r-_binary64
pow-plus_binary64
associate--r+_binary64
sub0-neg_binary64 distribute-neg-in_binary64
+-rgt-identity_binary64
distribute-lft1-in_binary64
log-pow_binary64 exp-prod_binary64 distribute-rgt-neg-out_binary64
log-rec_binary64 unpow2_binary64 unpow1/2_binary64 unpow1_binary64 rem-sqrt-square_binary64 pow-sqr_binary64 distribute-frac-neg_binary64 count-2_binary64
1-exp_binary64 difference-of-sqr-1_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 pow-base-0_binary64 unpow1/3_binary64 exp-to-pow_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 exp-sum_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_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-square-sqrt_binary64 mul-1-neg_binary64 remove-double-neg_binary64 --rgt-identity_binary64 +-lft-identity_binary64 mul0-rgt_binary64 mul0-lft_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-squares_binary64 cancel-sign-sub_binary64 distribute-neg-out_binary64 associate--r-_binary64
Counts
45 → 37
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
084920
1201864
2542849
31895849
44705849
55053849

prune39.0ms (1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New34337
Fresh000
Picked101
Done000
Total35338
Error
0b
Counts
38 → 3
Compiler

Compiled 622 to 410 computations (34.1% saved)

localize9.0ms (0.2%)

Local error

Found 2 expressions with local error:

0.5b
(/.f64 y (/.f64 2 x))
6.9b
(/.f64 (neg.f64 y) (-.f64 -1 (/.f64 y (/.f64 2 x))))

rewrite200.0ms (5.3%)

Algorithm
rewrite-expression-head
Error
0b
Rules
178×add-sqr-sqrt_binary64 times-frac_binary64
101×*-un-lft-identity_binary64
79×add-cube-cbrt_binary64
33×difference-of-squares_binary64
24×distribute-rgt-neg-in_binary64 distribute-lft-neg-in_binary64
20×associate-/r*_binary64
13×associate-/l*_binary64
11×distribute-lft-out--_binary64
add-exp-log_binary64 add-cbrt-cube_binary64
neg-mul-1_binary64
div-inv_binary64
div-exp_binary64 cbrt-undiv_binary64
associate-/r/_binary64
pow1_binary64 add-log-exp_binary64 frac-2neg_binary64 clear-num_binary64
neg-sub0_binary64 div-sub_binary64 distribute-frac-neg_binary64 flip3--_binary64 flip--_binary64
Counts
2 → 173
Calls

2 calls:

18.0ms
(/.f64 (neg.f64 y) (-.f64 -1 (/.f64 y (/.f64 2 x))))
5.0ms
(/.f64 y (/.f64 2 x))
Compiler

Compiled 3664 to 2232 computations (39.1% saved)

series41.0ms (1.1%)

Error
0b
Counts
2 → 18
Calls

2 calls:

22.0ms
(/.f64 (neg.f64 y) (-.f64 -1 (/.f64 y (/.f64 2 x))))
14.0ms
(/.f64 y (/.f64 2 x))
Compiler

Compiled 447 to 367 computations (17.9% saved)

simplify182.0ms (4.9%)

Algorithm
egg-herbie
Rules
742×associate-/r/_binary64
585×div-sub_binary64
209×cancel-sign-sub-inv_binary64
198×distribute-frac-neg_binary64
192×associate-/l/_binary64
161×associate-/l*_binary64
155×sub-neg_binary64
150×distribute-rgt-neg-out_binary64
136×neg-sub0_binary64
134×neg-mul-1_binary64
130×distribute-lft-neg-in_binary64
125×distribute-rgt-neg-in_binary64
118×distribute-lft-neg-out_binary64
110×distribute-neg-frac_binary64
101×associate-*l/_binary64
90×cube-prod_binary64 *-commutative_binary64
76×associate-*r*_binary64
74×log-prod_binary64
66×exp-prod_binary64 distribute-rgt-in_binary64
65×unswap-sqr_binary64
61×distribute-lft-in_binary64
56×associate-/r*_binary64 associate-*r/_binary64
45×*-rgt-identity_binary64
44×associate-*l*_binary64
43×cube-div_binary64 times-frac_binary64
40×log-div_binary64
33×div0_binary64
25×sqr-pow_binary64
20×+-commutative_binary64
19×unpow3_binary64
18×exp-sum_binary64
16×cube-mult_binary64 cancel-sign-sub_binary64
15×unsub-neg_binary64 swap-sqr_binary64
13×sqr-neg_binary64 /-rgt-identity_binary64 distribute-rgt-out--_binary64
11×cube-neg_binary64
10×remove-double-neg_binary64
log-rec_binary64
exp-diff_binary64 distribute-rgt-out_binary64
cube-unmult_binary64 distribute-neg-in_binary64
exp-neg_binary64 associate--l+_binary64 associate--r+_binary64
*-lft-identity_binary64
log-pow_binary64 exp-sqrt_binary64
pow-plus_binary64 remove-double-div_binary64 distribute-neg-out_binary64 distribute-rgt1-in_binary64
unpow2_binary64 unpow1/2_binary64 unpow1_binary64 rem-sqrt-square_binary64 sub0-neg_binary64 distribute-lft-out_binary64 associate--r-_binary64 associate--l-_binary64 associate-+l-_binary64 associate-+l+_binary64
1-exp_binary64 mul-1-neg_binary64 +-rgt-identity_binary64 distribute-lft-out--_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 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 e-exp-1_binary64 exp-1-e_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_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 *-inverses_binary64 +-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 pow-sqr_binary64 difference-of-sqr--1_binary64 difference-of-sqr-1_binary64 difference-of-squares_binary64 distribute-lft1-in_binary64 count-2_binary64 associate-+r+_binary64
Counts
191 → 142
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03184623
16714541
222644528
344984528
452004528

prune109.0ms (2.9%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1420142
Fresh022
Picked011
Done000
Total1423145
Error
0b
Counts
145 → 3
Compiler

Compiled 2244 to 1243 computations (44.6% saved)

localize12.0ms (0.3%)

Local error

Found 3 expressions with local error:

0.5b
(/.f64 y (/.f64 2 x))
0.7b
(/.f64 1 (+.f64 1 (/.f64 y (/.f64 2 x))))
6.0b
(*.f64 y (/.f64 1 (+.f64 1 (/.f64 y (/.f64 2 x)))))

rewrite213.0ms (5.7%)

Algorithm
rewrite-expression-head
Error
0b
Rules
101×times-frac_binary64
78×*-un-lft-identity_binary64
70×add-sqr-sqrt_binary64
63×add-cube-cbrt_binary64
21×add-exp-log_binary64
18×associate-*r*_binary64
17×associate-/r*_binary64
15×add-cbrt-cube_binary64
div-exp_binary64 distribute-lft-out_binary64 div-inv_binary64
pow1_binary64 associate-/l*_binary64
cbrt-undiv_binary64 associate-/r/_binary64
prod-exp_binary64
add-log-exp_binary64 unswap-sqr_binary64 associate-*l*_binary64
1-exp_binary64 rec-exp_binary64 cbrt-unprod_binary64 flip3-+_binary64 flip-+_binary64 frac-2neg_binary64 clear-num_binary64
pow-prod-down_binary64 un-div-inv_binary64 associate-*r/_binary64 *-commutative_binary64 inv-pow_binary64 pow-flip_binary64
Counts
3 → 148
Calls

3 calls:

20.0ms
(*.f64 y (/.f64 1 (+.f64 1 (/.f64 y (/.f64 2 x)))))
14.0ms
(/.f64 1 (+.f64 1 (/.f64 y (/.f64 2 x))))
6.0ms
(/.f64 y (/.f64 2 x))
Compiler

Compiled 3136 to 2196 computations (30% saved)

series68.0ms (1.8%)

Error
0b
Counts
3 → 30
Calls

3 calls:

21.0ms
(*.f64 y (/.f64 1 (+.f64 1 (/.f64 y (/.f64 2 x)))))
20.0ms
(/.f64 1 (+.f64 1 (/.f64 y (/.f64 2 x))))
14.0ms
(/.f64 y (/.f64 2 x))
Compiler

Compiled 801 to 645 computations (19.5% saved)

simplify133.0ms (3.6%)

Algorithm
egg-herbie
Rules
749×times-frac_binary64
576×cancel-sign-sub-inv_binary64
421×associate-/r/_binary64
413×associate-*r/_binary64
371×*-commutative_binary64
348×associate-/r*_binary64
230×unswap-sqr_binary64
141×sub-neg_binary64
126×associate-*r*_binary64
121×associate-*l/_binary64
112×associate-/l*_binary64
111×associate-/l/_binary64 associate-*l*_binary64
93×distribute-rgt-neg-in_binary64
82×distribute-lft-neg-in_binary64
69×*-rgt-identity_binary64
67×sqr-pow_binary64
63×neg-mul-1_binary64
61×log-prod_binary64 neg-sub0_binary64
60×cube-prod_binary64
55×/-rgt-identity_binary64
50×log-div_binary64
48×cube-div_binary64
46×swap-sqr_binary64
43×exp-prod_binary64
41×distribute-rgt-in_binary64
36×associate-+l+_binary64
34×associate-+r+_binary64
33×associate-+l-_binary64
31×associate--l+_binary64
29×distribute-lft-in_binary64 +-commutative_binary64
28×*-lft-identity_binary64
27×associate-+r-_binary64
25×div-sub_binary64 distribute-neg-frac_binary64
23×unsub-neg_binary64
20×associate--r+_binary64
15×distribute-rgt-out_binary64
14×unpow3_binary64
13×+-rgt-identity_binary64
12×sub0-neg_binary64
11×cube-mult_binary64
10×log-rec_binary64
distribute-neg-in_binary64
distribute-rgt-out--_binary64
pow-sqr_binary64 distribute-lft-neg-out_binary64
remove-double-div_binary64
cube-unmult_binary64
log-pow_binary64 associate--l-_binary64
unpow1/2_binary64 rem-sqrt-square_binary64 associate--r-_binary64
unpow2_binary64 pow-plus_binary64 unpow1_binary64 exp-sqrt_binary64 --rgt-identity_binary64 +-lft-identity_binary64 distribute-lft-out_binary64
1-exp_binary64 exp-1-e_binary64 remove-double-neg_binary64 mul0-rgt_binary64 mul0-lft_binary64 div0_binary64 +-inverses_binary64 difference-of-sqr-1_binary64 distribute-frac-neg_binary64 distribute-rgt1-in_binary64 count-2_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 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 exp-diff_binary64 exp-neg_binary64 exp-sum_binary64 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_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-square-sqrt_binary64 mul-1-neg_binary64 *-inverses_binary64 lft-mult-inverse_binary64 rgt-mult-inverse_binary64 difference-of-sqr--1_binary64 difference-of-squares_binary64 cancel-sign-sub_binary64 distribute-neg-out_binary64 distribute-rgt-neg-out_binary64 distribute-lft1-in_binary64 distribute-lft-out--_binary64
Counts
178 → 145
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02523081
15712905
218162880
339552874
451252874

prune111.0ms (3%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New1450145
Fresh011
Picked011
Done011
Total1453148
Error
0b
Counts
148 → 3
Compiler

Compiled 2005 to 1298 computations (35.3% saved)

localize14.0ms (0.4%)

Local error

Found 3 expressions with local error:

0.3b
(*.f64 (/.f64 (*.f64 y x) 4) (*.f64 y x))
3.1b
(/.f64 y (-.f64 1 (*.f64 (/.f64 (*.f64 y x) 4) (*.f64 y x))))
13.6b
(*.f64 (/.f64 y (-.f64 1 (*.f64 (/.f64 (*.f64 y x) 4) (*.f64 y x)))) (-.f64 1 (/.f64 (*.f64 x y) 2)))

rewrite177.0ms (4.7%)

Algorithm
rewrite-expression-head
Error
0b
Rules
33×add-sqr-sqrt_binary64
31×add-exp-log_binary64 add-cbrt-cube_binary64
28×*-un-lft-identity_binary64 times-frac_binary64
25×add-cube-cbrt_binary64
22×associate-*l*_binary64
14×cancel-sign-sub-inv_binary64
13×prod-exp_binary64 cbrt-unprod_binary64
10×pow1_binary64
distribute-rgt-in_binary64 distribute-lft-in_binary64
associate-*r*_binary64
div-exp_binary64 cbrt-undiv_binary64
div-inv_binary64
pow-prod-down_binary64 flip3--_binary64 flip--_binary64 associate-/r/_binary64
add-log-exp_binary64 associate-/l*_binary64 associate-/r*_binary64
frac-times_binary64 unswap-sqr_binary64 sub-neg_binary64 associate-*l/_binary64 associate-*r/_binary64 difference-of-squares_binary64 *-commutative_binary64
distribute-lft-out--_binary64 frac-2neg_binary64 clear-num_binary64
Counts
3 → 117
Calls

3 calls:

16.0ms
(*.f64 (/.f64 y (-.f64 1 (*.f64 (/.f64 (*.f64 y x) 4) (*.f64 y x)))) (-.f64 1 (/.f64 (*.f64 x y) 2)))
8.0ms
(*.f64 (/.f64 (*.f64 y x) 4) (*.f64 y x))
5.0ms
(/.f64 y (-.f64 1 (*.f64 (/.f64 (*.f64 y x) 4) (*.f64 y x))))
Compiler

Compiled 4210 to 2268 computations (46.1% saved)

series92.0ms (2.5%)

Error
0b
Counts
3 → 30
Calls

3 calls:

33.0ms
(/.f64 y (-.f64 1 (*.f64 (/.f64 (*.f64 y x) 4) (*.f64 y x))))
24.0ms
(*.f64 (/.f64 y (-.f64 1 (*.f64 (/.f64 (*.f64 y x) 4) (*.f64 y x)))) (-.f64 1 (/.f64 (*.f64 x y) 2)))
23.0ms
(*.f64 (/.f64 (*.f64 y x) 4) (*.f64 y x))
Compiler

Compiled 1115 to 899 computations (19.4% saved)

simplify158.0ms (4.2%)

Algorithm
egg-herbie
Rules
605×times-frac_binary64
281×associate-*r*_binary64
261×associate-*l*_binary64
207×cancel-sign-sub-inv_binary64
180×*-commutative_binary64
172×associate-*l/_binary64
167×unswap-sqr_binary64
158×exp-prod_binary64
125×associate-*r/_binary64
122×distribute-neg-frac_binary64
113×distribute-rgt-neg-out_binary64
110×associate-/l*_binary64
101×log-prod_binary64
84×neg-sub0_binary64
81×swap-sqr_binary64
76×neg-mul-1_binary64
65×sub-neg_binary64
52×distribute-rgt-in_binary64
51×sqr-pow_binary64 distribute-lft-in_binary64
50×log-div_binary64 *-lft-identity_binary64
48×cube-prod_binary64
43×div-sub_binary64 *-rgt-identity_binary64
42×+-commutative_binary64
36×cube-div_binary64
34×distribute-frac-neg_binary64
33×unpow3_binary64
31×distribute-rgt-neg-in_binary64
30×distribute-lft-neg-out_binary64
29×associate-/l/_binary64
22×distribute-lft-neg-in_binary64 associate-+l+_binary64
20×associate-/r*_binary64
19×associate-/r/_binary64 associate-+r+_binary64
12×unsub-neg_binary64
10×associate--l+_binary64
distribute-neg-in_binary64
cube-unmult_binary64 cube-mult_binary64 associate--r+_binary64
log-pow_binary64 associate-+l-_binary64
pow-plus_binary64 /-rgt-identity_binary64
unpow1/2_binary64 exp-sqrt_binary64 pow-sqr_binary64 distribute-rgt1-in_binary64 distribute-rgt-out_binary64
exp-sum_binary64
unpow2_binary64 unpow1_binary64 rem-sqrt-square_binary64 div0_binary64 distribute-lft-out_binary64 associate-+r-_binary64
log-rec_binary64 exp-diff_binary64 1-exp_binary64 exp-1-e_binary64 rem-3cbrt-lft_binary64 rem-square-sqrt_binary64 remove-double-neg_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 exp-to-pow_binary64 pow-base-1_binary64 unpow0_binary64 unpow-1_binary64 exp-lft-cube_binary64 exp-lft-sqr_binary64 exp-cbrt_binary64 div-exp_binary64 rec-exp_binary64 prod-exp_binary64 exp-neg_binary64 e-exp-1_binary64 exp-0_binary64 rem-log-exp_binary64 rem-exp-log_binary64 cube-neg_binary64 rem-3cbrt-rft_binary64 rem-cbrt-cube_binary64 rem-cube-cbrt_binary64 sqr-abs_binary64 sqr-neg_binary64 mul-1-neg_binary64 sub0-neg_binary64 --rgt-identity_binary64 +-rgt-identity_binary64 +-lft-identity_binary64 mul0-rgt_binary64 mul0-lft_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 difference-of-squares_binary64 cancel-sign-sub_binary64 distribute-neg-out_binary64 distribute-lft1-in_binary64 distribute-rgt-out--_binary64 distribute-lft-out--_binary64 count-2_binary64 associate--l-_binary64
Counts
147 → 131
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02674340
17214049
225124001
348574001
451064001

prune103.0ms (2.7%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New1310131
Fresh000
Picked011
Done022
Total1313134
Error
0b
Counts
134 → 3
Compiler

Compiled 2927 to 1651 computations (43.6% saved)

regimes469.0ms (12.5%)

Accuracy

Total 0.0b remaining (53.3%)

Threshold costs 0.0b (53.3%)

Compiler

Compiled 3518 to 2657 computations (24.5% saved)

bsearch0.0ms (0%)

simplify4.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64
sub-neg_binary64
neg-mul-1_binary64 neg-sub0_binary64 *-commutative_binary64
1-exp_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 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 exp-1-e_binary64 exp-0_binary64 sqr-abs_binary64 sqr-neg_binary64 unsub-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-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
01016
11516
22116
32516
42816
52916
62816

end1.0ms (0%)

Compiler

Compiled 11 to 9 computations (18.2% saved)

sample622.0ms (16.6%)

Algorithm
intervals
Results
294.0ms7998×body128valid
1.0msbody2048valid
Compiler

Compiled 74 to 67 computations (9.5% saved)

Profiling

Loading profile data...