Details

Time bar (total: 32.9s)

analyze2.0s (6.1%)

Algorithm
search
egg-herbie
Rules
752×associate-*r/_binary64_1043
481×*-commutative_binary64_1032
271×cancel-sign-sub-inv_binary64_1067
230×associate-/l*_binary64_1046
224×neg-mul-1_binary64_1097 neg-sub0_binary64_1096
216×unswap-sqr_binary64_1069
205×distribute-rgt-neg-in_binary64_1059
185×distribute-lft-neg-in_binary64_1058
140×distribute-rgt-in_binary64_1051 distribute-lft-in_binary64_1050
129×associate-*l*_binary64_1042
118×associate-/r/_binary64_1047
100×swap-sqr_binary64_1068
94×distribute-neg-frac_binary64_1065
87×sub-neg_binary64_1094
85×sqr-pow_binary64_1073
77×associate-*r*_binary64_1041
72×times-frac_binary64_1107
71×associate-/r*_binary64_1045
48×associate-*l/_binary64_1044
40×unsub-neg_binary64_1095 distribute-lft-neg-out_binary64_1060
29×*-rgt-identity_binary64_1091 *-lft-identity_binary64_1090
21×unpow1/2_binary64_1165
20×div-sub_binary64_1106 distribute-rgt-neg-out_binary64_1061
18×associate-/l/_binary64_1048
10×unpow2_binary64_1166 sub0-neg_binary64_1088 associate-+l-_binary64_1036 +-commutative_binary64_1031
unpow1_binary64_1159 rem-sqrt-square_binary64_1114
1-exp_binary64_1145 swap-M-D
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_1364 erf-erfc_binary64_1363 erf-odd_binary64_1362 if-if-and-not_binary64_1361 if-if-and_binary64_1360 if-if-or-not_binary64_1359 if-if-or_binary64_1358 if-not_binary64_1357 if-same_binary64_1356 if-false_binary64_1355 if-true_binary64_1354 not-gte_binary64_1353 not-lte_binary64_1352 not-gt_binary64_1351 not-lt_binary64_1350 gte-same_binary64_1349 lte-same_binary64_1348 gt-same_binary64_1347 lt-same_binary64_1346 sinh---cosh_binary64_1293 sinh-+-cosh_binary64_1292 sinh-cosh_binary64_1291 tanh-def-c_binary64_1290 tanh-def-b_binary64_1289 tanh-def-a_binary64_1288 cosh-def_binary64_1287 sinh-def_binary64_1286 tan-neg_binary64_1233 cos-neg_binary64_1232 sin-neg_binary64_1231 tan-0_binary64_1230 cos-0_binary64_1229 sin-0_binary64_1228 hang-m-tan_binary64_1227 hang-p-tan_binary64_1226 hang-m0-tan_binary64_1225 hang-p0-tan_binary64_1224 hang-0m-tan_binary64_1223 hang-0p-tan_binary64_1222 tan-+PI/2_binary64_1221 tan-+PI_binary64_1220 tan-PI_binary64_1219 tan-PI/3_binary64_1218 tan-PI/4_binary64_1217 tan-PI/6_binary64_1216 cos-+PI/2_binary64_1215 cos-+PI_binary64_1214 cos-PI_binary64_1213 cos-PI/2_binary64_1212 cos-PI/3_binary64_1211 cos-PI/4_binary64_1210 cos-PI/6_binary64_1209 sin-+PI/2_binary64_1208 sin-+PI_binary64_1207 sin-PI_binary64_1206 sin-PI/2_binary64_1205 sin-PI/3_binary64_1204 sin-PI/4_binary64_1203 sin-PI/6_binary64_1202 sub-1-sin_binary64_1201 sub-1-cos_binary64_1200 -1-add-sin_binary64_1199 -1-add-cos_binary64_1198 1-sub-sin_binary64_1197 1-sub-cos_binary64_1196 cos-sin-sum_binary64_1195 log-E_binary64_1191 log-pow_binary64_1190 log-rec_binary64_1189 log-div_binary64_1188 log-prod_binary64_1187 pow-base-0_binary64_1185 unpow1/3_binary64_1168 unpow3_binary64_1167 pow-plus_binary64_1164 exp-to-pow_binary64_1163 pow-base-1_binary64_1161 unpow0_binary64_1160 unpow-1_binary64_1158 exp-lft-cube_binary64_1157 exp-lft-sqr_binary64_1156 exp-cbrt_binary64_1155 exp-sqrt_binary64_1154 exp-prod_binary64_1153 div-exp_binary64_1152 rec-exp_binary64_1151 prod-exp_binary64_1150 exp-diff_binary64_1149 exp-neg_binary64_1148 exp-sum_binary64_1147 e-exp-1_binary64_1146 exp-1-e_binary64_1144 exp-0_binary64_1143 rem-log-exp_binary64_1142 rem-exp-log_binary64_1141 cube-unmult_binary64_1138 cube-mult_binary64_1131 cube-div_binary64_1130 cube-prod_binary64_1129 cube-neg_binary64_1128 rem-3cbrt-rft_binary64_1127 rem-3cbrt-lft_binary64_1126 rem-cbrt-cube_binary64_1125 rem-cube-cbrt_binary64_1124 sqr-abs_binary64_1116 sqr-neg_binary64_1115 rem-square-sqrt_binary64_1113 mul-1-neg_binary64_1093 /-rgt-identity_binary64_1092 remove-double-neg_binary64_1089 --rgt-identity_binary64_1087 +-rgt-identity_binary64_1086 +-lft-identity_binary64_1085 mul0-rgt_binary64_1084 mul0-lft_binary64_1083 div0_binary64_1082 *-inverses_binary64_1081 +-inverses_binary64_1080 lft-mult-inverse_binary64_1079 rgt-mult-inverse_binary64_1078 remove-double-div_binary64_1077 pow-sqr_binary64_1074 difference-of-sqr--1_binary64_1072 difference-of-sqr-1_binary64_1071 difference-of-squares_binary64_1070 cancel-sign-sub_binary64_1066 distribute-frac-neg_binary64_1064 distribute-neg-out_binary64_1063 distribute-neg-in_binary64_1062 distribute-rgt1-in_binary64_1057 distribute-lft1-in_binary64_1056 distribute-rgt-out--_binary64_1055 distribute-rgt-out_binary64_1054 distribute-lft-out--_binary64_1053 distribute-lft-out_binary64_1052 count-2_binary64_1049 associate--r-_binary64_1040 associate--l-_binary64_1039 associate--l+_binary64_1038 associate--r+_binary64_1037 associate-+r-_binary64_1035 associate-+l+_binary64_1034 associate-+r+_binary64_1033
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0122451
1393451
21448451
34121451
45362451
055
155
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%81.1%18.9%7
0%68.6%31.4%8
0%59.2%40.8%9
0%59.2%40.8%10
0%59.2%40.8%11
0.4%49.5%50.1%12
0.8%44.4%54.8%13
1.4%39.9%58.7%14
Symmetry

