Details

Time bar (total: 5.5s)

analyze231.0ms (4.2%)

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
12.5%87.4%0.1%6
18.7%81.1%0.1%7
37.4%62.4%0.1%8
46.8%46.8%6.4%9
54.6%39%6.4%10
62.8%30.8%6.4%11
66.9%23.6%9.5%12
71.7%18.8%9.5%13
75.3%15.2%9.5%14
Compiler

Compiled 8 to 8 computations (0% saved)

sample16.0ms (0.3%)

Algorithm
intervals
Results
6.0ms256×body128valid
0.0ms11×body128invalid
Compiler

Compiled 15 to 18 computations (-20% saved)

simplify1.0s (18.7%)

Algorithm
egg-herbie
Rules
1342×exp-prod_binary64_30138
556×cube-prod_binary64_30114
551×distribute-rgt-out--_binary64_30040
523×distribute-rgt-out_binary64_30039
457×swap-sqr_binary64_30053
413×exp-diff_binary64_30134
361×distribute-rgt-neg-in_binary64_30044
327×exp-sum_binary64_30132
263×sub-neg_binary64_30079
227×associate--r-_binary64_30025
212×unsub-neg_binary64_30080 cancel-sign-sub-inv_binary64_30052
182×*-commutative_binary64_30017
164×associate--l-_binary64_30024
161×associate-+r-_binary64_30020
129×pow-plus_binary64_30149
121×associate-+l-_binary64_30021
78×+-commutative_binary64_30016
73×distribute-lft-neg-in_binary64_30043
58×distribute-rgt1-in_binary64_30042
55×distribute-rgt-in_binary64_30036
53×distribute-neg-out_binary64_30048
48×neg-mul-1_binary64_30082
46×neg-sub0_binary64_30081
40×associate-*r*_binary64_30026
39×distribute-neg-in_binary64_30047
37×sqr-pow_binary64_30058
34×distribute-lft-in_binary64_30035
23×associate--r+_binary64_30022
21×distribute-rgt-neg-out_binary64_30046 distribute-lft-neg-out_binary64_30045
16×associate-+l+_binary64_30019
15×remove-double-neg_binary64_30074 +-inverses_binary64_30065 difference-of-squares_binary64_30055
14×pow-base-1_binary64_30146 mul0-lft_binary64_30068 associate-+r+_binary64_30018
13×count-2_binary64_30034
12×mul0-rgt_binary64_30069 distribute-lft1-in_binary64_30041
10×exp-lft-sqr_binary64_30141 pow-sqr_binary64_30059 associate--l+_binary64_30023
cube-unmult_binary64_30123
associate-*l*_binary64_30027
exp-lft-cube_binary64_30142
*-rgt-identity_binary64_30076 *-lft-identity_binary64_30075
sub0-neg_binary64_30073 +-rgt-identity_binary64_30071 associate-*l/_binary64_30029
+-lft-identity_binary64_30070
--rgt-identity_binary64_30072 difference-of-sqr--1_binary64_30057 distribute-lft-out--_binary64_30038 distribute-lft-out_binary64_30037
exp-neg_binary64_30133 cube-div_binary64_30115 sqr-neg_binary64_30100
unpow3_binary64_30152 1-exp_binary64_30130 exp-1-e_binary64_30129 cube-neg_binary64_30113 distribute-neg-frac_binary64_30050
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_30349 erf-erfc_binary64_30348 erf-odd_binary64_30347 if-if-and-not_binary64_30346 if-if-and_binary64_30345 if-if-or-not_binary64_30344 if-if-or_binary64_30343 if-not_binary64_30342 if-same_binary64_30341 if-false_binary64_30340 if-true_binary64_30339 not-gte_binary64_30338 not-lte_binary64_30337 not-gt_binary64_30336 not-lt_binary64_30335 gte-same_binary64_30334 lte-same_binary64_30333 gt-same_binary64_30332 lt-same_binary64_30331 sinh---cosh_binary64_30278 sinh-+-cosh_binary64_30277 sinh-cosh_binary64_30276 tanh-def-c_binary64_30275 tanh-def-b_binary64_30274 tanh-def-a_binary64_30273 cosh-def_binary64_30272 sinh-def_binary64_30271 tan-neg_binary64_30218 cos-neg_binary64_30217 sin-neg_binary64_30216 tan-0_binary64_30215 cos-0_binary64_30214 sin-0_binary64_30213 hang-m-tan_binary64_30212 hang-p-tan_binary64_30211 hang-m0-tan_binary64_30210 hang-p0-tan_binary64_30209 hang-0m-tan_binary64_30208 hang-0p-tan_binary64_30207 tan-+PI/2_binary64_30206 tan-+PI_binary64_30205 tan-PI_binary64_30204 tan-PI/3_binary64_30203 tan-PI/4_binary64_30202 tan-PI/6_binary64_30201 cos-+PI/2_binary64_30200 cos-+PI_binary64_30199 cos-PI_binary64_30198 cos-PI/2_binary64_30197 cos-PI/3_binary64_30196 cos-PI/4_binary64_30195 cos-PI/6_binary64_30194 sin-+PI/2_binary64_30193 sin-+PI_binary64_30192 sin-PI_binary64_30191 sin-PI/2_binary64_30190 sin-PI/3_binary64_30189 sin-PI/4_binary64_30188 sin-PI/6_binary64_30187 sub-1-sin_binary64_30186 sub-1-cos_binary64_30185 -1-add-sin_binary64_30184 -1-add-cos_binary64_30183 1-sub-sin_binary64_30182 1-sub-cos_binary64_30181 cos-sin-sum_binary64_30180 log-E_binary64_30176 log-pow_binary64_30175 log-rec_binary64_30174 log-div_binary64_30173 log-prod_binary64_30172 pow-base-0_binary64_30170 unpow1/3_binary64_30153 unpow2_binary64_30151 unpow1/2_binary64_30150 exp-to-pow_binary64_30148 unpow0_binary64_30145 unpow1_binary64_30144 unpow-1_binary64_30143 exp-cbrt_binary64_30140 exp-sqrt_binary64_30139 div-exp_binary64_30137 rec-exp_binary64_30136 prod-exp_binary64_30135 e-exp-1_binary64_30131 exp-0_binary64_30128 rem-log-exp_binary64_30127 rem-exp-log_binary64_30126 cube-mult_binary64_30116 rem-3cbrt-rft_binary64_30112 rem-3cbrt-lft_binary64_30111 rem-cbrt-cube_binary64_30110 rem-cube-cbrt_binary64_30109 sqr-abs_binary64_30101 rem-sqrt-square_binary64_30099 rem-square-sqrt_binary64_30098 times-frac_binary64_30092 div-sub_binary64_30091 mul-1-neg_binary64_30078 /-rgt-identity_binary64_30077 div0_binary64_30067 *-inverses_binary64_30066 lft-mult-inverse_binary64_30064 rgt-mult-inverse_binary64_30063 remove-double-div_binary64_30062 difference-of-sqr-1_binary64_30056 unswap-sqr_binary64_30054 cancel-sign-sub_binary64_30051 distribute-frac-neg_binary64_30049 associate-/l/_binary64_30033 associate-/r/_binary64_30032 associate-/l*_binary64_30031 associate-/r*_binary64_30030 associate-*r/_binary64_30028
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
11410
22510
33110
45710
59610
617810
740010
8196710
9292610

