Details

Time bar (total: 2.7s)

analyze496.0ms (18.4%)

Algorithm
search
egg-herbie
Rules
740×unsub-neg_binary64_3141
616×sub-neg_binary64_3140 distribute-rgt-out--_binary64_3101
615×*-commutative_binary64_3078
534×distribute-rgt-in_binary64_3097
489×neg-sub0_binary64_3142
470×distribute-neg-out_binary64_3109
426×distribute-lft-out--_binary64_3099
420×distribute-lft-out_binary64_3098
385×neg-mul-1_binary64_3143
348×associate--l-_binary64_3085
314×distribute-lft-in_binary64_3096
310×associate--l+_binary64_3084
293×+-commutative_binary64_3077
292×distribute-rgt-out_binary64_3100
245×cancel-sign-sub-inv_binary64_3113
194×distribute-rgt-neg-out_binary64_3107
181×associate--r+_binary64_3083
173×associate-+r-_binary64_3081
172×distribute-lft-neg-in_binary64_3104
164×distribute-lft-neg-out_binary64_3106
163×distribute-neg-in_binary64_3108
138×associate-+l-_binary64_3082
125×distribute-rgt-neg-in_binary64_3105
70×associate--r-_binary64_3086
58×associate-*l*_binary64_3088
42×associate-*r*_binary64_3087
30×cancel-sign-sub_binary64_3112
25×associate-+r+_binary64_3079
21×*-rgt-identity_binary64_3137
20×mul0-lft_binary64_3129
19×distribute-rgt1-in_binary64_3103 associate-+l+_binary64_3080
16×mul0-rgt_binary64_3130
15×+-lft-identity_binary64_3131
11×sub0-neg_binary64_3134
10×distribute-lft1-in_binary64_3102
*-lft-identity_binary64_3136
+-inverses_binary64_3126
swap-sqr_binary64_3114
remove-double-neg_binary64_3135
sqr-neg_binary64_3161 +-rgt-identity_binary64_3132
difference-of-squares_binary64_3116
1-exp_binary64_3191
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_3410 erf-erfc_binary64_3409 erf-odd_binary64_3408 if-if-and-not_binary64_3407 if-if-and_binary64_3406 if-if-or-not_binary64_3405 if-if-or_binary64_3404 if-not_binary64_3403 if-same_binary64_3402 if-false_binary64_3401 if-true_binary64_3400 not-gte_binary64_3399 not-lte_binary64_3398 not-gt_binary64_3397 not-lt_binary64_3396 gte-same_binary64_3395 lte-same_binary64_3394 gt-same_binary64_3393 lt-same_binary64_3392 sinh---cosh_binary64_3339 sinh-+-cosh_binary64_3338 sinh-cosh_binary64_3337 tanh-def-c_binary64_3336 tanh-def-b_binary64_3335 tanh-def-a_binary64_3334 cosh-def_binary64_3333 sinh-def_binary64_3332 tan-neg_binary64_3279 cos-neg_binary64_3278 sin-neg_binary64_3277 tan-0_binary64_3276 cos-0_binary64_3275 sin-0_binary64_3274 hang-m-tan_binary64_3273 hang-p-tan_binary64_3272 hang-m0-tan_binary64_3271 hang-p0-tan_binary64_3270 hang-0m-tan_binary64_3269 hang-0p-tan_binary64_3268 tan-+PI/2_binary64_3267 tan-+PI_binary64_3266 tan-PI_binary64_3265 tan-PI/3_binary64_3264 tan-PI/4_binary64_3263 tan-PI/6_binary64_3262 cos-+PI/2_binary64_3261 cos-+PI_binary64_3260 cos-PI_binary64_3259 cos-PI/2_binary64_3258 cos-PI/3_binary64_3257 cos-PI/4_binary64_3256 cos-PI/6_binary64_3255 sin-+PI/2_binary64_3254 sin-+PI_binary64_3253 sin-PI_binary64_3252 sin-PI/2_binary64_3251 sin-PI/3_binary64_3250 sin-PI/4_binary64_3249 sin-PI/6_binary64_3248 sub-1-sin_binary64_3247 sub-1-cos_binary64_3246 -1-add-sin_binary64_3245 -1-add-cos_binary64_3244 1-sub-sin_binary64_3243 1-sub-cos_binary64_3242 cos-sin-sum_binary64_3241 log-E_binary64_3237 log-pow_binary64_3236 log-rec_binary64_3235 log-div_binary64_3234 log-prod_binary64_3233 pow-base-0_binary64_3231 unpow1/3_binary64_3214 unpow3_binary64_3213 unpow2_binary64_3212 unpow1/2_binary64_3211 pow-plus_binary64_3210 exp-to-pow_binary64_3209 pow-base-1_binary64_3207 unpow0_binary64_3206 unpow1_binary64_3205 unpow-1_binary64_3204 exp-lft-cube_binary64_3203 exp-lft-sqr_binary64_3202 exp-cbrt_binary64_3201 exp-sqrt_binary64_3200 exp-prod_binary64_3199 div-exp_binary64_3198 rec-exp_binary64_3197 prod-exp_binary64_3196 exp-diff_binary64_3195 exp-neg_binary64_3194 exp-sum_binary64_3193 e-exp-1_binary64_3192 exp-1-e_binary64_3190 exp-0_binary64_3189 rem-log-exp_binary64_3188 rem-exp-log_binary64_3187 cube-unmult_binary64_3184 cube-mult_binary64_3177 cube-div_binary64_3176 cube-prod_binary64_3175 cube-neg_binary64_3174 rem-3cbrt-rft_binary64_3173 rem-3cbrt-lft_binary64_3172 rem-cbrt-cube_binary64_3171 rem-cube-cbrt_binary64_3170 sqr-abs_binary64_3162 rem-sqrt-square_binary64_3160 rem-square-sqrt_binary64_3159 times-frac_binary64_3153 div-sub_binary64_3152 mul-1-neg_binary64_3139 /-rgt-identity_binary64_3138 --rgt-identity_binary64_3133 div0_binary64_3128 *-inverses_binary64_3127 lft-mult-inverse_binary64_3125 rgt-mult-inverse_binary64_3124 remove-double-div_binary64_3123 pow-sqr_binary64_3120 sqr-pow_binary64_3119 difference-of-sqr--1_binary64_3118 difference-of-sqr-1_binary64_3117 unswap-sqr_binary64_3115 distribute-neg-frac_binary64_3111 distribute-frac-neg_binary64_3110 count-2_binary64_3095 associate-/l/_binary64_3094 associate-/r/_binary64_3093 associate-/l*_binary64_3092 associate-/r*_binary64_3091 associate-*l/_binary64_3090 associate-*r/_binary64_3089
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0720
12320
23920
38720
419620
548320
669420
779720
8158120
9152320
10163620
11175020
12183020
13183020
14321120
15325920
16374320
17373920
18373920
19330320
20344720
21354720
22354720
23479520
24458720
25487220
022
122
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
25%74.9%0.1%5
25%62.4%12.6%6
25%50%25.1%7
31.2%37.5%31.3%8
39%24.2%36.8%9
42.9%18.3%38.7%10
47.2%11.9%40.9%11
49.4%9.1%41.6%12
51.6%5.9%42.5%13
52.7%4.5%42.8%14
Compiler