(sort M D)

Compiler

Compiled 36 to 32 computations (11.1% saved)

sample150.0ms (0.5%)

Algorithm
intervals
Results
39.0ms256×body128valid
33.0ms276×body128nan
23.0ms164×body128invalid
Compiler

Compiled 71 to 68 computations (4.2% saved)

simplify39.0ms (0.1%)

Algorithm
egg-herbie
Rules
679×distribute-neg-frac_binary64_1065
437×*-commutative_binary64_1032
425×associate-/l*_binary64_1046
347×cancel-sign-sub-inv_binary64_1067
263×associate-/l/_binary64_1048
212×associate-/r/_binary64_1047
203×associate-/r*_binary64_1045
201×neg-sub0_binary64_1096
200×neg-mul-1_binary64_1097
198×distribute-rgt-neg-in_binary64_1059
195×distribute-lft-neg-in_binary64_1058
188×times-frac_binary64_1107
160×associate-*l*_binary64_1042
141×associate-*r*_binary64_1041
136×unswap-sqr_binary64_1069
118×unsub-neg_binary64_1095
107×associate-*l/_binary64_1044
76×associate-*r/_binary64_1043
67×distribute-rgt-in_binary64_1051 distribute-lft-in_binary64_1050
30×distribute-lft-neg-out_binary64_1060
29×sub-neg_binary64_1094
27×distribute-rgt-neg-out_binary64_1061
24×div-sub_binary64_1106
20×swap-sqr_binary64_1068
19×sqr-pow_binary64_1073
14×distribute-rgt-out_binary64_1054 distribute-lft-out_binary64_1052
12×mul0-rgt_binary64_1084 mul0-lft_binary64_1083
*-rgt-identity_binary64_1091 *-lft-identity_binary64_1090
cube-unmult_binary64_1138
pow-plus_binary64_1164
unpow1/2_binary64_1165 +-commutative_binary64_1031
div0_binary64_1082
unpow2_binary64_1166 unpow1_binary64_1159 1-exp_binary64_1145 rem-sqrt-square_binary64_1114 sub0-neg_binary64_1088 associate-+l-_binary64_1036 associate-+l+_binary64_1034
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_1364 erf-erfc_binary64_1363 erf-odd_binary64_1362 if-if-and-not_binary64_1361 if-if-and_binary64_1360 if-if-or-not_binary64_1359 if-if-or_binary64_1358 if-not_binary64_1357 if-same_binary64_1356 if-false_binary64_1355 if-true_binary64_1354 not-gte_binary64_1353 not-lte_binary64_1352 not-gt_binary64_1351 not-lt_binary64_1350 gte-same_binary64_1349 lte-same_binary64_1348 gt-same_binary64_1347 lt-same_binary64_1346 sinh---cosh_binary64_1293 sinh-+-cosh_binary64_1292 sinh-cosh_binary64_1291 tanh-def-c_binary64_1290 tanh-def-b_binary64_1289 tanh-def-a_binary64_1288 cosh-def_binary64_1287 sinh-def_binary64_1286 tan-neg_binary64_1233 cos-neg_binary64_1232 sin-neg_binary64_1231 tan-0_binary64_1230 cos-0_binary64_1229 sin-0_binary64_1228 hang-m-tan_binary64_1227 hang-p-tan_binary64_1226 hang-m0-tan_binary64_1225 hang-p0-tan_binary64_1224 hang-0m-tan_binary64_1223 hang-0p-tan_binary64_1222 tan-+PI/2_binary64_1221 tan-+PI_binary64_1220 tan-PI_binary64_1219 tan-PI/3_binary64_1218 tan-PI/4_binary64_1217 tan-PI/6_binary64_1216 cos-+PI/2_binary64_1215 cos-+PI_binary64_1214 cos-PI_binary64_1213 cos-PI/2_binary64_1212 cos-PI/3_binary64_1211 cos-PI/4_binary64_1210 cos-PI/6_binary64_1209 sin-+PI/2_binary64_1208 sin-+PI_binary64_1207 sin-PI_binary64_1206 sin-PI/2_binary64_1205 sin-PI/3_binary64_1204 sin-PI/4_binary64_1203 sin-PI/6_binary64_1202 sub-1-sin_binary64_1201 sub-1-cos_binary64_1200 -1-add-sin_binary64_1199 -1-add-cos_binary64_1198 1-sub-sin_binary64_1197 1-sub-cos_binary64_1196 cos-sin-sum_binary64_1195 log-E_binary64_1191 log-pow_binary64_1190 log-rec_binary64_1189 log-div_binary64_1188 log-prod_binary64_1187 pow-base-0_binary64_1185 unpow1/3_binary64_1168 unpow3_binary64_1167 exp-to-pow_binary64_1163 pow-base-1_binary64_1161 unpow0_binary64_1160 unpow-1_binary64_1158 exp-lft-cube_binary64_1157 exp-lft-sqr_binary64_1156 exp-cbrt_binary64_1155 exp-sqrt_binary64_1154 exp-prod_binary64_1153 div-exp_binary64_1152 rec-exp_binary64_1151 prod-exp_binary64_1150 exp-diff_binary64_1149 exp-neg_binary64_1148 exp-sum_binary64_1147 e-exp-1_binary64_1146 exp-1-e_binary64_1144 exp-0_binary64_1143 rem-log-exp_binary64_1142 rem-exp-log_binary64_1141 cube-mult_binary64_1131 cube-div_binary64_1130 cube-prod_binary64_1129 cube-neg_binary64_1128 rem-3cbrt-rft_binary64_1127 rem-3cbrt-lft_binary64_1126 rem-cbrt-cube_binary64_1125 rem-cube-cbrt_binary64_1124 sqr-abs_binary64_1116 sqr-neg_binary64_1115 rem-square-sqrt_binary64_1113 mul-1-neg_binary64_1093 /-rgt-identity_binary64_1092 remove-double-neg_binary64_1089 --rgt-identity_binary64_1087 +-rgt-identity_binary64_1086 +-lft-identity_binary64_1085 *-inverses_binary64_1081 +-inverses_binary64_1080 lft-mult-inverse_binary64_1079 rgt-mult-inverse_binary64_1078 remove-double-div_binary64_1077 pow-sqr_binary64_1074 difference-of-sqr--1_binary64_1072 difference-of-sqr-1_binary64_1071 difference-of-squares_binary64_1070 cancel-sign-sub_binary64_1066 distribute-frac-neg_binary64_1064 distribute-neg-out_binary64_1063 distribute-neg-in_binary64_1062 distribute-rgt1-in_binary64_1057 distribute-lft1-in_binary64_1056 distribute-rgt-out--_binary64_1055 distribute-lft-out--_binary64_1053 count-2_binary64_1049 associate--r-_binary64_1040 associate--l-_binary64_1039 associate--l+_binary64_1038 associate--r+_binary64_1037 associate-+r-_binary64_1035 associate-+r+_binary64_1033
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02441
16241
218841
3106041
4349041
5520541

