Details

Time bar (total: 3.1s)

analyze424.0ms (13.7%)

Algorithm
search
egg-herbie
Rules
167×unsub-neg_binary64_72
143×distribute-rgt-in_binary64_28
113×sub-neg_binary64_71
108×cancel-sign-sub-inv_binary64_44
96×associate--r+_binary64_14
71×neg-mul-1_binary64_74
66×distribute-lft-in_binary64_27
63×associate-+l-_binary64_13
58×associate-*r*_binary64_18
54×distribute-neg-out_binary64_40
52×neg-sub0_binary64_73
48×distribute-lft-neg-out_binary64_37
45×distribute-rgt-neg-out_binary64_38
43×distribute-rgt-neg-in_binary64_36
42×distribute-lft-neg-in_binary64_35
40×associate-+r+_binary64_10 +-commutative_binary64_8
37×*-commutative_binary64_9
35×associate-*l*_binary64_19
30×associate--l+_binary64_15
28×associate-+l+_binary64_11
24×sub0-neg_binary64_65
23×distribute-neg-in_binary64_39
22×associate--l-_binary64_16
21×associate--r-_binary64_17
20×distribute-rgt-out--_binary64_32
18×mul0-rgt_binary64_61
16×mul0-lft_binary64_60
15×remove-double-neg_binary64_66
13×associate-+r-_binary64_12
11×distribute-rgt-out_binary64_31
*-rgt-identity_binary64_68
*-lft-identity_binary64_67 +-rgt-identity_binary64_63 distribute-lft1-in_binary64_33
+-lft-identity_binary64_62 distribute-lft-out--_binary64_30
1-exp_binary64_122 distribute-lft-out_binary64_29
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_341 erf-erfc_binary64_340 erf-odd_binary64_339 if-if-and-not_binary64_338 if-if-and_binary64_337 if-if-or-not_binary64_336 if-if-or_binary64_335 if-not_binary64_334 if-same_binary64_333 if-false_binary64_332 if-true_binary64_331 not-gte_binary64_330 not-lte_binary64_329 not-gt_binary64_328 not-lt_binary64_327 gte-same_binary64_326 lte-same_binary64_325 gt-same_binary64_324 lt-same_binary64_323 sinh---cosh_binary64_270 sinh-+-cosh_binary64_269 sinh-cosh_binary64_268 tanh-def-c_binary64_267 tanh-def-b_binary64_266 tanh-def-a_binary64_265 cosh-def_binary64_264 sinh-def_binary64_263 tan-neg_binary64_210 cos-neg_binary64_209 sin-neg_binary64_208 tan-0_binary64_207 cos-0_binary64_206 sin-0_binary64_205 hang-m-tan_binary64_204 hang-p-tan_binary64_203 hang-m0-tan_binary64_202 hang-p0-tan_binary64_201 hang-0m-tan_binary64_200 hang-0p-tan_binary64_199 tan-+PI/2_binary64_198 tan-+PI_binary64_197 tan-PI_binary64_196 tan-PI/3_binary64_195 tan-PI/4_binary64_194 tan-PI/6_binary64_193 cos-+PI/2_binary64_192 cos-+PI_binary64_191 cos-PI_binary64_190 cos-PI/2_binary64_189 cos-PI/3_binary64_188 cos-PI/4_binary64_187 cos-PI/6_binary64_186 sin-+PI/2_binary64_185 sin-+PI_binary64_184 sin-PI_binary64_183 sin-PI/2_binary64_182 sin-PI/3_binary64_181 sin-PI/4_binary64_180 sin-PI/6_binary64_179 sub-1-sin_binary64_178 sub-1-cos_binary64_177 -1-add-sin_binary64_176 -1-add-cos_binary64_175 1-sub-sin_binary64_174 1-sub-cos_binary64_173 cos-sin-sum_binary64_172 log-E_binary64_168 log-pow_binary64_167 log-rec_binary64_166 log-div_binary64_165 log-prod_binary64_164 pow-base-0_binary64_162 unpow1/3_binary64_145 unpow3_binary64_144 unpow2_binary64_143 unpow1/2_binary64_142 pow-plus_binary64_141 exp-to-pow_binary64_140 pow-base-1_binary64_138 unpow0_binary64_137 unpow1_binary64_136 unpow-1_binary64_135 exp-lft-cube_binary64_134 exp-lft-sqr_binary64_133 exp-cbrt_binary64_132 exp-sqrt_binary64_131 exp-prod_binary64_130 div-exp_binary64_129 rec-exp_binary64_128 prod-exp_binary64_127 exp-diff_binary64_126 exp-neg_binary64_125 exp-sum_binary64_124 e-exp-1_binary64_123 exp-1-e_binary64_121 exp-0_binary64_120 rem-log-exp_binary64_119 rem-exp-log_binary64_118 cube-unmult_binary64_115 cube-mult_binary64_108 cube-div_binary64_107 cube-prod_binary64_106 cube-neg_binary64_105 rem-3cbrt-rft_binary64_104 rem-3cbrt-lft_binary64_103 rem-cbrt-cube_binary64_102 rem-cube-cbrt_binary64_101 sqr-abs_binary64_93 sqr-neg_binary64_92 rem-sqrt-square_binary64_91 rem-square-sqrt_binary64_90 times-frac_binary64_84 div-sub_binary64_83 mul-1-neg_binary64_70 /-rgt-identity_binary64_69 --rgt-identity_binary64_64 div0_binary64_59 *-inverses_binary64_58 +-inverses_binary64_57 lft-mult-inverse_binary64_56 rgt-mult-inverse_binary64_55 remove-double-div_binary64_54 pow-sqr_binary64_51 sqr-pow_binary64_50 difference-of-sqr--1_binary64_49 difference-of-sqr-1_binary64_48 difference-of-squares_binary64_47 unswap-sqr_binary64_46 swap-sqr_binary64_45 cancel-sign-sub_binary64_43 distribute-neg-frac_binary64_42 distribute-frac-neg_binary64_41 distribute-rgt1-in_binary64_34 count-2_binary64_26 associate-/l/_binary64_25 associate-/r/_binary64_24 associate-/l*_binary64_23 associate-/r*_binary64_22 associate-*l/_binary64_21 associate-*r/_binary64_20
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01640
13140
26540
311340
418440
540240
662240
780140
887540
983840
1077940
033
133
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
0%99.9%0.1%6
12.5%87.4%0.1%7
18.7%81.1%0.1%8
36.7%60.8%2.5%9
43.3%49.9%6.8%10
49.7%40.8%9.5%11
58.2%30.2%11.6%12
61.3%24.4%14.3%13
65%19.8%15.3%14
Compiler