Compiled 8 to 6 computations (25% saved)

sample17.0ms (0.6%)

Algorithm
intervals
Results
8.0ms256×body128valid
0.0msbody128invalid
Compiler

Compiled 15 to 13 computations (13.3% saved)

simplify360.0ms (13.3%)

Algorithm
egg-herbie
Rules
3990×distribute-rgt-in_binary64_3097
2232×associate--r-_binary64_3086
1285×sub-neg_binary64_3140
783×unsub-neg_binary64_3141
740×*-commutative_binary64_3078
465×distribute-neg-out_binary64_3109
451×distribute-rgt-out--_binary64_3101
401×distribute-rgt-out_binary64_3100
399×+-commutative_binary64_3077
315×neg-sub0_binary64_3142
289×distribute-rgt-neg-in_binary64_3105
272×neg-mul-1_binary64_3143
271×distribute-lft-neg-in_binary64_3104
221×cancel-sign-sub-inv_binary64_3113
203×distribute-lft-out_binary64_3098
172×distribute-neg-in_binary64_3108
162×distribute-lft-neg-out_binary64_3106
144×distribute-lft-out--_binary64_3099
135×associate--r+_binary64_3083
119×associate-+r-_binary64_3081
116×associate--l+_binary64_3084
108×associate-+l+_binary64_3080
86×associate--l-_binary64_3085
83×associate-+l-_binary64_3082
79×distribute-lft-in_binary64_3096
76×distribute-rgt-neg-out_binary64_3107
75×associate-+r+_binary64_3079
65×distribute-rgt1-in_binary64_3103
44×associate-*r*_binary64_3087
40×sub0-neg_binary64_3134
33×associate-*l*_binary64_3088
32×+-inverses_binary64_3126
30×remove-double-neg_binary64_3135
20×*-rgt-identity_binary64_3137
15×difference-of-squares_binary64_3116
11×*-lft-identity_binary64_3136
mul0-lft_binary64_3129 distribute-lft1-in_binary64_3102
+-lft-identity_binary64_3131 mul0-rgt_binary64_3130
swap-sqr_binary64_3114 cancel-sign-sub_binary64_3112
sqr-neg_binary64_3161
mul-1-neg_binary64_3139 --rgt-identity_binary64_3133 +-rgt-identity_binary64_3132
1-exp_binary64_3191 count-2_binary64_3095
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_3410 erf-erfc_binary64_3409 erf-odd_binary64_3408 if-if-and-not_binary64_3407 if-if-and_binary64_3406 if-if-or-not_binary64_3405 if-if-or_binary64_3404 if-not_binary64_3403 if-same_binary64_3402 if-false_binary64_3401 if-true_binary64_3400 not-gte_binary64_3399 not-lte_binary64_3398 not-gt_binary64_3397 not-lt_binary64_3396 gte-same_binary64_3395 lte-same_binary64_3394 gt-same_binary64_3393 lt-same_binary64_3392 sinh---cosh_binary64_3339 sinh-+-cosh_binary64_3338 sinh-cosh_binary64_3337 tanh-def-c_binary64_3336 tanh-def-b_binary64_3335 tanh-def-a_binary64_3334 cosh-def_binary64_3333 sinh-def_binary64_3332 tan-neg_binary64_3279 cos-neg_binary64_3278 sin-neg_binary64_3277 tan-0_binary64_3276 cos-0_binary64_3275 sin-0_binary64_3274 hang-m-tan_binary64_3273 hang-p-tan_binary64_3272 hang-m0-tan_binary64_3271 hang-p0-tan_binary64_3270 hang-0m-tan_binary64_3269 hang-0p-tan_binary64_3268 tan-+PI/2_binary64_3267 tan-+PI_binary64_3266 tan-PI_binary64_3265 tan-PI/3_binary64_3264 tan-PI/4_binary64_3263 tan-PI/6_binary64_3262 cos-+PI/2_binary64_3261 cos-+PI_binary64_3260 cos-PI_binary64_3259 cos-PI/2_binary64_3258 cos-PI/3_binary64_3257 cos-PI/4_binary64_3256 cos-PI/6_binary64_3255 sin-+PI/2_binary64_3254 sin-+PI_binary64_3253 sin-PI_binary64_3252 sin-PI/2_binary64_3251 sin-PI/3_binary64_3250 sin-PI/4_binary64_3249 sin-PI/6_binary64_3248 sub-1-sin_binary64_3247 sub-1-cos_binary64_3246 -1-add-sin_binary64_3245 -1-add-cos_binary64_3244 1-sub-sin_binary64_3243 1-sub-cos_binary64_3242 cos-sin-sum_binary64_3241 log-E_binary64_3237 log-pow_binary64_3236 log-rec_binary64_3235 log-div_binary64_3234 log-prod_binary64_3233 pow-base-0_binary64_3231 unpow1/3_binary64_3214 unpow3_binary64_3213 unpow2_binary64_3212 unpow1/2_binary64_3211 pow-plus_binary64_3210 exp-to-pow_binary64_3209 pow-base-1_binary64_3207 unpow0_binary64_3206 unpow1_binary64_3205 unpow-1_binary64_3204 exp-lft-cube_binary64_3203 exp-lft-sqr_binary64_3202 exp-cbrt_binary64_3201 exp-sqrt_binary64_3200 exp-prod_binary64_3199 div-exp_binary64_3198 rec-exp_binary64_3197 prod-exp_binary64_3196 exp-diff_binary64_3195 exp-neg_binary64_3194 exp-sum_binary64_3193 e-exp-1_binary64_3192 exp-1-e_binary64_3190 exp-0_binary64_3189 rem-log-exp_binary64_3188 rem-exp-log_binary64_3187 cube-unmult_binary64_3184 cube-mult_binary64_3177 cube-div_binary64_3176 cube-prod_binary64_3175 cube-neg_binary64_3174 rem-3cbrt-rft_binary64_3173 rem-3cbrt-lft_binary64_3172 rem-cbrt-cube_binary64_3171 rem-cube-cbrt_binary64_3170 sqr-abs_binary64_3162 rem-sqrt-square_binary64_3160 rem-square-sqrt_binary64_3159 times-frac_binary64_3153 div-sub_binary64_3152 /-rgt-identity_binary64_3138 div0_binary64_3128 *-inverses_binary64_3127 lft-mult-inverse_binary64_3125 rgt-mult-inverse_binary64_3124 remove-double-div_binary64_3123 pow-sqr_binary64_3120 sqr-pow_binary64_3119 difference-of-sqr--1_binary64_3118 difference-of-sqr-1_binary64_3117 unswap-sqr_binary64_3115 distribute-neg-frac_binary64_3111 distribute-frac-neg_binary64_3110 associate-/l/_binary64_3094 associate-/r/_binary64_3093 associate-/l*_binary64_3092 associate-/r*_binary64_3091 associate-*l/_binary64_3090 associate-*r/_binary64_3089
Counts
1 → 0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0610
11410
22410
34910
49910
522510
635010
772810
8111110
9191510
10216410
11247110
12270110
13281510
14281510
15377410
16361410
17393410
18393410
19385410
20401410
21409410
22409410
23409410
24485910
25487610
261052510