prune5.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 54 to 46 computations (14.8% saved)

localize20.0ms (0.1%)

Local error

Found 4 expressions with local error:

5.2b
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
10.4b
(sqrt.f64 (/.f64 d h))
11.0b
(sqrt.f64 (/.f64 d l))
13.3b
(*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))

rewrite437.0ms (1.3%)

Algorithm
rewrite-expression-head
Error
12.6b
Rules
77×add-exp-log_binary64_1139
41×prod-exp_binary64_1150
32×add-sqr-sqrt_binary64_1123
29×times-frac_binary64_1107
26×add-cube-cbrt_binary64_1136 *-un-lft-identity_binary64_1101 sqrt-prod_binary64_1117
21×add-cbrt-cube_binary64_1137
16×div-exp_binary64_1152 associate-*r*_binary64_1041
14×sqrt-div_binary64_1118
13×pow1_binary64_1162
10×pow-exp_binary64_1169
cbrt-unprod_binary64_1134 frac-times_binary64_1111
associate-*r/_binary64_1043 associate-*l/_binary64_1044
pow-prod-down_binary64_1172 add-log-exp_binary64_1140 rem-sqrt-square_binary64_1114 flip3--_binary64_1105 flip--_binary64_1076
div-inv_binary64_1098
pow-to-exp_binary64_1170 cbrt-undiv_binary64_1135 associate-*l*_binary64_1042 *-commutative_binary64_1032 pow1/2_binary64_1181 sqrt-pow1_binary64_1119 sub-neg_binary64_1094 distribute-rgt-in_binary64_1051 cancel-sign-sub-inv_binary64_1067 distribute-lft-in_binary64_1050
Counts
4 → 127
Calls

4 calls:

21.0ms
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
12.0ms
(*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))
3.0ms
(sqrt.f64 (/.f64 d h))
3.0ms
(sqrt.f64 (/.f64 d l))
Compiler

Compiled 4714 to 2207 computations (53.2% saved)

series2.4s (7.2%)

Error
20.0b
Counts
4 → 50
Calls

4 calls:

1.4s
(*.f64 (*.f64 (sqrt.f64 (/.f64 d h)) (sqrt.f64 (/.f64 d l))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
871.0ms
(*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))
57.0ms
(sqrt.f64 (/.f64 d l))
53.0ms
(sqrt.f64 (/.f64 d h))
Compiler

Compiled 2658 to 2317 computations (12.8% saved)

simplify164.0ms (0.5%)

Algorithm
egg-herbie
Rules
383×associate-*l*_binary64_1042
313×associate-*r*_binary64_1041
302×distribute-rgt-in_binary64_1051
278×distribute-lft-in_binary64_1050
200×*-commutative_binary64_1032
193×distribute-rgt-neg-in_binary64_1059
175×distribute-lft-neg-in_binary64_1058
138×cancel-sign-sub-inv_binary64_1067
134×log-prod_binary64_1187
130×exp-prod_binary64_1153
126×associate-/l*_binary64_1046
110×associate-*r/_binary64_1043
88×times-frac_binary64_1107 associate-*l/_binary64_1044
75×unswap-sqr_binary64_1069
74×distribute-neg-frac_binary64_1065
68×associate-/r*_binary64_1045
60×sqr-pow_binary64_1073
53×cube-prod_binary64_1129
49×log-div_binary64_1188
48×distribute-lft-neg-out_binary64_1060
44×swap-sqr_binary64_1068
40×neg-sub0_binary64_1096
39×*-lft-identity_binary64_1090
38×unpow3_binary64_1167
37×distribute-rgt-neg-out_binary64_1061
36×sub-neg_binary64_1094 *-rgt-identity_binary64_1091
35×+-commutative_binary64_1031
33×neg-mul-1_binary64_1097
31×associate-/l/_binary64_1048
28×associate-/r/_binary64_1047
21×associate-+l+_binary64_1034
18×distribute-rgt-out_binary64_1054
15×cube-div_binary64_1130
14×distribute-lft-out_binary64_1052
11×log-pow_binary64_1190 unpow1/2_binary64_1165
10×rem-sqrt-square_binary64_1114
cube-unmult_binary64_1138
/-rgt-identity_binary64_1092 associate-+r-_binary64_1035
pow-plus_binary64_1164 associate-+r+_binary64_1033
unpow2_binary64_1166 unpow1_binary64_1159 mul-1-neg_binary64_1093
cube-mult_binary64_1131 unsub-neg_binary64_1095 distribute-rgt1-in_binary64_1057
exp-sqrt_binary64_1154 pow-sqr_binary64_1074 associate--l+_binary64_1038 associate--r+_binary64_1037
exp-sum_binary64_1147 rem-square-sqrt_binary64_1113 distribute-neg-in_binary64_1062
div-sub_binary64_1106 distribute-lft1-in_binary64_1056
exp-diff_binary64_1149 1-exp_binary64_1145 exp-1-e_binary64_1144 associate-+l-_binary64_1036
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_1364 erf-erfc_binary64_1363 erf-odd_binary64_1362 if-if-and-not_binary64_1361 if-if-and_binary64_1360 if-if-or-not_binary64_1359 if-if-or_binary64_1358 if-not_binary64_1357 if-same_binary64_1356 if-false_binary64_1355 if-true_binary64_1354 not-gte_binary64_1353 not-lte_binary64_1352 not-gt_binary64_1351 not-lt_binary64_1350 gte-same_binary64_1349 lte-same_binary64_1348 gt-same_binary64_1347 lt-same_binary64_1346 sinh---cosh_binary64_1293 sinh-+-cosh_binary64_1292 sinh-cosh_binary64_1291 tanh-def-c_binary64_1290 tanh-def-b_binary64_1289 tanh-def-a_binary64_1288 cosh-def_binary64_1287 sinh-def_binary64_1286 tan-neg_binary64_1233 cos-neg_binary64_1232 sin-neg_binary64_1231 tan-0_binary64_1230 cos-0_binary64_1229 sin-0_binary64_1228 hang-m-tan_binary64_1227 hang-p-tan_binary64_1226 hang-m0-tan_binary64_1225 hang-p0-tan_binary64_1224 hang-0m-tan_binary64_1223 hang-0p-tan_binary64_1222 tan-+PI/2_binary64_1221 tan-+PI_binary64_1220 tan-PI_binary64_1219 tan-PI/3_binary64_1218 tan-PI/4_binary64_1217 tan-PI/6_binary64_1216 cos-+PI/2_binary64_1215 cos-+PI_binary64_1214 cos-PI_binary64_1213 cos-PI/2_binary64_1212 cos-PI/3_binary64_1211 cos-PI/4_binary64_1210 cos-PI/6_binary64_1209 sin-+PI/2_binary64_1208 sin-+PI_binary64_1207 sin-PI_binary64_1206 sin-PI/2_binary64_1205 sin-PI/3_binary64_1204 sin-PI/4_binary64_1203 sin-PI/6_binary64_1202 sub-1-sin_binary64_1201 sub-1-cos_binary64_1200 -1-add-sin_binary64_1199 -1-add-cos_binary64_1198 1-sub-sin_binary64_1197 1-sub-cos_binary64_1196 cos-sin-sum_binary64_1195 log-E_binary64_1191 log-rec_binary64_1189 pow-base-0_binary64_1185 unpow1/3_binary64_1168 exp-to-pow_binary64_1163 pow-base-1_binary64_1161 unpow0_binary64_1160 unpow-1_binary64_1158 exp-lft-cube_binary64_1157 exp-lft-sqr_binary64_1156 exp-cbrt_binary64_1155 div-exp_binary64_1152 rec-exp_binary64_1151 prod-exp_binary64_1150 exp-neg_binary64_1148 e-exp-1_binary64_1146 exp-0_binary64_1143 rem-log-exp_binary64_1142 rem-exp-log_binary64_1141 cube-neg_binary64_1128 rem-3cbrt-rft_binary64_1127 rem-3cbrt-lft_binary64_1126 rem-cbrt-cube_binary64_1125 rem-cube-cbrt_binary64_1124 sqr-abs_binary64_1116 sqr-neg_binary64_1115 remove-double-neg_binary64_1089 sub0-neg_binary64_1088 --rgt-identity_binary64_1087 +-rgt-identity_binary64_1086 +-lft-identity_binary64_1085 mul0-rgt_binary64_1084 mul0-lft_binary64_1083 div0_binary64_1082 *-inverses_binary64_1081 +-inverses_binary64_1080 lft-mult-inverse_binary64_1079 rgt-mult-inverse_binary64_1078 remove-double-div_binary64_1077 difference-of-sqr--1_binary64_1072 difference-of-sqr-1_binary64_1071 difference-of-squares_binary64_1070 cancel-sign-sub_binary64_1066 distribute-frac-neg_binary64_1064 distribute-neg-out_binary64_1063 distribute-rgt-out--_binary64_1055 distribute-lft-out--_binary64_1053 count-2_binary64_1049 associate--r-_binary64_1040 associate--l-_binary64_1039
Counts
177 → 126
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03324611
17604377
228174371
347734371
449794371

prune190.0ms (0.6%)

Pruning

21 alts after pruning (21 fresh and 0 done)

PrunedKeptTotal
New10521126
Fresh000
Picked101
Done000
Total10621127
Error
10.6b
Counts
127 → 21
Compiler

Compiled 2987 to 1629 computations (45.5% saved)

localize27.0ms (0.1%)

Local error

Found 4 expressions with local error:

3.9b
(/.f64 (*.f64 M D) (*.f64 d 2))
5.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
11.0b
(sqrt.f64 (/.f64 d l))
13.3b
(*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))