prune6.0ms (0.1%)

Pruning

3 alts after pruning (3 fresh and 0 done)

PrunedKeptTotal
New022
Fresh011
Picked000
Done000
Total033
Error
0.0b
Counts
3 → 3
Compiler

Compiled 35 to 32 computations (8.6% saved)

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(-.f64 (*.f64 (*.f64 x 3) y) z)
0.3b
(*.f64 (*.f64 x 3) y)

rewrite40.0ms (0.7%)

Algorithm
rewrite-expression-head
Error
0b
Rules
pow1_binary64_30147 add-exp-log_binary64_30124 add-cbrt-cube_binary64_30122
add-log-exp_binary64_30125 add-cube-cbrt_binary64_30121 add-sqr-sqrt_binary64_30108 *-un-lft-identity_binary64_30086
pow-prod-down_binary64_30157 prod-exp_binary64_30135 cbrt-unprod_binary64_30119 associate-*r*_binary64_30026 cancel-sign-sub-inv_binary64_30052
associate-*l*_binary64_30027 *-commutative_binary64_30017 diff-log_binary64_30178 flip3--_binary64_30090 sub-neg_binary64_30079 flip--_binary64_30061
Counts
2 → 32
Calls

2 calls:

5.0ms
(-.f64 (*.f64 (*.f64 x 3) y) z)
5.0ms
(*.f64 (*.f64 x 3) y)
Compiler

Compiled 436 to 279 computations (36% saved)

series285.0ms (5.2%)

Error
0.0b
Counts
2 → 24
Calls

2 calls:

186.0ms
(-.f64 (*.f64 (*.f64 x 3) y) z)
87.0ms
(*.f64 (*.f64 x 3) y)
Compiler

Compiled 389 to 327 computations (15.9% saved)

simplify226.0ms (4.1%)