prune1.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 7 to 5 computations (28.6% saved)

localize4.0ms (0.2%)

Local error

Found 1 expressions with local error:

0.0b
(-.f64 (*.f64 a a) (*.f64 b b))

rewrite15.0ms (0.6%)

Algorithm
rewrite-expression-head
Error
0b
Rules
add-log-exp_binary64_3186
diff-log_binary64_3239 pow1_binary64_3208 add-exp-log_binary64_3185 add-cbrt-cube_binary64_3183 add-cube-cbrt_binary64_3182 add-sqr-sqrt_binary64_3169 flip3--_binary64_3151 *-un-lft-identity_binary64_3147 sub-neg_binary64_3140 flip--_binary64_3122 difference-of-squares_binary64_3116 cancel-sign-sub-inv_binary64_3113
Counts
1 → 13
Calls

1 calls:

4.0ms
(-.f64 (*.f64 a a) (*.f64 b b))
Compiler

Compiled 194 to 47 computations (75.8% saved)

series133.0ms (4.9%)

Error
0.0b
Counts
1 → 12
Calls

1 calls:

125.0ms
(-.f64 (*.f64 a a) (*.f64 b b))
Compiler

Compiled 174 to 164 computations (5.7% saved)

simplify50.0ms (1.8%)

Algorithm
egg-herbie
Rules
792×distribute-rgt-in_binary64_3097
734×distribute-lft-in_binary64_3096
713×unswap-sqr_binary64_3115
422×unsub-neg_binary64_3141
253×*-commutative_binary64_3078
115×associate-*l*_binary64_3088
105×associate-*r*_binary64_3087
104×sqr-pow_binary64_3119 difference-of-squares_binary64_3116
103×exp-sum_binary64_3193
101×neg-sub0_binary64_3142
97×neg-mul-1_binary64_3143
90×cancel-sign-sub-inv_binary64_3113
86×exp-prod_binary64_3199
63×sub-neg_binary64_3140
58×associate-+r+_binary64_3079
57×distribute-lft-neg-out_binary64_3106
53×distribute-rgt-neg-out_binary64_3107
49×mul0-rgt_binary64_3130 mul0-lft_binary64_3129
47×associate-+l+_binary64_3080
41×distribute-rgt-neg-in_binary64_3105 distribute-lft-neg-in_binary64_3104
39×times-frac_binary64_3153
31×distribute-rgt-out_binary64_3100
29×+-commutative_binary64_3077
28×pow-sqr_binary64_3120
23×cube-prod_binary64_3175
21×exp-diff_binary64_3195
18×pow-plus_binary64_3210 distribute-lft-out_binary64_3098
16×cube-unmult_binary64_3184
15×mul-1-neg_binary64_3139
12×unpow3_binary64_3213
10×sub0-neg_binary64_3134 associate-/l*_binary64_3092 associate-+r-_binary64_3081
div-sub_binary64_3152 swap-sqr_binary64_3114
+-rgt-identity_binary64_3132 associate-/r*_binary64_3091 associate-+l-_binary64_3082
cube-mult_binary64_3177 sqr-neg_binary64_3161 associate-*r/_binary64_3089
log-prod_binary64_3233
exp-neg_binary64_3194 associate-/l/_binary64_3094 associate--r+_binary64_3083
+-lft-identity_binary64_3131 associate-/r/_binary64_3093
unpow2_binary64_3212 unpow1/2_binary64_3211 unpow1_binary64_3205 cube-neg_binary64_3174 rem-sqrt-square_binary64_3160 --rgt-identity_binary64_3133 distribute-neg-in_binary64_3108
div-exp_binary64_3198 1-exp_binary64_3191 *-rgt-identity_binary64_3137 remove-double-neg_binary64_3135 associate-*l/_binary64_3090
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_3410 erf-erfc_binary64_3409 erf-odd_binary64_3408 if-if-and-not_binary64_3407 if-if-and_binary64_3406 if-if-or-not_binary64_3405 if-if-or_binary64_3404 if-not_binary64_3403 if-same_binary64_3402 if-false_binary64_3401 if-true_binary64_3400 not-gte_binary64_3399 not-lte_binary64_3398 not-gt_binary64_3397 not-lt_binary64_3396 gte-same_binary64_3395 lte-same_binary64_3394 gt-same_binary64_3393 lt-same_binary64_3392 sinh---cosh_binary64_3339 sinh-+-cosh_binary64_3338 sinh-cosh_binary64_3337 tanh-def-c_binary64_3336 tanh-def-b_binary64_3335 tanh-def-a_binary64_3334 cosh-def_binary64_3333 sinh-def_binary64_3332 tan-neg_binary64_3279 cos-neg_binary64_3278 sin-neg_binary64_3277 tan-0_binary64_3276 cos-0_binary64_3275 sin-0_binary64_3274 hang-m-tan_binary64_3273 hang-p-tan_binary64_3272 hang-m0-tan_binary64_3271 hang-p0-tan_binary64_3270 hang-0m-tan_binary64_3269 hang-0p-tan_binary64_3268 tan-+PI/2_binary64_3267 tan-+PI_binary64_3266 tan-PI_binary64_3265 tan-PI/3_binary64_3264 tan-PI/4_binary64_3263 tan-PI/6_binary64_3262 cos-+PI/2_binary64_3261 cos-+PI_binary64_3260 cos-PI_binary64_3259 cos-PI/2_binary64_3258 cos-PI/3_binary64_3257 cos-PI/4_binary64_3256 cos-PI/6_binary64_3255 sin-+PI/2_binary64_3254 sin-+PI_binary64_3253 sin-PI_binary64_3252 sin-PI/2_binary64_3251 sin-PI/3_binary64_3250 sin-PI/4_binary64_3249 sin-PI/6_binary64_3248 sub-1-sin_binary64_3247 sub-1-cos_binary64_3246 -1-add-sin_binary64_3245 -1-add-cos_binary64_3244 1-sub-sin_binary64_3243 1-sub-cos_binary64_3242 cos-sin-sum_binary64_3241 log-E_binary64_3237 log-pow_binary64_3236 log-rec_binary64_3235 log-div_binary64_3234 pow-base-0_binary64_3231 unpow1/3_binary64_3214 exp-to-pow_binary64_3209 pow-base-1_binary64_3207 unpow0_binary64_3206 unpow-1_binary64_3204 exp-lft-cube_binary64_3203 exp-lft-sqr_binary64_3202 exp-cbrt_binary64_3201 exp-sqrt_binary64_3200 rec-exp_binary64_3197 prod-exp_binary64_3196 e-exp-1_binary64_3192 exp-1-e_binary64_3190 exp-0_binary64_3189 rem-log-exp_binary64_3188 rem-exp-log_binary64_3187 cube-div_binary64_3176 rem-3cbrt-rft_binary64_3173 rem-3cbrt-lft_binary64_3172 rem-cbrt-cube_binary64_3171 rem-cube-cbrt_binary64_3170 sqr-abs_binary64_3162 rem-square-sqrt_binary64_3159 /-rgt-identity_binary64_3138 *-lft-identity_binary64_3136 div0_binary64_3128 *-inverses_binary64_3127 +-inverses_binary64_3126 lft-mult-inverse_binary64_3125 rgt-mult-inverse_binary64_3124 remove-double-div_binary64_3123 difference-of-sqr--1_binary64_3118 difference-of-sqr-1_binary64_3117 cancel-sign-sub_binary64_3112 distribute-neg-frac_binary64_3111 distribute-frac-neg_binary64_3110 distribute-neg-out_binary64_3109 distribute-rgt1-in_binary64_3103 distribute-lft1-in_binary64_3102 distribute-rgt-out--_binary64_3101 distribute-lft-out--_binary64_3099 count-2_binary64_3095 associate--r-_binary64_3086 associate--l-_binary64_3085 associate--l+_binary64_3084
Counts
25 → 18
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
038318
1100273
2264273
3916273
43323273
54867273