rewrite385.0ms (1.2%)

Algorithm
rewrite-expression-head
Error
8.6b
Rules
93×add-exp-log_binary64_1139
48×prod-exp_binary64_1150
37×add-cbrt-cube_binary64_1137
22×add-sqr-sqrt_binary64_1123
20×div-exp_binary64_1152 times-frac_binary64_1107
19×add-cube-cbrt_binary64_1136 *-un-lft-identity_binary64_1101
16×pow1_binary64_1162 cbrt-unprod_binary64_1134 associate-*r*_binary64_1041
13×sqrt-div_binary64_1118 sqrt-prod_binary64_1117
12×associate-*r/_binary64_1043
10×pow-exp_binary64_1169
frac-times_binary64_1111
pow-prod-down_binary64_1172
cbrt-undiv_binary64_1135 associate-*l/_binary64_1044
add-log-exp_binary64_1140 flip3--_binary64_1105 flip--_binary64_1076
div-inv_binary64_1098
pow-to-exp_binary64_1170 associate-*l*_binary64_1042 *-commutative_binary64_1032 rem-sqrt-square_binary64_1114 sub-neg_binary64_1094 distribute-rgt-in_binary64_1051 cancel-sign-sub-inv_binary64_1067 distribute-lft-in_binary64_1050
pow1/2_binary64_1181 sqrt-pow1_binary64_1119 frac-2neg_binary64_1112 clear-num_binary64_1100 associate-/l*_binary64_1046 associate-/r*_binary64_1045
Counts
4 → 126
Calls

4 calls:

23.0ms
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
12.0ms
(*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))
6.0ms
(/.f64 (*.f64 M D) (*.f64 d 2))
3.0ms
(sqrt.f64 (/.f64 d l))
Compiler

Compiled 5947 to 2215 computations (62.8% saved)

series3.8s (11.7%)

Error
10.6b
Counts
4 → 51
Calls

4 calls:

2.7s
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (sqrt.f64 (/.f64 d l))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
878.0ms
(*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))
199.0ms
(/.f64 (*.f64 M D) (*.f64 d 2))
64.0ms
(sqrt.f64 (/.f64 d l))
Compiler

Compiled 4504 to 3652 computations (18.9% saved)

simplify238.0ms (0.7%)