Algorithm
egg-herbie
Rules
418×distribute-rgt-neg-in_binary64_30044
386×unswap-sqr_binary64_30054
295×distribute-lft-neg-in_binary64_30043
252×cancel-sign-sub-inv_binary64_30052
226×*-commutative_binary64_30017
211×distribute-rgt-out_binary64_30039
155×associate-/l*_binary64_30031
154×unsub-neg_binary64_30080
153×sqr-pow_binary64_30058
143×distribute-neg-in_binary64_30047
139×distribute-lft-neg-out_binary64_30045
138×times-frac_binary64_30092
131×distribute-rgt-in_binary64_30036
118×associate-*l*_binary64_30027
111×distribute-lft-in_binary64_30035
100×neg-mul-1_binary64_30082
97×neg-sub0_binary64_30081
82×associate-*r*_binary64_30026
79×exp-prod_binary64_30138
77×pow-sqr_binary64_30059
71×+-commutative_binary64_30016
60×difference-of-squares_binary64_30055
54×exp-sum_binary64_30132
51×associate-/r/_binary64_30032
49×distribute-rgt-neg-out_binary64_30046
48×distribute-lft-out_binary64_30037
45×sub-neg_binary64_30079 swap-sqr_binary64_30053
39×associate-+r+_binary64_30018
38×associate-/l/_binary64_30033
35×cube-prod_binary64_30114
33×distribute-neg-out_binary64_30048 associate-/r*_binary64_30030
31×associate-+l-_binary64_30021
30×log-prod_binary64_30172 associate-+l+_binary64_30019
28×associate-*r/_binary64_30028
24×*-rgt-identity_binary64_30076
23×mul0-lft_binary64_30068
22×log-pow_binary64_30175 mul0-rgt_binary64_30069
21×*-lft-identity_binary64_30075 associate--r+_binary64_30022
18×associate-*l/_binary64_30029
15×distribute-rgt1-in_binary64_30042 associate-+r-_binary64_30020
13×unpow3_binary64_30152 exp-diff_binary64_30134
10×+-rgt-identity_binary64_30071 distribute-rgt-out--_binary64_30040
exp-to-pow_binary64_30148 cube-mult_binary64_30116 div-sub_binary64_30091
prod-exp_binary64_30135 sub0-neg_binary64_30073
pow-plus_binary64_30149 cube-unmult_binary64_30123
exp-neg_binary64_30133 sqr-neg_binary64_30100
exp-lft-cube_binary64_30142 distribute-frac-neg_binary64_30049 associate--l+_binary64_30023
div-exp_binary64_30137 --rgt-identity_binary64_30072 distribute-lft1-in_binary64_30041
pow-base-1_binary64_30146 count-2_binary64_30034
rem-sqrt-square_binary64_30099 /-rgt-identity_binary64_30077 +-lft-identity_binary64_30070
1-exp_binary64_30130 exp-1-e_binary64_30129 rem-log-exp_binary64_30127 cube-neg_binary64_30113 rem-3cbrt-lft_binary64_30111 rem-square-sqrt_binary64_30098 mul-1-neg_binary64_30078 remove-double-neg_binary64_30074 *-inverses_binary64_30066 rgt-mult-inverse_binary64_30063 cancel-sign-sub_binary64_30051
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_30349 erf-erfc_binary64_30348 erf-odd_binary64_30347 if-if-and-not_binary64_30346 if-if-and_binary64_30345 if-if-or-not_binary64_30344 if-if-or_binary64_30343 if-not_binary64_30342 if-same_binary64_30341 if-false_binary64_30340 if-true_binary64_30339 not-gte_binary64_30338 not-lte_binary64_30337 not-gt_binary64_30336 not-lt_binary64_30335 gte-same_binary64_30334 lte-same_binary64_30333 gt-same_binary64_30332 lt-same_binary64_30331 sinh---cosh_binary64_30278 sinh-+-cosh_binary64_30277 sinh-cosh_binary64_30276 tanh-def-c_binary64_30275 tanh-def-b_binary64_30274 tanh-def-a_binary64_30273 cosh-def_binary64_30272 sinh-def_binary64_30271 tan-neg_binary64_30218 cos-neg_binary64_30217 sin-neg_binary64_30216 tan-0_binary64_30215 cos-0_binary64_30214 sin-0_binary64_30213 hang-m-tan_binary64_30212 hang-p-tan_binary64_30211 hang-m0-tan_binary64_30210 hang-p0-tan_binary64_30209 hang-0m-tan_binary64_30208 hang-0p-tan_binary64_30207 tan-+PI/2_binary64_30206 tan-+PI_binary64_30205 tan-PI_binary64_30204 tan-PI/3_binary64_30203 tan-PI/4_binary64_30202 tan-PI/6_binary64_30201 cos-+PI/2_binary64_30200 cos-+PI_binary64_30199 cos-PI_binary64_30198 cos-PI/2_binary64_30197 cos-PI/3_binary64_30196 cos-PI/4_binary64_30195 cos-PI/6_binary64_30194 sin-+PI/2_binary64_30193 sin-+PI_binary64_30192 sin-PI_binary64_30191 sin-PI/2_binary64_30190 sin-PI/3_binary64_30189 sin-PI/4_binary64_30188 sin-PI/6_binary64_30187 sub-1-sin_binary64_30186 sub-1-cos_binary64_30185 -1-add-sin_binary64_30184 -1-add-cos_binary64_30183 1-sub-sin_binary64_30182 1-sub-cos_binary64_30181 cos-sin-sum_binary64_30180 log-E_binary64_30176 log-rec_binary64_30174 log-div_binary64_30173 pow-base-0_binary64_30170 unpow1/3_binary64_30153 unpow2_binary64_30151 unpow1/2_binary64_30150 unpow0_binary64_30145 unpow1_binary64_30144 unpow-1_binary64_30143 exp-lft-sqr_binary64_30141 exp-cbrt_binary64_30140 exp-sqrt_binary64_30139 rec-exp_binary64_30136 e-exp-1_binary64_30131 exp-0_binary64_30128 rem-exp-log_binary64_30126 cube-div_binary64_30115 rem-3cbrt-rft_binary64_30112 rem-cbrt-cube_binary64_30110 rem-cube-cbrt_binary64_30109 sqr-abs_binary64_30101 div0_binary64_30067 +-inverses_binary64_30065 lft-mult-inverse_binary64_30064 remove-double-div_binary64_30062 difference-of-sqr--1_binary64_30057 difference-of-sqr-1_binary64_30056 distribute-neg-frac_binary64_30050 distribute-lft-out--_binary64_30038 associate--r-_binary64_30025 associate--l-_binary64_30024
Counts
56 → 60
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
074560
1180539
2557533
31015533
41986533
54994533