Compiled 8 to 7 computations (12.5% saved)

sample17.0ms (0.5%)

Algorithm
intervals
Results
6.0ms256×body128valid
1.0ms23×body128invalid
Compiler

Compiled 15 to 16 computations (-6.7% saved)

simplify20.0ms (0.7%)

Algorithm
egg-herbie
Rules
71×cancel-sign-sub-inv_binary64_44
55×distribute-rgt-in_binary64_28
45×sub-neg_binary64_71
43×unsub-neg_binary64_72
33×distribute-lft-in_binary64_27 associate--r+_binary64_14
23×associate-*l*_binary64_19
22×neg-mul-1_binary64_74 distribute-lft-neg-out_binary64_37
21×associate-*r*_binary64_18 *-commutative_binary64_9
20×associate-+l-_binary64_13
19×distribute-neg-in_binary64_39 distribute-rgt-neg-in_binary64_36
17×neg-sub0_binary64_73 distribute-rgt-neg-out_binary64_38
15×associate--l+_binary64_15 +-commutative_binary64_8
14×sub0-neg_binary64_65
13×associate-+l+_binary64_11
12×associate-+r+_binary64_10
10×mul0-rgt_binary64_61 mul0-lft_binary64_60
distribute-lft-neg-in_binary64_35 associate--r-_binary64_17 associate-+r-_binary64_12
+-lft-identity_binary64_62 distribute-rgt-out--_binary64_32
remove-double-neg_binary64_66
*-lft-identity_binary64_67
*-rgt-identity_binary64_68 --rgt-identity_binary64_64
+-rgt-identity_binary64_63 distribute-rgt-out_binary64_31
1-exp_binary64_122 distribute-rgt1-in_binary64_34 distribute-lft1-in_binary64_33 distribute-lft-out--_binary64_30 associate--l-_binary64_16
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_341 erf-erfc_binary64_340 erf-odd_binary64_339 if-if-and-not_binary64_338 if-if-and_binary64_337 if-if-or-not_binary64_336 if-if-or_binary64_335 if-not_binary64_334 if-same_binary64_333 if-false_binary64_332 if-true_binary64_331 not-gte_binary64_330 not-lte_binary64_329 not-gt_binary64_328 not-lt_binary64_327 gte-same_binary64_326 lte-same_binary64_325 gt-same_binary64_324 lt-same_binary64_323 sinh---cosh_binary64_270 sinh-+-cosh_binary64_269 sinh-cosh_binary64_268 tanh-def-c_binary64_267 tanh-def-b_binary64_266 tanh-def-a_binary64_265 cosh-def_binary64_264 sinh-def_binary64_263 tan-neg_binary64_210 cos-neg_binary64_209 sin-neg_binary64_208 tan-0_binary64_207 cos-0_binary64_206 sin-0_binary64_205 hang-m-tan_binary64_204 hang-p-tan_binary64_203 hang-m0-tan_binary64_202 hang-p0-tan_binary64_201 hang-0m-tan_binary64_200 hang-0p-tan_binary64_199 tan-+PI/2_binary64_198 tan-+PI_binary64_197 tan-PI_binary64_196 tan-PI/3_binary64_195 tan-PI/4_binary64_194 tan-PI/6_binary64_193 cos-+PI/2_binary64_192 cos-+PI_binary64_191 cos-PI_binary64_190 cos-PI/2_binary64_189 cos-PI/3_binary64_188 cos-PI/4_binary64_187 cos-PI/6_binary64_186 sin-+PI/2_binary64_185 sin-+PI_binary64_184 sin-PI_binary64_183 sin-PI/2_binary64_182 sin-PI/3_binary64_181 sin-PI/4_binary64_180 sin-PI/6_binary64_179 sub-1-sin_binary64_178 sub-1-cos_binary64_177 -1-add-sin_binary64_176 -1-add-cos_binary64_175 1-sub-sin_binary64_174 1-sub-cos_binary64_173 cos-sin-sum_binary64_172 log-E_binary64_168 log-pow_binary64_167 log-rec_binary64_166 log-div_binary64_165 log-prod_binary64_164 pow-base-0_binary64_162 unpow1/3_binary64_145 unpow3_binary64_144 unpow2_binary64_143 unpow1/2_binary64_142 pow-plus_binary64_141 exp-to-pow_binary64_140 pow-base-1_binary64_138 unpow0_binary64_137 unpow1_binary64_136 unpow-1_binary64_135 exp-lft-cube_binary64_134 exp-lft-sqr_binary64_133 exp-cbrt_binary64_132 exp-sqrt_binary64_131 exp-prod_binary64_130 div-exp_binary64_129 rec-exp_binary64_128 prod-exp_binary64_127 exp-diff_binary64_126 exp-neg_binary64_125 exp-sum_binary64_124 e-exp-1_binary64_123 exp-1-e_binary64_121 exp-0_binary64_120 rem-log-exp_binary64_119 rem-exp-log_binary64_118 cube-unmult_binary64_115 cube-mult_binary64_108 cube-div_binary64_107 cube-prod_binary64_106 cube-neg_binary64_105 rem-3cbrt-rft_binary64_104 rem-3cbrt-lft_binary64_103 rem-cbrt-cube_binary64_102 rem-cube-cbrt_binary64_101 sqr-abs_binary64_93 sqr-neg_binary64_92 rem-sqrt-square_binary64_91 rem-square-sqrt_binary64_90 times-frac_binary64_84 div-sub_binary64_83 mul-1-neg_binary64_70 /-rgt-identity_binary64_69 div0_binary64_59 *-inverses_binary64_58 +-inverses_binary64_57 lft-mult-inverse_binary64_56 rgt-mult-inverse_binary64_55 remove-double-div_binary64_54 pow-sqr_binary64_51 sqr-pow_binary64_50 difference-of-sqr--1_binary64_49 difference-of-sqr-1_binary64_48 difference-of-squares_binary64_47 unswap-sqr_binary64_46 swap-sqr_binary64_45 cancel-sign-sub_binary64_43 distribute-neg-frac_binary64_42 distribute-frac-neg_binary64_41 distribute-neg-out_binary64_40 distribute-lft-out_binary64_29 count-2_binary64_26 associate-/l/_binary64_25 associate-/r/_binary64_24 associate-/l*_binary64_23 associate-/r*_binary64_22 associate-*l/_binary64_21 associate-*r/_binary64_20
Counts
1 → 0
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
11110
22210
34110
46510
510410
615910
726410
833010
934410
1034410
1130110