Algorithm
egg-herbie
Rules
655×associate-*l*_binary64_1042
521×associate-*r*_binary64_1041
298×*-commutative_binary64_1032
213×log-prod_binary64_1187
210×times-frac_binary64_1107
176×associate-/l*_binary64_1046
141×associate-*r/_binary64_1043
122×log-div_binary64_1188
117×associate-*l/_binary64_1044
101×associate-/r*_binary64_1045
96×cube-prod_binary64_1129
95×exp-prod_binary64_1153 sqr-pow_binary64_1073
59×distribute-rgt-in_binary64_1051
58×distribute-lft-in_binary64_1050
51×sub-neg_binary64_1094
49×neg-sub0_binary64_1096
42×*-lft-identity_binary64_1090
41×neg-mul-1_binary64_1097
40×+-commutative_binary64_1031
39×*-rgt-identity_binary64_1091
36×cube-div_binary64_1130
28×distribute-rgt-neg-in_binary64_1059
27×associate-+l+_binary64_1034
24×cancel-sign-sub-inv_binary64_1067
23×swap-sqr_binary64_1068 distribute-lft-neg-in_binary64_1058
21×associate-/r/_binary64_1047
20×associate-/l/_binary64_1048
16×log-pow_binary64_1190
13×cube-unmult_binary64_1138
10×associate-+r+_binary64_1033
mul-1-neg_binary64_1093 /-rgt-identity_binary64_1092
exp-sum_binary64_1147 associate-+r-_binary64_1035
rem-sqrt-square_binary64_1114 div-sub_binary64_1106
unpow3_binary64_1167 pow-plus_binary64_1164 unsub-neg_binary64_1095 pow-sqr_binary64_1074 unswap-sqr_binary64_1069 distribute-neg-frac_binary64_1065 distribute-lft-neg-out_binary64_1060
unpow1/2_binary64_1165 exp-sqrt_binary64_1154
unpow1/3_binary64_1168 unpow2_binary64_1166 unpow1_binary64_1159 exp-diff_binary64_1149 cube-mult_binary64_1131 associate--l+_binary64_1038 associate--r+_binary64_1037
distribute-rgt-neg-out_binary64_1061 distribute-rgt-out_binary64_1054
rem-square-sqrt_binary64_1113 distribute-neg-in_binary64_1062 distribute-rgt1-in_binary64_1057 distribute-lft-out_binary64_1052 associate-+l-_binary64_1036
log-rec_binary64_1189 exp-neg_binary64_1148 1-exp_binary64_1145 exp-1-e_binary64_1144 sqr-abs_binary64_1116 distribute-frac-neg_binary64_1064 distribute-neg-out_binary64_1063 associate--r-_binary64_1040 associate--l-_binary64_1039
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_1364 erf-erfc_binary64_1363 erf-odd_binary64_1362 if-if-and-not_binary64_1361 if-if-and_binary64_1360 if-if-or-not_binary64_1359 if-if-or_binary64_1358 if-not_binary64_1357 if-same_binary64_1356 if-false_binary64_1355 if-true_binary64_1354 not-gte_binary64_1353 not-lte_binary64_1352 not-gt_binary64_1351 not-lt_binary64_1350 gte-same_binary64_1349 lte-same_binary64_1348 gt-same_binary64_1347 lt-same_binary64_1346 sinh---cosh_binary64_1293 sinh-+-cosh_binary64_1292 sinh-cosh_binary64_1291 tanh-def-c_binary64_1290 tanh-def-b_binary64_1289 tanh-def-a_binary64_1288 cosh-def_binary64_1287 sinh-def_binary64_1286 tan-neg_binary64_1233 cos-neg_binary64_1232 sin-neg_binary64_1231 tan-0_binary64_1230 cos-0_binary64_1229 sin-0_binary64_1228 hang-m-tan_binary64_1227 hang-p-tan_binary64_1226 hang-m0-tan_binary64_1225 hang-p0-tan_binary64_1224 hang-0m-tan_binary64_1223 hang-0p-tan_binary64_1222 tan-+PI/2_binary64_1221 tan-+PI_binary64_1220 tan-PI_binary64_1219 tan-PI/3_binary64_1218 tan-PI/4_binary64_1217 tan-PI/6_binary64_1216 cos-+PI/2_binary64_1215 cos-+PI_binary64_1214 cos-PI_binary64_1213 cos-PI/2_binary64_1212 cos-PI/3_binary64_1211 cos-PI/4_binary64_1210 cos-PI/6_binary64_1209 sin-+PI/2_binary64_1208 sin-+PI_binary64_1207 sin-PI_binary64_1206 sin-PI/2_binary64_1205 sin-PI/3_binary64_1204 sin-PI/4_binary64_1203 sin-PI/6_binary64_1202 sub-1-sin_binary64_1201 sub-1-cos_binary64_1200 -1-add-sin_binary64_1199 -1-add-cos_binary64_1198 1-sub-sin_binary64_1197 1-sub-cos_binary64_1196 cos-sin-sum_binary64_1195 log-E_binary64_1191 pow-base-0_binary64_1185 exp-to-pow_binary64_1163 pow-base-1_binary64_1161 unpow0_binary64_1160 unpow-1_binary64_1158 exp-lft-cube_binary64_1157 exp-lft-sqr_binary64_1156 exp-cbrt_binary64_1155 div-exp_binary64_1152 rec-exp_binary64_1151 prod-exp_binary64_1150 e-exp-1_binary64_1146 exp-0_binary64_1143 rem-log-exp_binary64_1142 rem-exp-log_binary64_1141 cube-neg_binary64_1128 rem-3cbrt-rft_binary64_1127 rem-3cbrt-lft_binary64_1126 rem-cbrt-cube_binary64_1125 rem-cube-cbrt_binary64_1124 sqr-neg_binary64_1115 remove-double-neg_binary64_1089 sub0-neg_binary64_1088 --rgt-identity_binary64_1087 +-rgt-identity_binary64_1086 +-lft-identity_binary64_1085 mul0-rgt_binary64_1084 mul0-lft_binary64_1083 div0_binary64_1082 *-inverses_binary64_1081 +-inverses_binary64_1080 lft-mult-inverse_binary64_1079 rgt-mult-inverse_binary64_1078 remove-double-div_binary64_1077 difference-of-sqr--1_binary64_1072 difference-of-sqr-1_binary64_1071 difference-of-squares_binary64_1070 cancel-sign-sub_binary64_1066 distribute-lft1-in_binary64_1056 distribute-rgt-out--_binary64_1055 distribute-lft-out--_binary64_1053 count-2_binary64_1049
Counts
177 → 136
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
03926191
19825748
241415747
348495747
449975747
549475747

prune217.0ms (0.7%)

Pruning

25 alts after pruning (25 fresh and 0 done)

PrunedKeptTotal
New12412136
Fresh71320
Picked101
Done000
Total13225157
Error
9.4b
Counts
157 → 25
Compiler

Compiled 3873 to 1824 computations (52.9% saved)

localize36.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.6b
(cbrt.f64 h)
3.9b
(/.f64 (*.f64 M D) (*.f64 d 2))
5.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
13.3b
(*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))

rewrite417.0ms (1.3%)

Algorithm
rewrite-expression-head
Error
7.4b
Rules
102×add-exp-log_binary64_1139
55×prod-exp_binary64_1150
46×add-cbrt-cube_binary64_1137
24×pow1_binary64_1162
23×cbrt-unprod_binary64_1134
20×div-exp_binary64_1152
18×associate-*r/_binary64_1043
16×associate-*r*_binary64_1041
14×pow-prod-down_binary64_1172
13×add-cube-cbrt_binary64_1136 add-sqr-sqrt_binary64_1123 *-un-lft-identity_binary64_1101
12×sqrt-div_binary64_1118
10×pow-exp_binary64_1169 times-frac_binary64_1107
frac-times_binary64_1111
cbrt-undiv_binary64_1135 associate-*l/_binary64_1044
add-log-exp_binary64_1140 flip3--_binary64_1105 flip--_binary64_1076
cbrt-prod_binary64_1132
pow-to-exp_binary64_1170 associate-*l*_binary64_1042 div-inv_binary64_1098 *-commutative_binary64_1032 sub-neg_binary64_1094 distribute-rgt-in_binary64_1051 cancel-sign-sub-inv_binary64_1067 distribute-lft-in_binary64_1050
frac-2neg_binary64_1112 clear-num_binary64_1100 associate-/l*_binary64_1046 associate-/r*_binary64_1045 pow1/3_binary64_1183
Counts
4 → 118
Calls