prune65.0ms (1.2%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New58260
Fresh022
Picked011
Done000
Total58563
Error
0b
Counts
63 → 5
Compiler

Compiled 1053 to 588 computations (44.2% saved)

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(-.f64 (*.f64 3 (*.f64 x y)) z)
0.3b
(*.f64 3 (*.f64 x y))

rewrite39.0ms (0.7%)

Algorithm
rewrite-expression-head
Error
0b
Rules
pow1_binary64_30147 add-exp-log_binary64_30124 add-cbrt-cube_binary64_30122
add-log-exp_binary64_30125 add-cube-cbrt_binary64_30121 add-sqr-sqrt_binary64_30108 *-un-lft-identity_binary64_30086
pow-prod-down_binary64_30157 prod-exp_binary64_30135 cbrt-unprod_binary64_30119 associate-*l*_binary64_30027 cancel-sign-sub-inv_binary64_30052
associate-*r*_binary64_30026 *-commutative_binary64_30017 diff-log_binary64_30178 flip3--_binary64_30090 sub-neg_binary64_30079 flip--_binary64_30061
Counts
2 → 32
Calls

2 calls:

5.0ms
(-.f64 (*.f64 3 (*.f64 x y)) z)
5.0ms
(*.f64 3 (*.f64 x y))
Compiler

Compiled 436 to 243 computations (44.3% saved)

series264.0ms (4.8%)

Error
0b
Counts
2 → 24
Calls

2 calls:

169.0ms
(-.f64 (*.f64 3 (*.f64 x y)) z)
84.0ms
(*.f64 3 (*.f64 x y))
Compiler

Compiled 389 to 327 computations (15.9% saved)

simplify141.0ms (2.6%)

Algorithm
egg-herbie
Rules
552×associate-*l*_binary64_30027
518×unsub-neg_binary64_30080
407×associate-*r*_binary64_30026
401×unswap-sqr_binary64_30054
310×distribute-rgt-in_binary64_30036
271×distribute-lft-in_binary64_30035
220×cancel-sign-sub-inv_binary64_30052
186×distribute-neg-in_binary64_30047
174×neg-sub0_binary64_30081
167×neg-mul-1_binary64_30082
138×sqr-pow_binary64_30058
116×times-frac_binary64_30092
104×exp-prod_binary64_30138
75×*-commutative_binary64_30017
74×pow-sqr_binary64_30059
64×difference-of-squares_binary64_30055
57×distribute-rgt-out_binary64_30039
56×exp-sum_binary64_30132 distribute-rgt-neg-out_binary64_30046
52×mul0-rgt_binary64_30069 mul0-lft_binary64_30068 distribute-lft-neg-out_binary64_30045
50×distribute-lft-out_binary64_30037
48×sub-neg_binary64_30079
45×distribute-neg-out_binary64_30048
42×swap-sqr_binary64_30053
38×cube-prod_binary64_30114
34×associate-+r+_binary64_30018
25×*-rgt-identity_binary64_30076
24×associate-+l+_binary64_30019
23×*-lft-identity_binary64_30075
22×+-commutative_binary64_30016
20×log-prod_binary64_30172
18×exp-diff_binary64_30134
14×unpow3_binary64_30152 distribute-rgt-neg-in_binary64_30044
13×+-rgt-identity_binary64_30071
11×cube-unmult_binary64_30123 distribute-lft-neg-in_binary64_30043 associate-/l*_binary64_30031
div-sub_binary64_30091 associate-+r-_binary64_30020
cube-mult_binary64_30116 mul-1-neg_binary64_30078 sub0-neg_binary64_30073 associate-+l-_binary64_30021
exp-neg_binary64_30133 associate-/l/_binary64_30033
sqr-neg_binary64_30100 associate-*r/_binary64_30028
pow-plus_binary64_30149 prod-exp_binary64_30135 +-lft-identity_binary64_30070 distribute-frac-neg_binary64_30049
exp-lft-cube_binary64_30142 --rgt-identity_binary64_30072
div-exp_binary64_30137 associate-/r/_binary64_30032
pow-base-1_binary64_30146 rem-sqrt-square_binary64_30099 associate--r+_binary64_30022
1-exp_binary64_30130 exp-1-e_binary64_30129 cube-neg_binary64_30113 rem-3cbrt-lft_binary64_30111 rem-square-sqrt_binary64_30098 remove-double-neg_binary64_30074 *-inverses_binary64_30066 cancel-sign-sub_binary64_30051 count-2_binary64_30034 associate-/r*_binary64_30030 associate-*l/_binary64_30029
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_30349 erf-erfc_binary64_30348 erf-odd_binary64_30347 if-if-and-not_binary64_30346 if-if-and_binary64_30345 if-if-or-not_binary64_30344 if-if-or_binary64_30343 if-not_binary64_30342 if-same_binary64_30341 if-false_binary64_30340 if-true_binary64_30339 not-gte_binary64_30338 not-lte_binary64_30337 not-gt_binary64_30336 not-lt_binary64_30335 gte-same_binary64_30334 lte-same_binary64_30333 gt-same_binary64_30332 lt-same_binary64_30331 sinh---cosh_binary64_30278 sinh-+-cosh_binary64_30277 sinh-cosh_binary64_30276 tanh-def-c_binary64_30275 tanh-def-b_binary64_30274 tanh-def-a_binary64_30273 cosh-def_binary64_30272 sinh-def_binary64_30271 tan-neg_binary64_30218 cos-neg_binary64_30217 sin-neg_binary64_30216 tan-0_binary64_30215 cos-0_binary64_30214 sin-0_binary64_30213 hang-m-tan_binary64_30212 hang-p-tan_binary64_30211 hang-m0-tan_binary64_30210 hang-p0-tan_binary64_30209 hang-0m-tan_binary64_30208 hang-0p-tan_binary64_30207 tan-+PI/2_binary64_30206 tan-+PI_binary64_30205 tan-PI_binary64_30204 tan-PI/3_binary64_30203 tan-PI/4_binary64_30202 tan-PI/6_binary64_30201 cos-+PI/2_binary64_30200 cos-+PI_binary64_30199 cos-PI_binary64_30198 cos-PI/2_binary64_30197 cos-PI/3_binary64_30196 cos-PI/4_binary64_30195 cos-PI/6_binary64_30194 sin-+PI/2_binary64_30193 sin-+PI_binary64_30192 sin-PI_binary64_30191 sin-PI/2_binary64_30190 sin-PI/3_binary64_30189 sin-PI/4_binary64_30188 sin-PI/6_binary64_30187 sub-1-sin_binary64_30186 sub-1-cos_binary64_30185 -1-add-sin_binary64_30184 -1-add-cos_binary64_30183 1-sub-sin_binary64_30182 1-sub-cos_binary64_30181 cos-sin-sum_binary64_30180 log-E_binary64_30176 log-pow_binary64_30175 log-rec_binary64_30174 log-div_binary64_30173 pow-base-0_binary64_30170 unpow1/3_binary64_30153 unpow2_binary64_30151 unpow1/2_binary64_30150 exp-to-pow_binary64_30148 unpow0_binary64_30145 unpow1_binary64_30144 unpow-1_binary64_30143 exp-lft-sqr_binary64_30141 exp-cbrt_binary64_30140 exp-sqrt_binary64_30139 rec-exp_binary64_30136 e-exp-1_binary64_30131 exp-0_binary64_30128 rem-log-exp_binary64_30127 rem-exp-log_binary64_30126 cube-div_binary64_30115 rem-3cbrt-rft_binary64_30112 rem-cbrt-cube_binary64_30110 rem-cube-cbrt_binary64_30109 sqr-abs_binary64_30101 /-rgt-identity_binary64_30077 div0_binary64_30067 +-inverses_binary64_30065 lft-mult-inverse_binary64_30064 rgt-mult-inverse_binary64_30063 remove-double-div_binary64_30062 difference-of-sqr--1_binary64_30057 difference-of-sqr-1_binary64_30056 distribute-neg-frac_binary64_30050 distribute-rgt1-in_binary64_30042 distribute-lft1-in_binary64_30041 distribute-rgt-out--_binary64_30040 distribute-lft-out--_binary64_30038 associate--r-_binary64_30025 associate--l-_binary64_30024 associate--l+_binary64_30023
Counts
56 → 87
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
069558
1169537
2438531
31650531
43275531

prune81.0ms (1.5%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New86187
Fresh213
Picked011
Done011
Total88492
Error
0b
Counts
92 → 4
Compiler

Compiled 1259 to 752 computations (40.3% saved)

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(-.f64 (*.f64 x (*.f64 3 y)) z)
0.2b
(*.f64 x (*.f64 3 y))

rewrite38.0ms (0.7%)

Algorithm
rewrite-expression-head
Error
0b
Rules
pow1_binary64_30147 add-exp-log_binary64_30124 add-cbrt-cube_binary64_30122
add-log-exp_binary64_30125 add-cube-cbrt_binary64_30121 add-sqr-sqrt_binary64_30108 *-un-lft-identity_binary64_30086
pow-prod-down_binary64_30157 prod-exp_binary64_30135 cbrt-unprod_binary64_30119 associate-*l*_binary64_30027 cancel-sign-sub-inv_binary64_30052
associate-*r*_binary64_30026 *-commutative_binary64_30017 diff-log_binary64_30178 flip3--_binary64_30090 sub-neg_binary64_30079 flip--_binary64_30061
Counts
2 → 32
Calls

2 calls:

5.0ms
(-.f64 (*.f64 x (*.f64 3 y)) z)
5.0ms
(*.f64 x (*.f64 3 y))
Compiler

Compiled 436 to 279 computations (36% saved)

series274.0ms (5%)

Error
0b
Counts
2 → 24
Calls

2 calls:

174.0ms
(-.f64 (*.f64 x (*.f64 3 y)) z)
87.0ms
(*.f64 x (*.f64 3 y))
Compiler

Compiled 389 to 327 computations (15.9% saved)

simplify143.0ms (2.6%)

Algorithm
egg-herbie
Rules
629×associate-*l*_binary64_30027
515×unsub-neg_binary64_30080
430×associate-*r*_binary64_30026
403×unswap-sqr_binary64_30054
312×distribute-rgt-in_binary64_30036
275×distribute-lft-in_binary64_30035
222×cancel-sign-sub-inv_binary64_30052
175×neg-sub0_binary64_30081
168×neg-mul-1_binary64_30082
145×sqr-pow_binary64_30058
126×times-frac_binary64_30092
106×exp-prod_binary64_30138
79×pow-sqr_binary64_30059
72×difference-of-squares_binary64_30055
68×*-commutative_binary64_30017
57×distribute-rgt-out_binary64_30039
56×exp-sum_binary64_30132 distribute-rgt-neg-out_binary64_30046
55×mul0-rgt_binary64_30069 mul0-lft_binary64_30068
52×distribute-lft-neg-out_binary64_30045
49×sub-neg_binary64_30079
46×swap-sqr_binary64_30053
41×cube-prod_binary64_30114
33×associate-+r+_binary64_30018
26×*-rgt-identity_binary64_30076 distribute-lft-out_binary64_30037
25×*-lft-identity_binary64_30075
23×associate-+l+_binary64_30019
22×log-prod_binary64_30172 +-commutative_binary64_30016
18×exp-diff_binary64_30134
15×associate-/l*_binary64_30031
14×unpow3_binary64_30152 distribute-rgt-neg-in_binary64_30044
12×+-rgt-identity_binary64_30071
11×cube-unmult_binary64_30123 distribute-lft-neg-in_binary64_30043
div-sub_binary64_30091 associate-+r-_binary64_30020
cube-mult_binary64_30116 mul-1-neg_binary64_30078 sub0-neg_binary64_30073 associate-+l-_binary64_30021
exp-neg_binary64_30133 associate-/l/_binary64_30033
prod-exp_binary64_30135 sqr-neg_binary64_30100 associate-*r/_binary64_30028
pow-plus_binary64_30149 +-lft-identity_binary64_30070
exp-lft-cube_binary64_30142 --rgt-identity_binary64_30072
div-exp_binary64_30137 associate-/r/_binary64_30032
pow-base-1_binary64_30146 rem-sqrt-square_binary64_30099 distribute-neg-in_binary64_30047 associate--r+_binary64_30022
1-exp_binary64_30130 exp-1-e_binary64_30129 cube-neg_binary64_30113 rem-3cbrt-lft_binary64_30111 rem-square-sqrt_binary64_30098 remove-double-neg_binary64_30074 *-inverses_binary64_30066 count-2_binary64_30034 associate-/r*_binary64_30030 associate-*l/_binary64_30029
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_30349 erf-erfc_binary64_30348 erf-odd_binary64_30347 if-if-and-not_binary64_30346 if-if-and_binary64_30345 if-if-or-not_binary64_30344 if-if-or_binary64_30343 if-not_binary64_30342 if-same_binary64_30341 if-false_binary64_30340 if-true_binary64_30339 not-gte_binary64_30338 not-lte_binary64_30337 not-gt_binary64_30336 not-lt_binary64_30335 gte-same_binary64_30334 lte-same_binary64_30333 gt-same_binary64_30332 lt-same_binary64_30331 sinh---cosh_binary64_30278 sinh-+-cosh_binary64_30277 sinh-cosh_binary64_30276 tanh-def-c_binary64_30275 tanh-def-b_binary64_30274 tanh-def-a_binary64_30273 cosh-def_binary64_30272 sinh-def_binary64_30271 tan-neg_binary64_30218 cos-neg_binary64_30217 sin-neg_binary64_30216 tan-0_binary64_30215 cos-0_binary64_30214 sin-0_binary64_30213 hang-m-tan_binary64_30212 hang-p-tan_binary64_30211 hang-m0-tan_binary64_30210 hang-p0-tan_binary64_30209 hang-0m-tan_binary64_30208 hang-0p-tan_binary64_30207 tan-+PI/2_binary64_30206 tan-+PI_binary64_30205 tan-PI_binary64_30204 tan-PI/3_binary64_30203 tan-PI/4_binary64_30202 tan-PI/6_binary64_30201 cos-+PI/2_binary64_30200 cos-+PI_binary64_30199 cos-PI_binary64_30198 cos-PI/2_binary64_30197 cos-PI/3_binary64_30196 cos-PI/4_binary64_30195 cos-PI/6_binary64_30194 sin-+PI/2_binary64_30193 sin-+PI_binary64_30192 sin-PI_binary64_30191 sin-PI/2_binary64_30190 sin-PI/3_binary64_30189 sin-PI/4_binary64_30188 sin-PI/6_binary64_30187 sub-1-sin_binary64_30186 sub-1-cos_binary64_30185 -1-add-sin_binary64_30184 -1-add-cos_binary64_30183 1-sub-sin_binary64_30182 1-sub-cos_binary64_30181 cos-sin-sum_binary64_30180 log-E_binary64_30176 log-pow_binary64_30175 log-rec_binary64_30174 log-div_binary64_30173 pow-base-0_binary64_30170 unpow1/3_binary64_30153 unpow2_binary64_30151 unpow1/2_binary64_30150 exp-to-pow_binary64_30148 unpow0_binary64_30145 unpow1_binary64_30144 unpow-1_binary64_30143 exp-lft-sqr_binary64_30141 exp-cbrt_binary64_30140 exp-sqrt_binary64_30139 rec-exp_binary64_30136 e-exp-1_binary64_30131 exp-0_binary64_30128 rem-log-exp_binary64_30127 rem-exp-log_binary64_30126 cube-div_binary64_30115 rem-3cbrt-rft_binary64_30112 rem-cbrt-cube_binary64_30110 rem-cube-cbrt_binary64_30109 sqr-abs_binary64_30101 /-rgt-identity_binary64_30077 div0_binary64_30067 +-inverses_binary64_30065 lft-mult-inverse_binary64_30064 rgt-mult-inverse_binary64_30063 remove-double-div_binary64_30062 difference-of-sqr--1_binary64_30057 difference-of-sqr-1_binary64_30056 cancel-sign-sub_binary64_30051 distribute-neg-frac_binary64_30050 distribute-frac-neg_binary64_30049 distribute-neg-out_binary64_30048 distribute-rgt1-in_binary64_30042 distribute-lft1-in_binary64_30041 distribute-rgt-out--_binary64_30040 distribute-lft-out--_binary64_30038 associate--r-_binary64_30025 associate--l-_binary64_30024 associate--l+_binary64_30023
Counts
56 → 84
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
072558
1173537
2478531
31774531
43368531

prune71.0ms (1.3%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New84084
Fresh011
Picked011
Done022
Total84488
Error
0b
Counts
88 → 4
Compiler

Compiled 1155 to 656 computations (43.2% saved)

localize8.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.0b
(-.f64 (*.f64 (sqrt.f64 3) (*.f64 y (*.f64 x (sqrt.f64 3)))) z)
0.2b
(*.f64 y (*.f64 x (sqrt.f64 3)))
0.3b
(*.f64 (sqrt.f64 3) (*.f64 y (*.f64 x (sqrt.f64 3))))
0.4b
(*.f64 x (sqrt.f64 3))

rewrite133.0ms (2.4%)

Algorithm
rewrite-expression-head
Error
0b
Rules
20×pow1_binary64_30147 add-exp-log_binary64_30124 add-cbrt-cube_binary64_30122
15×add-sqr-sqrt_binary64_30108
12×associate-*l*_binary64_30027
11×add-cube-cbrt_binary64_30121 *-un-lft-identity_binary64_30086
10×pow-prod-down_binary64_30157 prod-exp_binary64_30135 cbrt-unprod_binary64_30119
associate-*r*_binary64_30026
sqrt-prod_binary64_30102
add-log-exp_binary64_30125
*-commutative_binary64_30017 cancel-sign-sub-inv_binary64_30052
unswap-sqr_binary64_30054
diff-log_binary64_30178 flip3--_binary64_30090 sub-neg_binary64_30079 flip--_binary64_30061
Counts
4 → 78
Calls

4 calls:

10.0ms
(-.f64 (*.f64 (sqrt.f64 3) (*.f64 y (*.f64 x (sqrt.f64 3)))) z)
10.0ms
(*.f64 (sqrt.f64 3) (*.f64 y (*.f64 x (sqrt.f64 3))))
6.0ms
(*.f64 y (*.f64 x (sqrt.f64 3)))
5.0ms
(*.f64 x (sqrt.f64 3))
Compiler

Compiled 1414 to 1066 computations (24.6% saved)

series764.0ms (13.9%)

Error
0b
Counts
4 → 33
Calls

4 calls:

354.0ms
(-.f64 (*.f64 (sqrt.f64 3) (*.f64 y (*.f64 x (sqrt.f64 3)))) z)
210.0ms
(*.f64 (sqrt.f64 3) (*.f64 y (*.f64 x (sqrt.f64 3))))
129.0ms
(*.f64 y (*.f64 x (sqrt.f64 3)))
50.0ms
(*.f64 x (sqrt.f64 3))
Compiler

Compiled 851 to 781 computations (8.2% saved)

simplify322.0ms (5.8%)

Algorithm
egg-herbie
Rules
315×*-commutative_binary64_30017
249×times-frac_binary64_30092
198×exp-prod_binary64_30138
195×associate-*r*_binary64_30026
184×associate-*l*_binary64_30027
170×unsub-neg_binary64_30080
148×cube-prod_binary64_30114
141×distribute-rgt-in_binary64_30036
140×associate-/l*_binary64_30031
133×log-prod_binary64_30172
132×unswap-sqr_binary64_30054
126×cancel-sign-sub-inv_binary64_30052
125×neg-mul-1_binary64_30082
122×neg-sub0_binary64_30081
119×distribute-lft-in_binary64_30035
105×sqr-pow_binary64_30058 associate-/r*_binary64_30030
93×cube-div_binary64_30115
91×associate-/r/_binary64_30032
90×log-div_binary64_30173
74×exp-sum_binary64_30132
73×associate-/l/_binary64_30033
65×swap-sqr_binary64_30053
57×exp-sqrt_binary64_30139
45×associate-+r+_binary64_30018
42×unpow3_binary64_30152
41×exp-lft-sqr_binary64_30141
40×div-sub_binary64_30091 distribute-rgt-out_binary64_30039
37×associate-+l+_binary64_30019
34×exp-diff_binary64_30134 cube-mult_binary64_30116
33×associate-*r/_binary64_30028
29×associate-*l/_binary64_30029
26×associate-+l-_binary64_30021 +-commutative_binary64_30016
25×associate-+r-_binary64_30020
24×sub-neg_binary64_30079 pow-sqr_binary64_30059
22×distribute-lft-neg-out_binary64_30045
21×distribute-rgt-neg-in_binary64_30044
20×distribute-rgt-neg-out_binary64_30046
19×*-rgt-identity_binary64_30076
18×distribute-lft-neg-in_binary64_30043
16×*-lft-identity_binary64_30075 difference-of-squares_binary64_30055
11×associate--l-_binary64_30024
10×rem-sqrt-square_binary64_30099
pow-plus_binary64_30149 exp-to-pow_binary64_30148 cube-unmult_binary64_30123
exp-neg_binary64_30133 mul0-rgt_binary64_30069 mul0-lft_binary64_30068
log-pow_binary64_30175
exp-lft-cube_binary64_30142 sqr-neg_binary64_30100 distribute-rgt-out--_binary64_30040 distribute-lft-out_binary64_30037
log-rec_binary64_30174
distribute-neg-frac_binary64_30050
prod-exp_binary64_30135 rem-square-sqrt_binary64_30098 sub0-neg_binary64_30073 +-rgt-identity_binary64_30071 count-2_binary64_30034
div-exp_binary64_30137 distribute-neg-in_binary64_30047 distribute-rgt1-in_binary64_30042 associate--r+_binary64_30022
unpow2_binary64_30151 pow-base-1_binary64_30146 unpow1_binary64_30144 1-exp_binary64_30130 exp-1-e_binary64_30129 rem-log-exp_binary64_30127 rem-exp-log_binary64_30126 cube-neg_binary64_30113 rem-3cbrt-lft_binary64_30111 /-rgt-identity_binary64_30077 *-inverses_binary64_30066
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_30349 erf-erfc_binary64_30348 erf-odd_binary64_30347 if-if-and-not_binary64_30346 if-if-and_binary64_30345 if-if-or-not_binary64_30344 if-if-or_binary64_30343 if-not_binary64_30342 if-same_binary64_30341 if-false_binary64_30340 if-true_binary64_30339 not-gte_binary64_30338 not-lte_binary64_30337 not-gt_binary64_30336 not-lt_binary64_30335 gte-same_binary64_30334 lte-same_binary64_30333 gt-same_binary64_30332 lt-same_binary64_30331 sinh---cosh_binary64_30278 sinh-+-cosh_binary64_30277 sinh-cosh_binary64_30276 tanh-def-c_binary64_30275 tanh-def-b_binary64_30274 tanh-def-a_binary64_30273 cosh-def_binary64_30272 sinh-def_binary64_30271 tan-neg_binary64_30218 cos-neg_binary64_30217 sin-neg_binary64_30216 tan-0_binary64_30215 cos-0_binary64_30214 sin-0_binary64_30213 hang-m-tan_binary64_30212 hang-p-tan_binary64_30211 hang-m0-tan_binary64_30210 hang-p0-tan_binary64_30209 hang-0m-tan_binary64_30208 hang-0p-tan_binary64_30207 tan-+PI/2_binary64_30206 tan-+PI_binary64_30205 tan-PI_binary64_30204 tan-PI/3_binary64_30203 tan-PI/4_binary64_30202 tan-PI/6_binary64_30201 cos-+PI/2_binary64_30200 cos-+PI_binary64_30199 cos-PI_binary64_30198 cos-PI/2_binary64_30197 cos-PI/3_binary64_30196 cos-PI/4_binary64_30195 cos-PI/6_binary64_30194 sin-+PI/2_binary64_30193 sin-+PI_binary64_30192 sin-PI_binary64_30191 sin-PI/2_binary64_30190 sin-PI/3_binary64_30189 sin-PI/4_binary64_30188 sin-PI/6_binary64_30187 sub-1-sin_binary64_30186 sub-1-cos_binary64_30185 -1-add-sin_binary64_30184 -1-add-cos_binary64_30183 1-sub-sin_binary64_30182 1-sub-cos_binary64_30181 cos-sin-sum_binary64_30180 log-E_binary64_30176 pow-base-0_binary64_30170 unpow1/3_binary64_30153 unpow1/2_binary64_30150 unpow0_binary64_30145 unpow-1_binary64_30143 exp-cbrt_binary64_30140 rec-exp_binary64_30136 e-exp-1_binary64_30131 exp-0_binary64_30128 rem-3cbrt-rft_binary64_30112 rem-cbrt-cube_binary64_30110 rem-cube-cbrt_binary64_30109 sqr-abs_binary64_30101 mul-1-neg_binary64_30078 remove-double-neg_binary64_30074 --rgt-identity_binary64_30072 +-lft-identity_binary64_30070 div0_binary64_30067 +-inverses_binary64_30065 lft-mult-inverse_binary64_30064 rgt-mult-inverse_binary64_30063 remove-double-div_binary64_30062 difference-of-sqr--1_binary64_30057 difference-of-sqr-1_binary64_30056 cancel-sign-sub_binary64_30051 distribute-frac-neg_binary64_30049 distribute-neg-out_binary64_30048 distribute-lft1-in_binary64_30041 distribute-lft-out--_binary64_30038 associate--r-_binary64_30025 associate--l+_binary64_30023
Counts
111 → 326
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01161343
12741078
28941072
316061072
438381072

prune398.0ms (7.2%)

Pruning

4 alts after pruning (0 fresh and 4 done)

PrunedKeptTotal
New3260326
Fresh000
Picked011
Done033
Total3264330
Error
0b
Counts
330 → 4
Compiler

Compiled 5723 to 3820 computations (33.3% saved)

regimes185.0ms (3.4%)

Accuracy

Total 0.1b remaining (94.8%)

Threshold costs 0.1b (94.8%)

Compiler

Compiled 1152 to 1104 computations (4.2% saved)

bsearch0.0ms (0%)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64_30017
sub-neg_binary64_30079 +-commutative_binary64_30016
neg-mul-1_binary64_30082 neg-sub0_binary64_30081
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_30346 if-if-and_binary64_30345 if-if-or-not_binary64_30344 if-if-or_binary64_30343 if-not_binary64_30342 if-same_binary64_30341 if-false_binary64_30340 if-true_binary64_30339 tan-0_binary64_30215 cos-0_binary64_30214 sin-0_binary64_30213 unpow1_binary64_30144 e-exp-1_binary64_30131 1-exp_binary64_30130 exp-1-e_binary64_30129 exp-0_binary64_30128 sqr-abs_binary64_30101 sqr-neg_binary64_30100 unsub-neg_binary64_30080 mul-1-neg_binary64_30078 /-rgt-identity_binary64_30077 *-rgt-identity_binary64_30076 *-lft-identity_binary64_30075 remove-double-neg_binary64_30074 sub0-neg_binary64_30073 --rgt-identity_binary64_30072 +-rgt-identity_binary64_30071 +-lft-identity_binary64_30070 cancel-sign-sub-inv_binary64_30052 cancel-sign-sub_binary64_30051 distribute-neg-frac_binary64_30050 distribute-frac-neg_binary64_30049 distribute-neg-out_binary64_30048 distribute-neg-in_binary64_30047 distribute-rgt-neg-out_binary64_30046 distribute-lft-neg-out_binary64_30045 distribute-rgt-neg-in_binary64_30044 distribute-lft-neg-in_binary64_30043
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0810
11210
21710
31910
42010
Proof
(- f64 (* f64 (* f64 h0 3) h1) h2)

end0.0ms (0%)

sample726.0ms (13.2%)

Algorithm
intervals
Results
192.0ms8000×body128valid
13.0ms311×body128invalid
Compiler

Compiled 208 to 200 computations (3.8% saved)

Profiling

Loading profile data...