prune12.0ms (0.4%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New17118
Fresh000
Picked101
Done000
Total18119
Error
0.0b
Counts
19 → 1
Compiler

Compiled 142 to 40 computations (71.8% saved)

localize4.0ms (0.2%)

Local error

Found 1 expressions with local error:

0.0b
(*.f64 (+.f64 b a) (-.f64 a b))

rewrite44.0ms (1.6%)

Algorithm
rewrite-expression-head
Error
0b
Rules
add-sqr-sqrt_binary64_3169 *-un-lft-identity_binary64_3147
cancel-sign-sub-inv_binary64_3113
add-cube-cbrt_binary64_3182 associate-*r*_binary64_3087
frac-times_binary64_3157 distribute-rgt-in_binary64_3097 distribute-lft-in_binary64_3096 associate-*l*_binary64_3088
pow1_binary64_3208 add-exp-log_binary64_3185 add-cbrt-cube_binary64_3183 flip3--_binary64_3151 flip3-+_binary64_3150 flip--_binary64_3122 flip-+_binary64_3121
sub-neg_binary64_3140 associate-*l/_binary64_3090 associate-*r/_binary64_3089
pow-prod-down_binary64_3218 prod-exp_binary64_3196 add-log-exp_binary64_3186 cbrt-unprod_binary64_3180 unswap-sqr_binary64_3115 distribute-lft-out_binary64_3098 difference-of-squares_binary64_3116 distribute-lft-out--_binary64_3099 *-commutative_binary64_3078
Counts
1 → 37
Calls

1 calls:

10.0ms
(*.f64 (+.f64 b a) (-.f64 a b))
Compiler

Compiled 607 to 159 computations (73.8% saved)

series163.0ms (6%)

Error
0.0b
Counts
1 → 12
Calls

1 calls:

157.0ms
(*.f64 (+.f64 b a) (-.f64 a b))
Compiler

Compiled 174 to 164 computations (5.7% saved)

simplify90.0ms (3.3%)

Algorithm
egg-herbie
Rules
744×times-frac_binary64_3153
431×exp-prod_binary64_3199
387×unsub-neg_binary64_3141
287×*-commutative_binary64_3078
269×exp-sum_binary64_3193
251×distribute-rgt-neg-out_binary64_3107
212×exp-diff_binary64_3195
185×sub-neg_binary64_3140
180×sqr-pow_binary64_3119
176×neg-mul-1_binary64_3143
170×neg-sub0_binary64_3142
169×unswap-sqr_binary64_3115
160×associate-+r+_binary64_3079
158×+-commutative_binary64_3077
157×associate-+l+_binary64_3080
110×distribute-rgt-in_binary64_3097
103×distribute-lft-in_binary64_3096
98×associate-*l*_binary64_3088
92×distribute-neg-in_binary64_3108
87×distribute-lft-neg-out_binary64_3106
85×cancel-sign-sub-inv_binary64_3113 associate-*r*_binary64_3087
80×distribute-neg-out_binary64_3109
67×cancel-sign-sub_binary64_3112
66×distribute-rgt-neg-in_binary64_3105
61×difference-of-squares_binary64_3116
60×div-sub_binary64_3152
55×cube-prod_binary64_3175 distribute-lft-neg-in_binary64_3104
49×exp-neg_binary64_3194
47×associate-+l-_binary64_3082
43×rem-sqrt-square_binary64_3160
42×distribute-rgt-out_binary64_3100
40×swap-sqr_binary64_3114 associate--r+_binary64_3083
36×sqr-neg_binary64_3161
35×associate-+r-_binary64_3081
34×remove-double-neg_binary64_3135
32×pow-sqr_binary64_3120
30×sub0-neg_binary64_3134
25×*-lft-identity_binary64_3136
22×log-prod_binary64_3233
20×*-rgt-identity_binary64_3137
18×+-rgt-identity_binary64_3132
15×unpow3_binary64_3213 unpow1/2_binary64_3211
11×cube-unmult_binary64_3184
10×cube-neg_binary64_3174
associate-/l*_binary64_3092
cube-mult_binary64_3177 associate--r-_binary64_3086
distribute-frac-neg_binary64_3110 distribute-rgt-out--_binary64_3101
pow-plus_binary64_3210
+-lft-identity_binary64_3131
unpow2_binary64_3212 distribute-neg-frac_binary64_3111 distribute-lft-out_binary64_3098
unpow1_binary64_3205 --rgt-identity_binary64_3133 count-2_binary64_3095 associate-*r/_binary64_3089
1-exp_binary64_3191 exp-1-e_binary64_3190 rem-3cbrt-lft_binary64_3172 rem-square-sqrt_binary64_3159 mul-1-neg_binary64_3139 +-inverses_binary64_3126 associate-/l/_binary64_3094 associate-*l/_binary64_3090 associate--l+_binary64_3084
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_3410 erf-erfc_binary64_3409 erf-odd_binary64_3408 if-if-and-not_binary64_3407 if-if-and_binary64_3406 if-if-or-not_binary64_3405 if-if-or_binary64_3404 if-not_binary64_3403 if-same_binary64_3402 if-false_binary64_3401 if-true_binary64_3400 not-gte_binary64_3399 not-lte_binary64_3398 not-gt_binary64_3397 not-lt_binary64_3396 gte-same_binary64_3395 lte-same_binary64_3394 gt-same_binary64_3393 lt-same_binary64_3392 sinh---cosh_binary64_3339 sinh-+-cosh_binary64_3338 sinh-cosh_binary64_3337 tanh-def-c_binary64_3336 tanh-def-b_binary64_3335 tanh-def-a_binary64_3334 cosh-def_binary64_3333 sinh-def_binary64_3332 tan-neg_binary64_3279 cos-neg_binary64_3278 sin-neg_binary64_3277 tan-0_binary64_3276 cos-0_binary64_3275 sin-0_binary64_3274 hang-m-tan_binary64_3273 hang-p-tan_binary64_3272 hang-m0-tan_binary64_3271 hang-p0-tan_binary64_3270 hang-0m-tan_binary64_3269 hang-0p-tan_binary64_3268 tan-+PI/2_binary64_3267 tan-+PI_binary64_3266 tan-PI_binary64_3265 tan-PI/3_binary64_3264 tan-PI/4_binary64_3263 tan-PI/6_binary64_3262 cos-+PI/2_binary64_3261 cos-+PI_binary64_3260 cos-PI_binary64_3259 cos-PI/2_binary64_3258 cos-PI/3_binary64_3257 cos-PI/4_binary64_3256 cos-PI/6_binary64_3255 sin-+PI/2_binary64_3254 sin-+PI_binary64_3253 sin-PI_binary64_3252 sin-PI/2_binary64_3251 sin-PI/3_binary64_3250 sin-PI/4_binary64_3249 sin-PI/6_binary64_3248 sub-1-sin_binary64_3247 sub-1-cos_binary64_3246 -1-add-sin_binary64_3245 -1-add-cos_binary64_3244 1-sub-sin_binary64_3243 1-sub-cos_binary64_3242 cos-sin-sum_binary64_3241 log-E_binary64_3237 log-pow_binary64_3236 log-rec_binary64_3235 log-div_binary64_3234 pow-base-0_binary64_3231 unpow1/3_binary64_3214 exp-to-pow_binary64_3209 pow-base-1_binary64_3207 unpow0_binary64_3206 unpow-1_binary64_3204 exp-lft-cube_binary64_3203 exp-lft-sqr_binary64_3202 exp-cbrt_binary64_3201 exp-sqrt_binary64_3200 div-exp_binary64_3198 rec-exp_binary64_3197 prod-exp_binary64_3196 e-exp-1_binary64_3192 exp-0_binary64_3189 rem-log-exp_binary64_3188 rem-exp-log_binary64_3187 cube-div_binary64_3176 rem-3cbrt-rft_binary64_3173 rem-cbrt-cube_binary64_3171 rem-cube-cbrt_binary64_3170 sqr-abs_binary64_3162 /-rgt-identity_binary64_3138 mul0-rgt_binary64_3130 mul0-lft_binary64_3129 div0_binary64_3128 *-inverses_binary64_3127 lft-mult-inverse_binary64_3125 rgt-mult-inverse_binary64_3124 remove-double-div_binary64_3123 difference-of-sqr--1_binary64_3118 difference-of-sqr-1_binary64_3117 distribute-rgt1-in_binary64_3103 distribute-lft1-in_binary64_3102 distribute-lft-out--_binary64_3099 associate-/r/_binary64_3093 associate-/r*_binary64_3091 associate--l-_binary64_3085
Counts
49 → 46
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
091748
1256706
2925706
31376706
42632706
54013706
65696706

prune32.0ms (1.2%)

Pruning

2 alts after pruning (1 fresh and 1 done)

PrunedKeptTotal
New45146
Fresh000
Picked011
Done000
Total45247
Error
0b
Counts
47 → 2
Compiler

Compiled 591 to 129 computations (78.2% saved)

localize8.0ms (0.3%)

Local error

Found 2 expressions with local error:

0.1b
(*.f64 (sqrt.f64 (+.f64 b a)) (*.f64 (-.f64 a b) (sqrt.f64 (+.f64 a b))))
0.1b
(*.f64 (-.f64 a b) (sqrt.f64 (+.f64 a b)))

rewrite126.0ms (4.7%)

Algorithm
rewrite-expression-head
Error
0b
Rules
42×sqrt-div_binary64_3164
32×frac-times_binary64_3157
21×flip3-+_binary64_3150 flip-+_binary64_3121
16×associate-*r/_binary64_3089
13×add-sqr-sqrt_binary64_3169 *-un-lft-identity_binary64_3147
12×flip3--_binary64_3151 flip--_binary64_3122 associate-*l*_binary64_3088
10×associate-*l/_binary64_3090
pow1_binary64_3208 add-exp-log_binary64_3185 add-cbrt-cube_binary64_3183 sqrt-prod_binary64_3163
associate-*r*_binary64_3087
add-cube-cbrt_binary64_3182
pow-prod-down_binary64_3218 prod-exp_binary64_3196 cbrt-unprod_binary64_3180
add-log-exp_binary64_3186 unswap-sqr_binary64_3115 distribute-lft-out_binary64_3098 *-commutative_binary64_3078
difference-of-squares_binary64_3116 distribute-lft-out--_binary64_3099
Counts
2 → 81
Calls

2 calls:

16.0ms
(*.f64 (sqrt.f64 (+.f64 b a)) (*.f64 (-.f64 a b) (sqrt.f64 (+.f64 a b))))
11.0ms
(*.f64 (-.f64 a b) (sqrt.f64 (+.f64 a b)))
Compiler

Compiled 2272 to 474 computations (79.1% saved)

series236.0ms (8.7%)

Error
0b
Counts
2 → 20
Calls

2 calls:

153.0ms
(*.f64 (sqrt.f64 (+.f64 b a)) (*.f64 (-.f64 a b) (sqrt.f64 (+.f64 a b))))
71.0ms
(*.f64 (-.f64 a b) (sqrt.f64 (+.f64 a b)))
Compiler

Compiled 464 to 372 computations (19.8% saved)

simplify125.0ms (4.6%)

Algorithm
egg-herbie
Rules
670×distribute-rgt-in_binary64_3097
665×distribute-lft-in_binary64_3096
338×*-commutative_binary64_3078
278×distribute-lft-neg-out_binary64_3106
275×distribute-rgt-neg-out_binary64_3107
172×associate-*l*_binary64_3088
171×associate-*r*_binary64_3087
138×unswap-sqr_binary64_3115
134×exp-prod_binary64_3199
77×exp-sum_binary64_3193
68×cancel-sign-sub-inv_binary64_3113
64×neg-sub0_binary64_3142
60×neg-mul-1_binary64_3143 sub-neg_binary64_3140
59×distribute-rgt-neg-in_binary64_3105
55×unsub-neg_binary64_3141
54×distribute-lft-neg-in_binary64_3104
53×sqr-pow_binary64_3119
40×*-rgt-identity_binary64_3137
37×*-lft-identity_binary64_3136
25×associate-+l+_binary64_3080
22×exp-diff_binary64_3195 distribute-rgt-out_binary64_3100 +-commutative_binary64_3077
21×swap-sqr_binary64_3114
19×log-prod_binary64_3233
18×cube-prod_binary64_3175 difference-of-squares_binary64_3116
14×associate-+l-_binary64_3082 associate-+r+_binary64_3079
13×associate-+r-_binary64_3081
11×associate-/l*_binary64_3092
10×pow-sqr_binary64_3120
unpow3_binary64_3213 +-rgt-identity_binary64_3132
rem-sqrt-square_binary64_3160 sub0-neg_binary64_3134
exp-neg_binary64_3194
cube-unmult_binary64_3184 div-sub_binary64_3152 associate-/r*_binary64_3091 associate-*r/_binary64_3089
unpow1/2_binary64_3211 associate-/l/_binary64_3094
rem-square-sqrt_binary64_3159 mul-1-neg_binary64_3139 distribute-neg-in_binary64_3108 distribute-rgt-out--_binary64_3101
pow-plus_binary64_3210 sqr-neg_binary64_3161 associate-/r/_binary64_3093 associate--r-_binary64_3086
unpow2_binary64_3212 unpow1_binary64_3205 cube-mult_binary64_3177 distribute-neg-out_binary64_3109 count-2_binary64_3095
1-exp_binary64_3191 exp-1-e_binary64_3190 cancel-sign-sub_binary64_3112 associate-*l/_binary64_3090
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_3410 erf-erfc_binary64_3409 erf-odd_binary64_3408 if-if-and-not_binary64_3407 if-if-and_binary64_3406 if-if-or-not_binary64_3405 if-if-or_binary64_3404 if-not_binary64_3403 if-same_binary64_3402 if-false_binary64_3401 if-true_binary64_3400 not-gte_binary64_3399 not-lte_binary64_3398 not-gt_binary64_3397 not-lt_binary64_3396 gte-same_binary64_3395 lte-same_binary64_3394 gt-same_binary64_3393 lt-same_binary64_3392 sinh---cosh_binary64_3339 sinh-+-cosh_binary64_3338 sinh-cosh_binary64_3337 tanh-def-c_binary64_3336 tanh-def-b_binary64_3335 tanh-def-a_binary64_3334 cosh-def_binary64_3333 sinh-def_binary64_3332 tan-neg_binary64_3279 cos-neg_binary64_3278 sin-neg_binary64_3277 tan-0_binary64_3276 cos-0_binary64_3275 sin-0_binary64_3274 hang-m-tan_binary64_3273 hang-p-tan_binary64_3272 hang-m0-tan_binary64_3271 hang-p0-tan_binary64_3270 hang-0m-tan_binary64_3269 hang-0p-tan_binary64_3268 tan-+PI/2_binary64_3267 tan-+PI_binary64_3266 tan-PI_binary64_3265 tan-PI/3_binary64_3264 tan-PI/4_binary64_3263 tan-PI/6_binary64_3262 cos-+PI/2_binary64_3261 cos-+PI_binary64_3260 cos-PI_binary64_3259 cos-PI/2_binary64_3258 cos-PI/3_binary64_3257 cos-PI/4_binary64_3256 cos-PI/6_binary64_3255 sin-+PI/2_binary64_3254 sin-+PI_binary64_3253 sin-PI_binary64_3252 sin-PI/2_binary64_3251 sin-PI/3_binary64_3250 sin-PI/4_binary64_3249 sin-PI/6_binary64_3248 sub-1-sin_binary64_3247 sub-1-cos_binary64_3246 -1-add-sin_binary64_3245 -1-add-cos_binary64_3244 1-sub-sin_binary64_3243 1-sub-cos_binary64_3242 cos-sin-sum_binary64_3241 log-E_binary64_3237 log-pow_binary64_3236 log-rec_binary64_3235 log-div_binary64_3234 pow-base-0_binary64_3231 unpow1/3_binary64_3214 exp-to-pow_binary64_3209 pow-base-1_binary64_3207 unpow0_binary64_3206 unpow-1_binary64_3204 exp-lft-cube_binary64_3203 exp-lft-sqr_binary64_3202 exp-cbrt_binary64_3201 exp-sqrt_binary64_3200 div-exp_binary64_3198 rec-exp_binary64_3197 prod-exp_binary64_3196 e-exp-1_binary64_3192 exp-0_binary64_3189 rem-log-exp_binary64_3188 rem-exp-log_binary64_3187 cube-div_binary64_3176 cube-neg_binary64_3174 rem-3cbrt-rft_binary64_3173 rem-3cbrt-lft_binary64_3172 rem-cbrt-cube_binary64_3171 rem-cube-cbrt_binary64_3170 sqr-abs_binary64_3162 times-frac_binary64_3153 /-rgt-identity_binary64_3138 remove-double-neg_binary64_3135 --rgt-identity_binary64_3133 +-lft-identity_binary64_3131 mul0-rgt_binary64_3130 mul0-lft_binary64_3129 div0_binary64_3128 *-inverses_binary64_3127 +-inverses_binary64_3126 lft-mult-inverse_binary64_3125 rgt-mult-inverse_binary64_3124 remove-double-div_binary64_3123 difference-of-sqr--1_binary64_3118 difference-of-sqr-1_binary64_3117 distribute-neg-frac_binary64_3111 distribute-frac-neg_binary64_3110 distribute-rgt1-in_binary64_3103 distribute-lft1-in_binary64_3102 distribute-lft-out--_binary64_3099 distribute-lft-out_binary64_3098 associate--l-_binary64_3085 associate--l+_binary64_3084 associate--r+_binary64_3083
Counts
101 → 88
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01682580
13982332
210392227
331202227
448332227
549872227

prune78.0ms (2.9%)

Pruning

2 alts after pruning (0 fresh and 2 done)

PrunedKeptTotal
New88088
Fresh000
Picked011
Done011
Total88290
Error
0b
Counts
90 → 2
Compiler

Compiled 1846 to 431 computations (76.7% saved)

regimes139.0ms (5.2%)

Accuracy

Total 0.0b remaining (66.7%)

Threshold costs 0.0b (66.7%)

Compiler

Compiled 1005 to 534 computations (46.9% saved)

bsearch0.0ms (0%)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64_3077
sub-neg_binary64_3140 *-commutative_binary64_3078
neg-mul-1_binary64_3143 neg-sub0_binary64_3142
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_3407 if-if-and_binary64_3406 if-if-or-not_binary64_3405 if-if-or_binary64_3404 if-not_binary64_3403 if-same_binary64_3402 if-false_binary64_3401 if-true_binary64_3400 tan-0_binary64_3276 cos-0_binary64_3275 sin-0_binary64_3274 unpow1_binary64_3205 e-exp-1_binary64_3192 1-exp_binary64_3191 exp-1-e_binary64_3190 exp-0_binary64_3189 sqr-abs_binary64_3162 sqr-neg_binary64_3161 unsub-neg_binary64_3141 mul-1-neg_binary64_3139 /-rgt-identity_binary64_3138 *-rgt-identity_binary64_3137 *-lft-identity_binary64_3136 remove-double-neg_binary64_3135 sub0-neg_binary64_3134 --rgt-identity_binary64_3133 +-rgt-identity_binary64_3132 +-lft-identity_binary64_3131 cancel-sign-sub-inv_binary64_3113 cancel-sign-sub_binary64_3112 distribute-neg-frac_binary64_3111 distribute-frac-neg_binary64_3110 distribute-neg-out_binary64_3109 distribute-neg-in_binary64_3108 distribute-rgt-neg-out_binary64_3107 distribute-lft-neg-out_binary64_3106 distribute-rgt-neg-in_binary64_3105 distribute-lft-neg-in_binary64_3104
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0610
11010
21510
31710
41810
51810

end0.0ms (0%)

sample564.0ms (20.9%)

Algorithm
intervals
Results
174.0ms8000×body128valid
3.0ms153×body128invalid
Compiler

Compiled 172 to 97 computations (43.6% saved)

Profiling

Loading profile data...