4 calls:

31.0ms
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
12.0ms
(*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))
6.0ms
(/.f64 (*.f64 M D) (*.f64 d 2))
1.0ms
(cbrt.f64 h)
Compiler

Compiled 6839 to 2143 computations (68.7% saved)

series4.7s (14.4%)

Error
7.9b
Counts
4 → 51
Calls

4 calls:

3.5s
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))))
859.0ms
(*.f64 (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 d 2)) 2)) (/.f64 h l))
209.0ms
(/.f64 (*.f64 M D) (*.f64 d 2))
110.0ms
(cbrt.f64 h)
Compiler

Compiled 5721 to 4254 computations (25.6% saved)

simplify224.0ms (0.7%)

Algorithm
egg-herbie
Rules
431×*-commutative_binary64_1032
211×times-frac_binary64_1107
184×associate-/l*_binary64_1046
163×log-prod_binary64_1187
160×distribute-rgt-neg-in_binary64_1059
147×associate-*r/_binary64_1043
138×log-div_binary64_1188
117×unswap-sqr_binary64_1069
116×associate-/r*_binary64_1045 associate-*l/_binary64_1044
115×sqr-pow_binary64_1073
113×distribute-neg-frac_binary64_1065
98×cancel-sign-sub-inv_binary64_1067
88×associate-*r*_binary64_1041
87×associate-*l*_binary64_1042
83×exp-prod_binary64_1153 swap-sqr_binary64_1068
70×sub-neg_binary64_1094
67×distribute-rgt-in_binary64_1051
66×distribute-lft-in_binary64_1050
65×cube-prod_binary64_1129
56×neg-sub0_binary64_1096
54×neg-mul-1_binary64_1097
47×distribute-lft-neg-out_binary64_1060 +-commutative_binary64_1031
42×distribute-rgt-neg-out_binary64_1061
41×cube-div_binary64_1130
37×associate-+l+_binary64_1034
29×distribute-lft-neg-in_binary64_1058
28×*-rgt-identity_binary64_1091
25×div-sub_binary64_1106
22×*-lft-identity_binary64_1090
20×cube-unmult_binary64_1138
19×exp-diff_binary64_1149 associate-/r/_binary64_1047
18×exp-sum_binary64_1147
16×log-pow_binary64_1190 unsub-neg_binary64_1095 associate-+r+_binary64_1033
15×associate-/l/_binary64_1048 associate-+r-_binary64_1035
12×pow-sqr_binary64_1074
10×distribute-neg-out_binary64_1063
unpow1/3_binary64_1168
rem-sqrt-square_binary64_1114
associate-+l-_binary64_1036
exp-neg_binary64_1148 /-rgt-identity_binary64_1092 distribute-frac-neg_binary64_1064
unpow3_binary64_1167 unpow1/2_binary64_1165 exp-sqrt_binary64_1154
log-rec_binary64_1189 unpow2_binary64_1166 pow-plus_binary64_1164 exp-to-pow_binary64_1163 unpow1_binary64_1159 distribute-neg-in_binary64_1062 associate--l+_binary64_1038 associate--r+_binary64_1037
cube-mult_binary64_1131 distribute-rgt-out_binary64_1054
sqr-abs_binary64_1116 rem-square-sqrt_binary64_1113 mul-1-neg_binary64_1093 distribute-rgt1-in_binary64_1057 distribute-lft-out_binary64_1052 associate--l-_binary64_1039
1-exp_binary64_1145 exp-1-e_binary64_1144 rem-3cbrt-lft_binary64_1126
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_1364 erf-erfc_binary64_1363 erf-odd_binary64_1362 if-if-and-not_binary64_1361 if-if-and_binary64_1360 if-if-or-not_binary64_1359 if-if-or_binary64_1358 if-not_binary64_1357 if-same_binary64_1356 if-false_binary64_1355 if-true_binary64_1354 not-gte_binary64_1353 not-lte_binary64_1352 not-gt_binary64_1351 not-lt_binary64_1350 gte-same_binary64_1349 lte-same_binary64_1348 gt-same_binary64_1347 lt-same_binary64_1346 sinh---cosh_binary64_1293 sinh-+-cosh_binary64_1292 sinh-cosh_binary64_1291 tanh-def-c_binary64_1290 tanh-def-b_binary64_1289 tanh-def-a_binary64_1288 cosh-def_binary64_1287 sinh-def_binary64_1286 tan-neg_binary64_1233 cos-neg_binary64_1232 sin-neg_binary64_1231 tan-0_binary64_1230 cos-0_binary64_1229 sin-0_binary64_1228 hang-m-tan_binary64_1227 hang-p-tan_binary64_1226 hang-m0-tan_binary64_1225 hang-p0-tan_binary64_1224 hang-0m-tan_binary64_1223 hang-0p-tan_binary64_1222 tan-+PI/2_binary64_1221 tan-+PI_binary64_1220 tan-PI_binary64_1219 tan-PI/3_binary64_1218 tan-PI/4_binary64_1217 tan-PI/6_binary64_1216 cos-+PI/2_binary64_1215 cos-+PI_binary64_1214 cos-PI_binary64_1213 cos-PI/2_binary64_1212 cos-PI/3_binary64_1211 cos-PI/4_binary64_1210 cos-PI/6_binary64_1209 sin-+PI/2_binary64_1208 sin-+PI_binary64_1207 sin-PI_binary64_1206 sin-PI/2_binary64_1205 sin-PI/3_binary64_1204 sin-PI/4_binary64_1203 sin-PI/6_binary64_1202 sub-1-sin_binary64_1201 sub-1-cos_binary64_1200 -1-add-sin_binary64_1199 -1-add-cos_binary64_1198 1-sub-sin_binary64_1197 1-sub-cos_binary64_1196 cos-sin-sum_binary64_1195 log-E_binary64_1191 pow-base-0_binary64_1185 pow-base-1_binary64_1161 unpow0_binary64_1160 unpow-1_binary64_1158 exp-lft-cube_binary64_1157 exp-lft-sqr_binary64_1156 exp-cbrt_binary64_1155 div-exp_binary64_1152 rec-exp_binary64_1151 prod-exp_binary64_1150 e-exp-1_binary64_1146 exp-0_binary64_1143 rem-log-exp_binary64_1142 rem-exp-log_binary64_1141 cube-neg_binary64_1128 rem-3cbrt-rft_binary64_1127 rem-cbrt-cube_binary64_1125 rem-cube-cbrt_binary64_1124 sqr-neg_binary64_1115 remove-double-neg_binary64_1089 sub0-neg_binary64_1088 --rgt-identity_binary64_1087 +-rgt-identity_binary64_1086 +-lft-identity_binary64_1085 mul0-rgt_binary64_1084 mul0-lft_binary64_1083 div0_binary64_1082 *-inverses_binary64_1081 +-inverses_binary64_1080 lft-mult-inverse_binary64_1079 rgt-mult-inverse_binary64_1078 remove-double-div_binary64_1077 difference-of-sqr--1_binary64_1072 difference-of-sqr-1_binary64_1071 difference-of-squares_binary64_1070 cancel-sign-sub_binary64_1066 distribute-lft1-in_binary64_1056 distribute-rgt-out--_binary64_1055 distribute-lft-out--_binary64_1053 count-2_binary64_1049 associate--r-_binary64_1040
Counts
169 → 141
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04267854
111227098
231727097
348587097
449667097