prune2.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 6 computations (14.3% saved)

localize6.0ms (0.2%)

Local error

Found 2 expressions with local error:

0.0b
(*.f64 y (-.f64 z x))
0.0b
(+.f64 x (*.f64 y (-.f64 z x)))

rewrite60.0ms (1.9%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
12×add-sqr-sqrt_binary64_100 cancel-sign-sub-inv_binary64_44
10×*-un-lft-identity_binary64_78
add-cube-cbrt_binary64_113 distribute-rgt-in_binary64_28 associate-+r+_binary64_10 distribute-lft-in_binary64_27
associate-*r*_binary64_18
add-log-exp_binary64_117 pow1_binary64_139 add-exp-log_binary64_116 add-cbrt-cube_binary64_114 sub-neg_binary64_71
associate-*l*_binary64_19
associate-*r/_binary64_20
sum-log_binary64_169 flip3-+_binary64_81 flip-+_binary64_52 +-commutative_binary64_8 pow-prod-down_binary64_149 prod-exp_binary64_127 cbrt-unprod_binary64_111 unswap-sqr_binary64_46 flip3--_binary64_82 flip--_binary64_53 difference-of-squares_binary64_47 distribute-lft-out--_binary64_30 *-commutative_binary64_9
Counts
2 → 49
Calls

2 calls:

8.0ms
(*.f64 y (-.f64 z x))
6.0ms
(+.f64 x (*.f64 y (-.f64 z x)))
Compiler

Compiled 682 to 192 computations (71.8% saved)

series361.0ms (11.7%)

Error
0.0b
Counts
2 → 33
Calls

2 calls:

199.0ms
(+.f64 x (*.f64 y (-.f64 z x)))
144.0ms
(*.f64 y (-.f64 z x))
Compiler

Compiled 618 to 364 computations (41.1% saved)

simplify91.0ms (2.9%)

Algorithm
egg-herbie
Rules
518×neg-mul-1_binary64_74
445×distribute-rgt-in_binary64_28
433×distribute-lft-in_binary64_27
283×distribute-rgt-neg-out_binary64_38
262×exp-prod_binary64_130
260×unsub-neg_binary64_72
254×distribute-lft-neg-out_binary64_37
196×*-commutative_binary64_9
156×times-frac_binary64_84
150×associate--r+_binary64_14
145×cancel-sign-sub-inv_binary64_44
130×distribute-rgt-neg-in_binary64_36
122×distribute-neg-in_binary64_39
114×associate--l+_binary64_15
102×sub-neg_binary64_71
100×exp-sum_binary64_124
88×neg-sub0_binary64_73
86×distribute-lft-neg-in_binary64_35 associate-*l*_binary64_19
74×distribute-rgt-out_binary64_31
73×associate-*r*_binary64_18
70×exp-diff_binary64_126
65×sqr-pow_binary64_50 associate-+l+_binary64_11
54×cube-prod_binary64_106
53×associate-+r+_binary64_10
51×distribute-rgt-out--_binary64_32
50×swap-sqr_binary64_45
48×div-sub_binary64_83
39×+-commutative_binary64_8
37×*-lft-identity_binary64_67
34×log-prod_binary64_164 *-rgt-identity_binary64_68
24×remove-double-neg_binary64_66
20×sqr-neg_binary64_92 mul0-rgt_binary64_61 mul0-lft_binary64_60 unswap-sqr_binary64_46
18×associate-+l-_binary64_13
16×associate--r-_binary64_17
15×associate-+r-_binary64_12
12×+-rgt-identity_binary64_63
11×cube-neg_binary64_105 distribute-neg-out_binary64_40 distribute-lft-out_binary64_29
10×unpow3_binary64_144 difference-of-squares_binary64_47 associate-/l*_binary64_23 associate--l-_binary64_16
exp-neg_binary64_125
sub0-neg_binary64_65
cube-unmult_binary64_115 distribute-lft-out--_binary64_30
mul-1-neg_binary64_70 pow-sqr_binary64_51
unpow1/2_binary64_142 rem-sqrt-square_binary64_91 distribute-rgt1-in_binary64_34
cube-mult_binary64_108 distribute-lft1-in_binary64_33 associate-*r/_binary64_20
cancel-sign-sub_binary64_43 associate-*l/_binary64_21
pow-plus_binary64_141
div-exp_binary64_129 prod-exp_binary64_127 1-exp_binary64_122 exp-1-e_binary64_121 rem-3cbrt-lft_binary64_103 rem-square-sqrt_binary64_90 --rgt-identity_binary64_64 distribute-frac-neg_binary64_41 count-2_binary64_26 associate-/l/_binary64_25
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_341 erf-erfc_binary64_340 erf-odd_binary64_339 if-if-and-not_binary64_338 if-if-and_binary64_337 if-if-or-not_binary64_336 if-if-or_binary64_335 if-not_binary64_334 if-same_binary64_333 if-false_binary64_332 if-true_binary64_331 not-gte_binary64_330 not-lte_binary64_329 not-gt_binary64_328 not-lt_binary64_327 gte-same_binary64_326 lte-same_binary64_325 gt-same_binary64_324 lt-same_binary64_323 sinh---cosh_binary64_270 sinh-+-cosh_binary64_269 sinh-cosh_binary64_268 tanh-def-c_binary64_267 tanh-def-b_binary64_266 tanh-def-a_binary64_265 cosh-def_binary64_264 sinh-def_binary64_263 tan-neg_binary64_210 cos-neg_binary64_209 sin-neg_binary64_208 tan-0_binary64_207 cos-0_binary64_206 sin-0_binary64_205 hang-m-tan_binary64_204 hang-p-tan_binary64_203 hang-m0-tan_binary64_202 hang-p0-tan_binary64_201 hang-0m-tan_binary64_200 hang-0p-tan_binary64_199 tan-+PI/2_binary64_198 tan-+PI_binary64_197 tan-PI_binary64_196 tan-PI/3_binary64_195 tan-PI/4_binary64_194 tan-PI/6_binary64_193 cos-+PI/2_binary64_192 cos-+PI_binary64_191 cos-PI_binary64_190 cos-PI/2_binary64_189 cos-PI/3_binary64_188 cos-PI/4_binary64_187 cos-PI/6_binary64_186 sin-+PI/2_binary64_185 sin-+PI_binary64_184 sin-PI_binary64_183 sin-PI/2_binary64_182 sin-PI/3_binary64_181 sin-PI/4_binary64_180 sin-PI/6_binary64_179 sub-1-sin_binary64_178 sub-1-cos_binary64_177 -1-add-sin_binary64_176 -1-add-cos_binary64_175 1-sub-sin_binary64_174 1-sub-cos_binary64_173 cos-sin-sum_binary64_172 log-E_binary64_168 log-pow_binary64_167 log-rec_binary64_166 log-div_binary64_165 pow-base-0_binary64_162 unpow1/3_binary64_145 unpow2_binary64_143 exp-to-pow_binary64_140 pow-base-1_binary64_138 unpow0_binary64_137 unpow1_binary64_136 unpow-1_binary64_135 exp-lft-cube_binary64_134 exp-lft-sqr_binary64_133 exp-cbrt_binary64_132 exp-sqrt_binary64_131 rec-exp_binary64_128 e-exp-1_binary64_123 exp-0_binary64_120 rem-log-exp_binary64_119 rem-exp-log_binary64_118 cube-div_binary64_107 rem-3cbrt-rft_binary64_104 rem-cbrt-cube_binary64_102 rem-cube-cbrt_binary64_101 sqr-abs_binary64_93 /-rgt-identity_binary64_69 +-lft-identity_binary64_62 div0_binary64_59 *-inverses_binary64_58 +-inverses_binary64_57 lft-mult-inverse_binary64_56 rgt-mult-inverse_binary64_55 remove-double-div_binary64_54 difference-of-sqr--1_binary64_49 difference-of-sqr-1_binary64_48 distribute-neg-frac_binary64_42 associate-/r/_binary64_24 associate-/r*_binary64_22
Counts
82 → 54
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0101785
1243764
2775764
32409764
44355764
55323764

prune32.0ms (1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New52254
Fresh000
Picked011
Done000
Total52355
Error
0.0b
Counts
55 → 3
Compiler

Compiled 534 to 110 computations (79.4% saved)

localize7.0ms (0.2%)

Local error

Found 2 expressions with local error:

0.0b
(+.f64 (*.f64 z y) x)
0.0b
(+.f64 (+.f64 (*.f64 z y) x) (*.f64 (neg.f64 x) y))

rewrite35.0ms (1.1%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
add-log-exp_binary64_117
sum-log_binary64_169
pow1_binary64_139 add-exp-log_binary64_116 add-cbrt-cube_binary64_114 add-cube-cbrt_binary64_113 add-sqr-sqrt_binary64_100 flip3-+_binary64_81 *-un-lft-identity_binary64_78 flip-+_binary64_52 +-commutative_binary64_8
distribute-lft-neg-out_binary64_37 unsub-neg_binary64_72 associate-+l+_binary64_11
Counts
2 → 25
Calls

2 calls:

7.0ms
(+.f64 (+.f64 (*.f64 z y) x) (*.f64 (neg.f64 x) y))
4.0ms
(+.f64 (*.f64 z y) x)
Compiler

Compiled 465 to 93 computations (80% saved)

series288.0ms (9.3%)

Error
0.0b
Counts
2 → 36
Calls

2 calls:

173.0ms
(+.f64 (+.f64 (*.f64 z y) x) (*.f64 (neg.f64 x) y))
95.0ms
(+.f64 (*.f64 z y) x)
Compiler

Compiled 719 to 404 computations (43.8% saved)

simplify84.0ms (2.7%)

Algorithm
egg-herbie
Rules
710×neg-mul-1_binary64_74
479×distribute-rgt-neg-out_binary64_38
408×associate-*l*_binary64_19
396×distribute-lft-neg-out_binary64_37
375×associate-*r*_binary64_18
371×unsub-neg_binary64_72
329×distribute-rgt-in_binary64_28
296×distribute-lft-in_binary64_27
250×times-frac_binary64_84
151×distribute-neg-in_binary64_39
142×sub-neg_binary64_71
139×distribute-neg-out_binary64_40
117×neg-sub0_binary64_73
115×cancel-sign-sub-inv_binary64_44
112×exp-prod_binary64_130
107×cancel-sign-sub_binary64_43
98×*-commutative_binary64_9
85×associate-+l+_binary64_11
75×exp-sum_binary64_124
64×distribute-rgt-neg-in_binary64_36
63×sqr-pow_binary64_50
60×associate-+r+_binary64_10
56×exp-diff_binary64_126 cube-prod_binary64_106
54×unswap-sqr_binary64_46
50×distribute-lft-neg-in_binary64_35
44×+-commutative_binary64_8
36×distribute-rgt-out_binary64_31
30×associate-+l-_binary64_13
29×swap-sqr_binary64_45
26×associate-+r-_binary64_12
24×distribute-rgt-out--_binary64_32
22×div-sub_binary64_83 *-rgt-identity_binary64_68 mul0-rgt_binary64_61 mul0-lft_binary64_60 distribute-lft-out_binary64_29
18×remove-double-neg_binary64_66
17×sqr-neg_binary64_92
15×associate--l+_binary64_15
13×unpow3_binary64_144 +-rgt-identity_binary64_63
11×cube-neg_binary64_105 sub0-neg_binary64_65 difference-of-squares_binary64_47 associate--r+_binary64_14
10×cube-unmult_binary64_115 associate--r-_binary64_17
mul-1-neg_binary64_70
cube-mult_binary64_108
exp-neg_binary64_125 pow-sqr_binary64_51
distribute-lft-out--_binary64_30 associate--l-_binary64_16
prod-exp_binary64_127
log-prod_binary64_164 --rgt-identity_binary64_64
associate-*l/_binary64_21 associate-*r/_binary64_20
div-exp_binary64_129 *-lft-identity_binary64_67 distribute-frac-neg_binary64_41 distribute-rgt1-in_binary64_34 associate-/l*_binary64_23
pow-plus_binary64_141 1-exp_binary64_122 exp-1-e_binary64_121 distribute-lft1-in_binary64_33
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_341 erf-erfc_binary64_340 erf-odd_binary64_339 if-if-and-not_binary64_338 if-if-and_binary64_337 if-if-or-not_binary64_336 if-if-or_binary64_335 if-not_binary64_334 if-same_binary64_333 if-false_binary64_332 if-true_binary64_331 not-gte_binary64_330 not-lte_binary64_329 not-gt_binary64_328 not-lt_binary64_327 gte-same_binary64_326 lte-same_binary64_325 gt-same_binary64_324 lt-same_binary64_323 sinh---cosh_binary64_270 sinh-+-cosh_binary64_269 sinh-cosh_binary64_268 tanh-def-c_binary64_267 tanh-def-b_binary64_266 tanh-def-a_binary64_265 cosh-def_binary64_264 sinh-def_binary64_263 tan-neg_binary64_210 cos-neg_binary64_209 sin-neg_binary64_208 tan-0_binary64_207 cos-0_binary64_206 sin-0_binary64_205 hang-m-tan_binary64_204 hang-p-tan_binary64_203 hang-m0-tan_binary64_202 hang-p0-tan_binary64_201 hang-0m-tan_binary64_200 hang-0p-tan_binary64_199 tan-+PI/2_binary64_198 tan-+PI_binary64_197 tan-PI_binary64_196 tan-PI/3_binary64_195 tan-PI/4_binary64_194 tan-PI/6_binary64_193 cos-+PI/2_binary64_192 cos-+PI_binary64_191 cos-PI_binary64_190 cos-PI/2_binary64_189 cos-PI/3_binary64_188 cos-PI/4_binary64_187 cos-PI/6_binary64_186 sin-+PI/2_binary64_185 sin-+PI_binary64_184 sin-PI_binary64_183 sin-PI/2_binary64_182 sin-PI/3_binary64_181 sin-PI/4_binary64_180 sin-PI/6_binary64_179 sub-1-sin_binary64_178 sub-1-cos_binary64_177 -1-add-sin_binary64_176 -1-add-cos_binary64_175 1-sub-sin_binary64_174 1-sub-cos_binary64_173 cos-sin-sum_binary64_172 log-E_binary64_168 log-pow_binary64_167 log-rec_binary64_166 log-div_binary64_165 pow-base-0_binary64_162 unpow1/3_binary64_145 unpow2_binary64_143 unpow1/2_binary64_142 exp-to-pow_binary64_140 pow-base-1_binary64_138 unpow0_binary64_137 unpow1_binary64_136 unpow-1_binary64_135 exp-lft-cube_binary64_134 exp-lft-sqr_binary64_133 exp-cbrt_binary64_132 exp-sqrt_binary64_131 rec-exp_binary64_128 e-exp-1_binary64_123 exp-0_binary64_120 rem-log-exp_binary64_119 rem-exp-log_binary64_118 cube-div_binary64_107 rem-3cbrt-rft_binary64_104 rem-3cbrt-lft_binary64_103 rem-cbrt-cube_binary64_102 rem-cube-cbrt_binary64_101 sqr-abs_binary64_93 rem-sqrt-square_binary64_91 rem-square-sqrt_binary64_90 /-rgt-identity_binary64_69 +-lft-identity_binary64_62 div0_binary64_59 *-inverses_binary64_58 +-inverses_binary64_57 lft-mult-inverse_binary64_56 rgt-mult-inverse_binary64_55 remove-double-div_binary64_54 difference-of-sqr--1_binary64_49 difference-of-sqr-1_binary64_48 distribute-neg-frac_binary64_42 count-2_binary64_26 associate-/l/_binary64_25 associate-/r/_binary64_24 associate-/r*_binary64_22
Counts
61 → 48
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
067684
1211597
2661576
32713576
44294576
55494576

prune29.0ms (0.9%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New48048
Fresh011
Picked011
Done011
Total48351
Error
0.0b
Counts
51 → 3
Compiler

Compiled 535 to 84 computations (84.3% saved)

localize12.0ms (0.4%)

Local error

Found 4 expressions with local error:

0.0b
(+.f64 (sqrt.f64 x) (sqrt.f64 z))
0.0b
(-.f64 (sqrt.f64 z) (sqrt.f64 x))
0.1b
(*.f64 y (+.f64 (sqrt.f64 x) (sqrt.f64 z)))
0.1b
(*.f64 (*.f64 y (+.f64 (sqrt.f64 x) (sqrt.f64 z))) (-.f64 (sqrt.f64 z) (sqrt.f64 x)))

rewrite147.0ms (4.8%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
31×add-sqr-sqrt_binary64_100
29×*-un-lft-identity_binary64_78
25×sqrt-prod_binary64_94
18×cancel-sign-sub-inv_binary64_44
14×associate-*r*_binary64_18
13×add-cube-cbrt_binary64_113
11×pow1_binary64_139 add-exp-log_binary64_116 add-cbrt-cube_binary64_114
10×associate-*r/_binary64_20
add-log-exp_binary64_117 distribute-rgt-in_binary64_28 distribute-lft-in_binary64_27 difference-of-squares_binary64_47
flip3-+_binary64_81 flip-+_binary64_52
pow-prod-down_binary64_149 prod-exp_binary64_127 cbrt-unprod_binary64_111 flip3--_binary64_82 frac-times_binary64_88 flip--_binary64_53 associate-*l*_binary64_19 distribute-lft-out--_binary64_30 distribute-lft-out_binary64_29
sub-neg_binary64_71
associate-*l/_binary64_21 *-commutative_binary64_9
unswap-sqr_binary64_46 diff-log_binary64_170 sum-log_binary64_169 +-commutative_binary64_8
Counts
4 → 106
Calls

4 calls:

19.0ms
(*.f64 (*.f64 y (+.f64 (sqrt.f64 x) (sqrt.f64 z))) (-.f64 (sqrt.f64 z) (sqrt.f64 x)))
10.0ms
(*.f64 y (+.f64 (sqrt.f64 x) (sqrt.f64 z)))
7.0ms
(-.f64 (sqrt.f64 z) (sqrt.f64 x))
6.0ms
(+.f64 (sqrt.f64 x) (sqrt.f64 z))
Compiler

Compiled 2627 to 486 computations (81.5% saved)

series496.0ms (16%)

Error
0.0b
Counts
4 → 30
Calls

4 calls:

281.0ms
(*.f64 (*.f64 y (+.f64 (sqrt.f64 x) (sqrt.f64 z))) (-.f64 (sqrt.f64 z) (sqrt.f64 x)))
108.0ms
(*.f64 y (+.f64 (sqrt.f64 x) (sqrt.f64 z)))
47.0ms
(-.f64 (sqrt.f64 z) (sqrt.f64 x))
40.0ms
(+.f64 (sqrt.f64 x) (sqrt.f64 z))
Compiler

Compiled 1328 to 794 computations (40.2% saved)

simplify104.0ms (3.3%)

Algorithm
egg-herbie
Rules
374×associate-+r+_binary64_10
370×associate-+l+_binary64_11
290×associate-*l*_binary64_19
223×associate-*r*_binary64_18
193×exp-prod_binary64_130
174×+-commutative_binary64_8
156×unsub-neg_binary64_72
155×neg-sub0_binary64_73
152×*-commutative_binary64_9
151×neg-mul-1_binary64_74
150×distribute-rgt-in_binary64_28
144×distribute-rgt-neg-in_binary64_36
142×distribute-lft-in_binary64_27
123×distribute-rgt-neg-out_binary64_38
120×distribute-lft-neg-in_binary64_35
109×distribute-lft-neg-out_binary64_37
89×exp-sum_binary64_124 sub-neg_binary64_71
83×sqr-pow_binary64_50
78×cancel-sign-sub-inv_binary64_44
63×associate-+l-_binary64_13
62×associate-+r-_binary64_12
60×*-lft-identity_binary64_67
58×associate--r+_binary64_14
48×distribute-rgt-out_binary64_31
37×*-rgt-identity_binary64_68
35×exp-diff_binary64_126 unswap-sqr_binary64_46
34×distribute-neg-in_binary64_39
28×log-prod_binary64_164
25×swap-sqr_binary64_45
24×cube-prod_binary64_106
22×distribute-lft-out_binary64_29
17×distribute-neg-out_binary64_40
16×distribute-rgt-out--_binary64_32
15×exp-neg_binary64_125
14×+-rgt-identity_binary64_63 associate-/l*_binary64_23
13×pow-sqr_binary64_51
12×difference-of-squares_binary64_47
11×div-sub_binary64_83 sub0-neg_binary64_65 associate--l+_binary64_15
cube-unmult_binary64_115
unpow3_binary64_144
rem-sqrt-square_binary64_91 associate--r-_binary64_17
cube-mult_binary64_108
unpow1/2_binary64_142 rem-square-sqrt_binary64_90 associate-/l/_binary64_25 associate-*r/_binary64_20
count-2_binary64_26
unpow2_binary64_143 unpow1_binary64_136 div-exp_binary64_129 prod-exp_binary64_127 1-exp_binary64_122 exp-1-e_binary64_121 rem-3cbrt-lft_binary64_103 mul-1-neg_binary64_70 cancel-sign-sub_binary64_43 associate-/r/_binary64_24 associate-/r*_binary64_22
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_341 erf-erfc_binary64_340 erf-odd_binary64_339 if-if-and-not_binary64_338 if-if-and_binary64_337 if-if-or-not_binary64_336 if-if-or_binary64_335 if-not_binary64_334 if-same_binary64_333 if-false_binary64_332 if-true_binary64_331 not-gte_binary64_330 not-lte_binary64_329 not-gt_binary64_328 not-lt_binary64_327 gte-same_binary64_326 lte-same_binary64_325 gt-same_binary64_324 lt-same_binary64_323 sinh---cosh_binary64_270 sinh-+-cosh_binary64_269 sinh-cosh_binary64_268 tanh-def-c_binary64_267 tanh-def-b_binary64_266 tanh-def-a_binary64_265 cosh-def_binary64_264 sinh-def_binary64_263 tan-neg_binary64_210 cos-neg_binary64_209 sin-neg_binary64_208 tan-0_binary64_207 cos-0_binary64_206 sin-0_binary64_205 hang-m-tan_binary64_204 hang-p-tan_binary64_203 hang-m0-tan_binary64_202 hang-p0-tan_binary64_201 hang-0m-tan_binary64_200 hang-0p-tan_binary64_199 tan-+PI/2_binary64_198 tan-+PI_binary64_197 tan-PI_binary64_196 tan-PI/3_binary64_195 tan-PI/4_binary64_194 tan-PI/6_binary64_193 cos-+PI/2_binary64_192 cos-+PI_binary64_191 cos-PI_binary64_190 cos-PI/2_binary64_189 cos-PI/3_binary64_188 cos-PI/4_binary64_187 cos-PI/6_binary64_186 sin-+PI/2_binary64_185 sin-+PI_binary64_184 sin-PI_binary64_183 sin-PI/2_binary64_182 sin-PI/3_binary64_181 sin-PI/4_binary64_180 sin-PI/6_binary64_179 sub-1-sin_binary64_178 sub-1-cos_binary64_177 -1-add-sin_binary64_176 -1-add-cos_binary64_175 1-sub-sin_binary64_174 1-sub-cos_binary64_173 cos-sin-sum_binary64_172 log-E_binary64_168 log-pow_binary64_167 log-rec_binary64_166 log-div_binary64_165 pow-base-0_binary64_162 unpow1/3_binary64_145 pow-plus_binary64_141 exp-to-pow_binary64_140 pow-base-1_binary64_138 unpow0_binary64_137 unpow-1_binary64_135 exp-lft-cube_binary64_134 exp-lft-sqr_binary64_133 exp-cbrt_binary64_132 exp-sqrt_binary64_131 rec-exp_binary64_128 e-exp-1_binary64_123 exp-0_binary64_120 rem-log-exp_binary64_119 rem-exp-log_binary64_118 cube-div_binary64_107 cube-neg_binary64_105 rem-3cbrt-rft_binary64_104 rem-cbrt-cube_binary64_102 rem-cube-cbrt_binary64_101 sqr-abs_binary64_93 sqr-neg_binary64_92 times-frac_binary64_84 /-rgt-identity_binary64_69 remove-double-neg_binary64_66 --rgt-identity_binary64_64 +-lft-identity_binary64_62 mul0-rgt_binary64_61 mul0-lft_binary64_60 div0_binary64_59 *-inverses_binary64_58 +-inverses_binary64_57 lft-mult-inverse_binary64_56 rgt-mult-inverse_binary64_55 remove-double-div_binary64_54 difference-of-sqr--1_binary64_49 difference-of-sqr-1_binary64_48 distribute-neg-frac_binary64_42 distribute-frac-neg_binary64_41 distribute-rgt1-in_binary64_34 distribute-lft1-in_binary64_33 distribute-lft-out--_binary64_30 associate-*l/_binary64_21 associate--l-_binary64_16
Counts
136 → 104
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01532172
14431993
217421993
325861991
450261991

prune86.0ms (2.8%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New1040104
Fresh000
Picked011
Done022
Total1043107
Error
0.0b
Counts
107 → 3
Compiler

Compiled 1982 to 310 computations (84.4% saved)

regimes122.0ms (3.9%)

Accuracy

Total 0.0b remaining (64.6%)

Threshold costs 0.0b (64.6%)

Compiler

Compiled 576 to 526 computations (8.7% saved)

bsearch0.0ms (0%)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64_9 +-commutative_binary64_8
sub-neg_binary64_71
neg-mul-1_binary64_74 neg-sub0_binary64_73
cancel-sign-sub-inv_binary64_44 distribute-rgt-neg-in_binary64_36
distribute-lft-neg-out_binary64_37 distribute-lft-neg-in_binary64_35
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_338 if-if-and_binary64_337 if-if-or-not_binary64_336 if-if-or_binary64_335 if-not_binary64_334 if-same_binary64_333 if-false_binary64_332 if-true_binary64_331 tan-0_binary64_207 cos-0_binary64_206 sin-0_binary64_205 unpow1_binary64_136 e-exp-1_binary64_123 1-exp_binary64_122 exp-1-e_binary64_121 exp-0_binary64_120 sqr-abs_binary64_93 sqr-neg_binary64_92 unsub-neg_binary64_72 mul-1-neg_binary64_70 /-rgt-identity_binary64_69 *-rgt-identity_binary64_68 *-lft-identity_binary64_67 remove-double-neg_binary64_66 sub0-neg_binary64_65 --rgt-identity_binary64_64 +-rgt-identity_binary64_63 +-lft-identity_binary64_62 cancel-sign-sub_binary64_43 distribute-neg-frac_binary64_42 distribute-frac-neg_binary64_41 distribute-neg-out_binary64_40 distribute-neg-in_binary64_39 distribute-rgt-neg-out_binary64_38
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0813
11613
22613
33213
43613
53713
63713

end0.0ms (0%)

sample674.0ms (21.8%)

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

Compiled 156 to 141 computations (9.6% saved)

Profiling

Loading profile data...