prune238.0ms (0.7%)

Pruning

29 alts after pruning (29 fresh and 0 done)

PrunedKeptTotal
New1347141
Fresh22224
Picked101
Done000
Total13729166
Error
7.9b
Counts
166 → 29
Compiler

Compiled 4771 to 2027 computations (57.5% saved)

localize32.0ms (0.1%)

Local error

Found 4 expressions with local error:

3.9b
(/.f64 (*.f64 M D) (*.f64 2 d))
5.2b
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (/.f64 (*.f64 h (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2))) l)))
5.8b
(*.f64 h (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)))
7.2b
(/.f64 (*.f64 h (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2))) l)

rewrite473.0ms (1.4%)

Algorithm
rewrite-expression-head
Error
7.0b
Rules
104×add-exp-log_binary64_1139
55×prod-exp_binary64_1150
48×add-cbrt-cube_binary64_1137
24×pow1_binary64_1162
23×cbrt-unprod_binary64_1134
21×div-exp_binary64_1152
17×associate-*r/_binary64_1043
15×add-sqr-sqrt_binary64_1123 *-un-lft-identity_binary64_1101
14×pow-prod-down_binary64_1172 cancel-sign-sub-inv_binary64_1067
12×add-cube-cbrt_binary64_1136 sqrt-div_binary64_1118
10×pow-exp_binary64_1169 times-frac_binary64_1107
frac-times_binary64_1111
distribute-rgt-in_binary64_1051 distribute-lft-in_binary64_1050
cbrt-undiv_binary64_1135 associate-*r*_binary64_1041
associate-*l/_binary64_1044
add-log-exp_binary64_1140 div-inv_binary64_1098 associate-/r*_binary64_1045 associate-*l*_binary64_1042 flip3--_binary64_1105 flip--_binary64_1076
pow-to-exp_binary64_1170 frac-2neg_binary64_1112 clear-num_binary64_1100 associate-/l*_binary64_1046 *-commutative_binary64_1032 sub-neg_binary64_1094 difference-of-squares_binary64_1070
distribute-lft-out--_binary64_1053
Counts
4 → 130
Calls

4 calls:

36.0ms
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (/.f64 (*.f64 h (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2))) l)))
11.0ms
(/.f64 (*.f64 h (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2))) l)
8.0ms
(*.f64 h (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)))
6.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))
Compiler

Compiled 7829 to 2531 computations (67.7% saved)

series5.2s (15.7%)

Error
7.9b
Counts
4 → 60
Calls

4 calls:

3.5s
(*.f64 (*.f64 (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 h)))) (*.f64 (fabs.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))) (sqrt.f64 (/.f64 (cbrt.f64 d) (cbrt.f64 l))))) (-.f64 1 (/.f64 (*.f64 h (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2))) l)))
849.0ms
(/.f64 (*.f64 h (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2))) l)
596.0ms
(*.f64 h (*.f64 1/2 (pow.f64 (/.f64 (*.f64 M D) (*.f64 2 d)) 2)))
197.0ms
(/.f64 (*.f64 M D) (*.f64 2 d))
Compiler

Compiled 6513 to 4790 computations (26.5% saved)

simplify269.0ms (0.8%)

Algorithm
egg-herbie
Rules
451×*-commutative_binary64_1032
227×times-frac_binary64_1107
213×associate-/l*_binary64_1046
160×log-prod_binary64_1187
148×log-div_binary64_1188
147×associate-*r/_binary64_1043
138×associate-*l/_binary64_1044
135×distribute-neg-frac_binary64_1065
128×associate-/r*_binary64_1045
104×sqr-pow_binary64_1073
102×associate-*r*_binary64_1041
94×unpow3_binary64_1167
88×distribute-rgt-neg-out_binary64_1061
87×sub-neg_binary64_1094 swap-sqr_binary64_1068
83×associate-*l*_binary64_1042
82×neg-mul-1_binary64_1097 neg-sub0_binary64_1096 cancel-sign-sub-inv_binary64_1067
71×distribute-rgt-in_binary64_1051
70×distribute-lft-in_binary64_1050
67×exp-prod_binary64_1153
66×cube-prod_binary64_1129
55×cube-div_binary64_1130 unswap-sqr_binary64_1069
48×+-commutative_binary64_1031
45×associate-/r/_binary64_1047
36×div-sub_binary64_1106
33×*-rgt-identity_binary64_1091
31×distribute-lft-neg-out_binary64_1060
30×distribute-rgt-neg-in_binary64_1059
25×associate-+l+_binary64_1034
23×*-lft-identity_binary64_1090
22×unsub-neg_binary64_1095 distribute-lft-neg-in_binary64_1058 associate-/l/_binary64_1048
20×associate-+r+_binary64_1033
18×exp-sum_binary64_1147
17×exp-diff_binary64_1149 cube-unmult_binary64_1138
15×associate--l+_binary64_1038
14×distribute-frac-neg_binary64_1064
12×log-pow_binary64_1190
10×distribute-neg-out_binary64_1063
pow-sqr_binary64_1074
unpow1/3_binary64_1168 associate-+r-_binary64_1035
exp-neg_binary64_1148 associate-+l-_binary64_1036
log-rec_binary64_1189 rem-sqrt-square_binary64_1114
unpow2_binary64_1166 unpow1/2_binary64_1165 pow-plus_binary64_1164 exp-to-pow_binary64_1163 unpow1_binary64_1159 cube-mult_binary64_1131 /-rgt-identity_binary64_1092 associate--r+_binary64_1037
exp-sqrt_binary64_1154 rem-square-sqrt_binary64_1113 div0_binary64_1082
sqr-abs_binary64_1116 distribute-neg-in_binary64_1062 distribute-rgt1-in_binary64_1057 associate--l-_binary64_1039
1-exp_binary64_1145 exp-1-e_binary64_1144 rem-3cbrt-lft_binary64_1126 mul-1-neg_binary64_1093 distribute-rgt-out_binary64_1054
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_1364 erf-erfc_binary64_1363 erf-odd_binary64_1362 if-if-and-not_binary64_1361 if-if-and_binary64_1360 if-if-or-not_binary64_1359 if-if-or_binary64_1358 if-not_binary64_1357 if-same_binary64_1356 if-false_binary64_1355 if-true_binary64_1354 not-gte_binary64_1353 not-lte_binary64_1352 not-gt_binary64_1351 not-lt_binary64_1350 gte-same_binary64_1349 lte-same_binary64_1348 gt-same_binary64_1347 lt-same_binary64_1346 sinh---cosh_binary64_1293 sinh-+-cosh_binary64_1292 sinh-cosh_binary64_1291 tanh-def-c_binary64_1290 tanh-def-b_binary64_1289 tanh-def-a_binary64_1288 cosh-def_binary64_1287 sinh-def_binary64_1286 tan-neg_binary64_1233 cos-neg_binary64_1232 sin-neg_binary64_1231 tan-0_binary64_1230 cos-0_binary64_1229 sin-0_binary64_1228 hang-m-tan_binary64_1227 hang-p-tan_binary64_1226 hang-m0-tan_binary64_1225 hang-p0-tan_binary64_1224 hang-0m-tan_binary64_1223 hang-0p-tan_binary64_1222 tan-+PI/2_binary64_1221 tan-+PI_binary64_1220 tan-PI_binary64_1219 tan-PI/3_binary64_1218 tan-PI/4_binary64_1217 tan-PI/6_binary64_1216 cos-+PI/2_binary64_1215 cos-+PI_binary64_1214 cos-PI_binary64_1213 cos-PI/2_binary64_1212 cos-PI/3_binary64_1211 cos-PI/4_binary64_1210 cos-PI/6_binary64_1209 sin-+PI/2_binary64_1208 sin-+PI_binary64_1207 sin-PI_binary64_1206 sin-PI/2_binary64_1205 sin-PI/3_binary64_1204 sin-PI/4_binary64_1203 sin-PI/6_binary64_1202 sub-1-sin_binary64_1201 sub-1-cos_binary64_1200 -1-add-sin_binary64_1199 -1-add-cos_binary64_1198 1-sub-sin_binary64_1197 1-sub-cos_binary64_1196 cos-sin-sum_binary64_1195 log-E_binary64_1191 pow-base-0_binary64_1185 pow-base-1_binary64_1161 unpow0_binary64_1160 unpow-1_binary64_1158 exp-lft-cube_binary64_1157 exp-lft-sqr_binary64_1156 exp-cbrt_binary64_1155 div-exp_binary64_1152 rec-exp_binary64_1151 prod-exp_binary64_1150 e-exp-1_binary64_1146 exp-0_binary64_1143 rem-log-exp_binary64_1142 rem-exp-log_binary64_1141 cube-neg_binary64_1128 rem-3cbrt-rft_binary64_1127 rem-cbrt-cube_binary64_1125 rem-cube-cbrt_binary64_1124 sqr-neg_binary64_1115 remove-double-neg_binary64_1089 sub0-neg_binary64_1088 --rgt-identity_binary64_1087 +-rgt-identity_binary64_1086 +-lft-identity_binary64_1085 mul0-rgt_binary64_1084 mul0-lft_binary64_1083 *-inverses_binary64_1081 +-inverses_binary64_1080 lft-mult-inverse_binary64_1079 rgt-mult-inverse_binary64_1078 remove-double-div_binary64_1077 difference-of-sqr--1_binary64_1072 difference-of-sqr-1_binary64_1071 difference-of-squares_binary64_1070 cancel-sign-sub_binary64_1066 distribute-lft1-in_binary64_1056 distribute-rgt-out--_binary64_1055 distribute-lft-out--_binary64_1053 distribute-lft-out_binary64_1052 count-2_binary64_1049 associate--r-_binary64_1040
Counts
190 → 138
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
04379932
111829027
233959026
347419026
449639026

prune137.0ms (0.4%)

Pruning

28 alts after pruning (28 fresh and 0 done)

PrunedKeptTotal
New1362138
Fresh22628
Picked101
Done000
Total13928167
Error
7.2b
Counts
167 → 28
Compiler

Compiled 2627 to 916 computations (65.1% saved)

regimes6.3s (19%)

Accuracy

Total 3.8b remaining (28.3%)

Threshold costs 0b (0%)

Compiler

Compiled 78985 to 56866 computations (28% saved)

bsearch23.0ms (0.1%)

Compiler

Compiled 35 to 31 computations (11.4% saved)

simplify26.0ms (0.1%)

Algorithm
egg-herbie
Rules
40×*-commutative_binary64_1032
22×sub-neg_binary64_1094 +-commutative_binary64_1031
21×neg-mul-1_binary64_1097 neg-sub0_binary64_1096
18×distribute-rgt-neg-in_binary64_1059
16×distribute-lft-neg-in_binary64_1058
cancel-sign-sub-inv_binary64_1067 distribute-lft-neg-out_binary64_1060
distribute-neg-frac_binary64_1065 distribute-rgt-neg-out_binary64_1061
unsub-neg_binary64_1095
1-exp_binary64_1145 *-lft-identity_binary64_1090
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_1361 if-if-and_binary64_1360 if-if-or-not_binary64_1359 if-if-or_binary64_1358 if-not_binary64_1357 if-same_binary64_1356 if-false_binary64_1355 if-true_binary64_1354 tan-0_binary64_1230 cos-0_binary64_1229 sin-0_binary64_1228 unpow1_binary64_1159 e-exp-1_binary64_1146 exp-1-e_binary64_1144 exp-0_binary64_1143 sqr-abs_binary64_1116 sqr-neg_binary64_1115 mul-1-neg_binary64_1093 /-rgt-identity_binary64_1092 *-rgt-identity_binary64_1091 remove-double-neg_binary64_1089 sub0-neg_binary64_1088 --rgt-identity_binary64_1087 +-rgt-identity_binary64_1086 +-lft-identity_binary64_1085 cancel-sign-sub_binary64_1066 distribute-frac-neg_binary64_1064 distribute-neg-out_binary64_1063 distribute-neg-in_binary64_1062
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
066360
191360
2109360
3131360
4156360
5172360
6183360
7195360
8214360
9227360
10237360
11241360
12237360

end32.0ms (0.1%)

Remove

(sort M D)

Compiler

Compiled 675 to 282 computations (58.2% saved)

sample4.7s (14.4%)

Algorithm
intervals
Results
1.1s8000×body128valid
1.0s8301×body128nan
642.0ms4749×body128invalid
Compiler

Compiled 1409 to 933 computations (33.8% saved)

Profiling

Loading profile data...