Details

Time bar (total: 6.5s)

analyze101.0ms (1.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
25%74.9%0.1%5
25%74.9%0.1%6
56.2%43.7%0.1%7
56.2%43.7%0.1%8
76.5%23.4%0.1%9
76.5%23.4%0.1%10
87.8%12.1%0.1%11
87.8%12.1%0.1%12
93.8%6.1%0.1%13
93.8%6.1%0.1%14
Compiler

Compiled 10 to 8 computations (20% saved)

sample15.0ms (0.2%)

Algorithm
intervals
Results
7.0ms256×body128valid
Compiler

Compiled 19 to 17 computations (10.5% saved)

simplify572.0ms (8.9%)

Algorithm
egg-herbie
Rules
676×exp-prod_binary64_10019
450×neg-mul-1_binary64_9963
449×div-sub_binary64_9972
305×distribute-rgt-out_binary64_9920
276×distribute-rgt-out--_binary64_9921
252×distribute-rgt-neg-out_binary64_9927
242×cancel-sign-sub-inv_binary64_9933
212×distribute-lft-neg-out_binary64_9926
209×unsub-neg_binary64_9961
176×associate-*l/_binary64_9910
173×distribute-frac-neg_binary64_9930
169×*-commutative_binary64_9898
128×associate-/l/_binary64_9914
122×associate-*r/_binary64_9909
114×associate-/l*_binary64_9912
111×times-frac_binary64_9973
103×associate-/r*_binary64_9911
97×associate-*r*_binary64_9907
94×associate-*l*_binary64_9908
90×associate-/r/_binary64_9913
81×distribute-neg-frac_binary64_9931
77×sub-neg_binary64_9960
61×neg-sub0_binary64_9962
45×distribute-lft-out--_binary64_9919
42×swap-sqr_binary64_9934
37×distribute-rgt-in_binary64_9917
35×cancel-sign-sub_binary64_9932
33×+-commutative_binary64_9897
30×distribute-lft-in_binary64_9916
25×distribute-lft-neg-in_binary64_9924
23×*-rgt-identity_binary64_9957
22×distribute-rgt-neg-in_binary64_9925 associate-+r-_binary64_9901
20×sqr-neg_binary64_9981 distribute-rgt1-in_binary64_9923
16×cube-prod_binary64_9995 mul0-lft_binary64_9949
15×exp-sum_binary64_10013 distribute-lft-out_binary64_9918 associate-+r+_binary64_9899
14×*-lft-identity_binary64_9956 mul0-rgt_binary64_9950 associate-+l-_binary64_9902
13×associate--r+_binary64_9903
12×/-rgt-identity_binary64_9958 distribute-neg-in_binary64_9928
10×exp-diff_binary64_10015 exp-neg_binary64_10014 cube-div_binary64_9996 +-rgt-identity_binary64_9952 div0_binary64_9948
associate-+l+_binary64_9900
pow-plus_binary64_10030
exp-lft-sqr_binary64_10022 associate--r-_binary64_9906
remove-double-neg_binary64_9955 sub0-neg_binary64_9954
cube-unmult_binary64_10004 --rgt-identity_binary64_9953 +-lft-identity_binary64_9951 *-inverses_binary64_9947 associate--l-_binary64_9905 associate--l+_binary64_9904
exp-sqrt_binary64_10020 rem-sqrt-square_binary64_9980 distribute-neg-out_binary64_9929 distribute-lft1-in_binary64_9922 count-2_binary64_9915
div-exp_binary64_10018 1-exp_binary64_10011 exp-1-e_binary64_10010
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_10230 erf-erfc_binary64_10229 erf-odd_binary64_10228 if-if-and-not_binary64_10227 if-if-and_binary64_10226 if-if-or-not_binary64_10225 if-if-or_binary64_10224 if-not_binary64_10223 if-same_binary64_10222 if-false_binary64_10221 if-true_binary64_10220 not-gte_binary64_10219 not-lte_binary64_10218 not-gt_binary64_10217 not-lt_binary64_10216 gte-same_binary64_10215 lte-same_binary64_10214 gt-same_binary64_10213 lt-same_binary64_10212 sinh---cosh_binary64_10159 sinh-+-cosh_binary64_10158 sinh-cosh_binary64_10157 tanh-def-c_binary64_10156 tanh-def-b_binary64_10155 tanh-def-a_binary64_10154 cosh-def_binary64_10153 sinh-def_binary64_10152 tan-neg_binary64_10099 cos-neg_binary64_10098 sin-neg_binary64_10097 tan-0_binary64_10096 cos-0_binary64_10095 sin-0_binary64_10094 hang-m-tan_binary64_10093 hang-p-tan_binary64_10092 hang-m0-tan_binary64_10091 hang-p0-tan_binary64_10090 hang-0m-tan_binary64_10089 hang-0p-tan_binary64_10088 tan-+PI/2_binary64_10087 tan-+PI_binary64_10086 tan-PI_binary64_10085 tan-PI/3_binary64_10084 tan-PI/4_binary64_10083 tan-PI/6_binary64_10082 cos-+PI/2_binary64_10081 cos-+PI_binary64_10080 cos-PI_binary64_10079 cos-PI/2_binary64_10078 cos-PI/3_binary64_10077 cos-PI/4_binary64_10076 cos-PI/6_binary64_10075 sin-+PI/2_binary64_10074 sin-+PI_binary64_10073 sin-PI_binary64_10072 sin-PI/2_binary64_10071 sin-PI/3_binary64_10070 sin-PI/4_binary64_10069 sin-PI/6_binary64_10068 sub-1-sin_binary64_10067 sub-1-cos_binary64_10066 -1-add-sin_binary64_10065 -1-add-cos_binary64_10064 1-sub-sin_binary64_10063 1-sub-cos_binary64_10062 cos-sin-sum_binary64_10061 log-E_binary64_10057 log-pow_binary64_10056 log-rec_binary64_10055 log-div_binary64_10054 log-prod_binary64_10053 pow-base-0_binary64_10051 unpow1/3_binary64_10034 unpow3_binary64_10033 unpow2_binary64_10032 unpow1/2_binary64_10031 exp-to-pow_binary64_10029 pow-base-1_binary64_10027 unpow0_binary64_10026 unpow1_binary64_10025 unpow-1_binary64_10024 exp-lft-cube_binary64_10023 exp-cbrt_binary64_10021 rec-exp_binary64_10017 prod-exp_binary64_10016 e-exp-1_binary64_10012 exp-0_binary64_10009 rem-log-exp_binary64_10008 rem-exp-log_binary64_10007 cube-mult_binary64_9997 cube-neg_binary64_9994 rem-3cbrt-rft_binary64_9993 rem-3cbrt-lft_binary64_9992 rem-cbrt-cube_binary64_9991 rem-cube-cbrt_binary64_9990 sqr-abs_binary64_9982 rem-square-sqrt_binary64_9979 mul-1-neg_binary64_9959 +-inverses_binary64_9946 lft-mult-inverse_binary64_9945 rgt-mult-inverse_binary64_9944 remove-double-div_binary64_9943 pow-sqr_binary64_9940 sqr-pow_binary64_9939 difference-of-sqr--1_binary64_9938 difference-of-sqr-1_binary64_9937 difference-of-squares_binary64_9936 unswap-sqr_binary64_9935
Counts
1 → 4
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0813
11913
25213
311113
421913
543613
6154213
7377013

prune6.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New314
Fresh011
Picked000
Done000
Total325
Error
0.1b
Counts
5 → 2
Compiler

Compiled 54 to 33 computations (38.9% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(/.f64 (-.f64 x y) (*.f64 y 2))
9.0b
(/.f64 (/.f64 (-.f64 x y) (*.f64 y 2)) x)

rewrite110.0ms (1.7%)

Algorithm
rewrite-expression-head
Error
0b
Rules
52×times-frac_binary64_9973
34×add-sqr-sqrt_binary64_9989 *-un-lft-identity_binary64_9967
22×add-cube-cbrt_binary64_10002
16×add-exp-log_binary64_10005 add-cbrt-cube_binary64_10003
14×associate-/l*_binary64_9912
div-exp_binary64_10018 cbrt-undiv_binary64_10001
difference-of-squares_binary64_9936 distribute-lft-out--_binary64_9919 div-inv_binary64_9964
associate-/r*_binary64_9911
div-sub_binary64_9972 associate-/l/_binary64_9914
pow1_binary64_10028 prod-exp_binary64_10016 add-log-exp_binary64_10006 cbrt-unprod_binary64_10000 frac-2neg_binary64_9978 clear-num_binary64_9966
flip3--_binary64_9971 flip--_binary64_9942
Counts
2 → 85
Calls

2 calls:

13.0ms
(/.f64 (/.f64 (-.f64 x y) (*.f64 y 2)) x)
7.0ms
(/.f64 (-.f64 x y) (*.f64 y 2))
Compiler

Compiled 1481 to 664 computations (55.2% saved)

series345.0ms (5.3%)

Error
0.0b
Counts
2 → 24
Calls

2 calls:

195.0ms
(/.f64 (/.f64 (-.f64 x y) (*.f64 y 2)) x)
133.0ms
(/.f64 (-.f64 x y) (*.f64 y 2))
Compiler

Compiled 456 to 396 computations (13.2% saved)

simplify218.0ms (3.4%)

Algorithm
egg-herbie
Rules
834×div-sub_binary64_9972
640×associate-/l*_binary64_9912
626×associate-/r*_binary64_9911
296×associate-*l*_binary64_9908
291×associate-*l/_binary64_9910
262×associate-/r/_binary64_9913
232×associate-*r*_binary64_9907
217×associate-*r/_binary64_9909
144×*-commutative_binary64_9898
134×associate-/l/_binary64_9914
106×distribute-rgt-in_binary64_9917
103×distribute-lft-in_binary64_9916
61×log-div_binary64_10054
60×times-frac_binary64_9973
59×sub-neg_binary64_9960
43×log-prod_binary64_10053 cube-div_binary64_9996
29×cube-prod_binary64_9995 +-commutative_binary64_9897
24×neg-mul-1_binary64_9963
23×neg-sub0_binary64_9962
22×exp-prod_binary64_10019 distribute-neg-frac_binary64_9931
18×/-rgt-identity_binary64_9958 cancel-sign-sub-inv_binary64_9933
17×*-rgt-identity_binary64_9957
15×associate-+l-_binary64_9902
14×distribute-rgt-neg-in_binary64_9925 associate-+l+_binary64_9900
13×distribute-lft-neg-in_binary64_9924
12×distribute-rgt-out_binary64_9920
11×associate--l+_binary64_9904
10×associate-+r+_binary64_9899
div-exp_binary64_10018 prod-exp_binary64_10016 swap-sqr_binary64_9934 distribute-neg-in_binary64_9928 associate-+r-_binary64_9901
exp-sqrt_binary64_10020 exp-diff_binary64_10015 cube-unmult_binary64_10004 associate--l-_binary64_9905
exp-sum_binary64_10013 sqr-pow_binary64_9939
unpow3_binary64_10033 cube-mult_binary64_9997 distribute-lft-neg-out_binary64_9926 associate--r+_binary64_9903
*-lft-identity_binary64_9956 associate--r-_binary64_9906
log-rec_binary64_10055 distribute-rgt-neg-out_binary64_9927
rec-exp_binary64_10017 unsub-neg_binary64_9961
*-inverses_binary64_9947 distribute-rgt-out--_binary64_9921 distribute-lft-out_binary64_9918
log-pow_binary64_10056 pow-plus_binary64_10030 exp-to-pow_binary64_10029 1-exp_binary64_10011 exp-1-e_binary64_10010 rem-log-exp_binary64_10008 cube-neg_binary64_9994 sqr-neg_binary64_9981 remove-double-neg_binary64_9955 sub0-neg_binary64_9954 div0_binary64_9948 distribute-frac-neg_binary64_9930 distribute-neg-out_binary64_9929 distribute-lft-out--_binary64_9919
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_10230 erf-erfc_binary64_10229 erf-odd_binary64_10228 if-if-and-not_binary64_10227 if-if-and_binary64_10226 if-if-or-not_binary64_10225 if-if-or_binary64_10224 if-not_binary64_10223 if-same_binary64_10222 if-false_binary64_10221 if-true_binary64_10220 not-gte_binary64_10219 not-lte_binary64_10218 not-gt_binary64_10217 not-lt_binary64_10216 gte-same_binary64_10215 lte-same_binary64_10214 gt-same_binary64_10213 lt-same_binary64_10212 sinh---cosh_binary64_10159 sinh-+-cosh_binary64_10158 sinh-cosh_binary64_10157 tanh-def-c_binary64_10156 tanh-def-b_binary64_10155 tanh-def-a_binary64_10154 cosh-def_binary64_10153 sinh-def_binary64_10152 tan-neg_binary64_10099 cos-neg_binary64_10098 sin-neg_binary64_10097 tan-0_binary64_10096 cos-0_binary64_10095 sin-0_binary64_10094 hang-m-tan_binary64_10093 hang-p-tan_binary64_10092 hang-m0-tan_binary64_10091 hang-p0-tan_binary64_10090 hang-0m-tan_binary64_10089 hang-0p-tan_binary64_10088 tan-+PI/2_binary64_10087 tan-+PI_binary64_10086 tan-PI_binary64_10085 tan-PI/3_binary64_10084 tan-PI/4_binary64_10083 tan-PI/6_binary64_10082 cos-+PI/2_binary64_10081 cos-+PI_binary64_10080 cos-PI_binary64_10079 cos-PI/2_binary64_10078 cos-PI/3_binary64_10077 cos-PI/4_binary64_10076 cos-PI/6_binary64_10075 sin-+PI/2_binary64_10074 sin-+PI_binary64_10073 sin-PI_binary64_10072 sin-PI/2_binary64_10071 sin-PI/3_binary64_10070 sin-PI/4_binary64_10069 sin-PI/6_binary64_10068 sub-1-sin_binary64_10067 sub-1-cos_binary64_10066 -1-add-sin_binary64_10065 -1-add-cos_binary64_10064 1-sub-sin_binary64_10063 1-sub-cos_binary64_10062 cos-sin-sum_binary64_10061 log-E_binary64_10057 pow-base-0_binary64_10051 unpow1/3_binary64_10034 unpow2_binary64_10032 unpow1/2_binary64_10031 pow-base-1_binary64_10027 unpow0_binary64_10026 unpow1_binary64_10025 unpow-1_binary64_10024 exp-lft-cube_binary64_10023 exp-lft-sqr_binary64_10022 exp-cbrt_binary64_10021 exp-neg_binary64_10014 e-exp-1_binary64_10012 exp-0_binary64_10009 rem-exp-log_binary64_10007 rem-3cbrt-rft_binary64_9993 rem-3cbrt-lft_binary64_9992 rem-cbrt-cube_binary64_9991 rem-cube-cbrt_binary64_9990 sqr-abs_binary64_9982 rem-sqrt-square_binary64_9980 rem-square-sqrt_binary64_9979 mul-1-neg_binary64_9959 --rgt-identity_binary64_9953 +-rgt-identity_binary64_9952 +-lft-identity_binary64_9951 mul0-rgt_binary64_9950 mul0-lft_binary64_9949 +-inverses_binary64_9946 lft-mult-inverse_binary64_9945 rgt-mult-inverse_binary64_9944 remove-double-div_binary64_9943 pow-sqr_binary64_9940 difference-of-sqr--1_binary64_9938 difference-of-sqr-1_binary64_9937 difference-of-squares_binary64_9936 unswap-sqr_binary64_9935 cancel-sign-sub_binary64_9932 distribute-rgt1-in_binary64_9923 distribute-lft1-in_binary64_9922 count-2_binary64_9915
Counts
109 → 266
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01551930
13851734
211831723
342631723

prune239.0ms (3.7%)

Pruning

4 alts after pruning (4 fresh and 0 done)

PrunedKeptTotal
New2624266
Fresh101
Picked101
Done000
Total2644268
Error
0b
Counts
268 → 4
Compiler

Compiled 4533 to 1760 computations (61.2% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

0.0b
(-.f64 (/.f64 1/2 y) (/.f64 1/2 x))

rewrite52.0ms (0.8%)

Algorithm
rewrite-expression-head
Error
0b
Rules
22×add-sqr-sqrt_binary64_9989
19×times-frac_binary64_9973
18×*-un-lft-identity_binary64_9967
13×cancel-sign-sub-inv_binary64_9933
10×add-cube-cbrt_binary64_10002
distribute-lft-out--_binary64_9919
difference-of-squares_binary64_9936
add-log-exp_binary64_10006 div-inv_binary64_9964
diff-log_binary64_10059 pow1_binary64_10028 add-exp-log_binary64_10005 add-cbrt-cube_binary64_10003 frac-sub_binary64_9976 flip3--_binary64_9971 sub-neg_binary64_9960 flip--_binary64_9942
Counts
1 → 34
Calls

1 calls:

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

Compiled 537 to 407 computations (24.2% saved)

series164.0ms (2.5%)

Error
0b
Counts
1 → 12
Calls

1 calls:

156.0ms
(-.f64 (/.f64 1/2 y) (/.f64 1/2 x))
Compiler

Compiled 234 to 224 computations (4.3% saved)

simplify288.0ms (4.5%)

Algorithm
egg-herbie
Rules
333×exp-prod_binary64_10019
301×associate-*l*_binary64_9908
290×div-sub_binary64_9972
256×associate-/l*_binary64_9912
241×associate-*r*_binary64_9907
214×unsub-neg_binary64_9961
212×associate-*l/_binary64_9910
165×distribute-lft-neg-out_binary64_9926
139×times-frac_binary64_9973 associate-*r/_binary64_9909
132×cancel-sign-sub-inv_binary64_9933
129×exp-diff_binary64_10015
125×distribute-rgt-neg-out_binary64_9927
112×sub-neg_binary64_9960
103×distribute-frac-neg_binary64_9930
92×distribute-rgt-out_binary64_9920
91×neg-sub0_binary64_9962 distribute-neg-frac_binary64_9931
89×*-commutative_binary64_9898
87×associate-/l/_binary64_9914
82×distribute-rgt-neg-in_binary64_9925
80×associate-/r*_binary64_9911
75×distribute-rgt-in_binary64_9917
74×distribute-lft-out_binary64_9918
73×distribute-lft-in_binary64_9916
69×+-commutative_binary64_9897
64×neg-mul-1_binary64_9963
61×sqr-pow_binary64_9939 associate-+l-_binary64_9902
59×swap-sqr_binary64_9934
55×exp-neg_binary64_10014 distribute-lft-neg-in_binary64_9924
54×cube-prod_binary64_9995
48×exp-sum_binary64_10013
45×associate--l-_binary64_9905
44×unswap-sqr_binary64_9935
43×distribute-neg-out_binary64_9929 associate-/r/_binary64_9913
42×associate-+r+_binary64_9899
36×associate-+l+_binary64_9900
35×*-lft-identity_binary64_9956
34×unpow3_binary64_10033 cube-div_binary64_9996
28×difference-of-squares_binary64_9936
27×mul0-rgt_binary64_9950 mul0-lft_binary64_9949
25×*-rgt-identity_binary64_9957 distribute-rgt-out--_binary64_9921
24×log-prod_binary64_10053
20×pow-sqr_binary64_9940
18×div0_binary64_9948
16×/-rgt-identity_binary64_9958
14×log-div_binary64_10054 associate-+r-_binary64_9901
12×remove-double-div_binary64_9943
11×sub0-neg_binary64_9954
10×div-exp_binary64_10018 cube-unmult_binary64_10004 +-rgt-identity_binary64_9952 associate--r+_binary64_9903
pow-plus_binary64_10030 prod-exp_binary64_10016
cube-mult_binary64_9997
log-pow_binary64_10056 log-rec_binary64_10055 unpow1/2_binary64_10031 distribute-lft-out--_binary64_9919
rem-sqrt-square_binary64_9980
rec-exp_binary64_10017 rem-square-sqrt_binary64_9979 mul-1-neg_binary64_9959
rem-3cbrt-lft_binary64_9992 distribute-neg-in_binary64_9928
pow-base-1_binary64_10027 1-exp_binary64_10011 exp-1-e_binary64_10010 rem-3cbrt-rft_binary64_9993 sqr-neg_binary64_9981 --rgt-identity_binary64_9953 distribute-rgt1-in_binary64_9923 count-2_binary64_9915
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_10230 erf-erfc_binary64_10229 erf-odd_binary64_10228 if-if-and-not_binary64_10227 if-if-and_binary64_10226 if-if-or-not_binary64_10225 if-if-or_binary64_10224 if-not_binary64_10223 if-same_binary64_10222 if-false_binary64_10221 if-true_binary64_10220 not-gte_binary64_10219 not-lte_binary64_10218 not-gt_binary64_10217 not-lt_binary64_10216 gte-same_binary64_10215 lte-same_binary64_10214 gt-same_binary64_10213 lt-same_binary64_10212 sinh---cosh_binary64_10159 sinh-+-cosh_binary64_10158 sinh-cosh_binary64_10157 tanh-def-c_binary64_10156 tanh-def-b_binary64_10155 tanh-def-a_binary64_10154 cosh-def_binary64_10153 sinh-def_binary64_10152 tan-neg_binary64_10099 cos-neg_binary64_10098 sin-neg_binary64_10097 tan-0_binary64_10096 cos-0_binary64_10095 sin-0_binary64_10094 hang-m-tan_binary64_10093 hang-p-tan_binary64_10092 hang-m0-tan_binary64_10091 hang-p0-tan_binary64_10090 hang-0m-tan_binary64_10089 hang-0p-tan_binary64_10088 tan-+PI/2_binary64_10087 tan-+PI_binary64_10086 tan-PI_binary64_10085 tan-PI/3_binary64_10084 tan-PI/4_binary64_10083 tan-PI/6_binary64_10082 cos-+PI/2_binary64_10081 cos-+PI_binary64_10080 cos-PI_binary64_10079 cos-PI/2_binary64_10078 cos-PI/3_binary64_10077 cos-PI/4_binary64_10076 cos-PI/6_binary64_10075 sin-+PI/2_binary64_10074 sin-+PI_binary64_10073 sin-PI_binary64_10072 sin-PI/2_binary64_10071 sin-PI/3_binary64_10070 sin-PI/4_binary64_10069 sin-PI/6_binary64_10068 sub-1-sin_binary64_10067 sub-1-cos_binary64_10066 -1-add-sin_binary64_10065 -1-add-cos_binary64_10064 1-sub-sin_binary64_10063 1-sub-cos_binary64_10062 cos-sin-sum_binary64_10061 log-E_binary64_10057 pow-base-0_binary64_10051 unpow1/3_binary64_10034 unpow2_binary64_10032 exp-to-pow_binary64_10029 unpow0_binary64_10026 unpow1_binary64_10025 unpow-1_binary64_10024 exp-lft-cube_binary64_10023 exp-lft-sqr_binary64_10022 exp-cbrt_binary64_10021 exp-sqrt_binary64_10020 e-exp-1_binary64_10012 exp-0_binary64_10009 rem-log-exp_binary64_10008 rem-exp-log_binary64_10007 cube-neg_binary64_9994 rem-cbrt-cube_binary64_9991 rem-cube-cbrt_binary64_9990 sqr-abs_binary64_9982 remove-double-neg_binary64_9955 +-lft-identity_binary64_9951 *-inverses_binary64_9947 +-inverses_binary64_9946 lft-mult-inverse_binary64_9945 rgt-mult-inverse_binary64_9944 difference-of-sqr--1_binary64_9938 difference-of-sqr-1_binary64_9937 cancel-sign-sub_binary64_9932 distribute-lft1-in_binary64_9922 associate--r-_binary64_9906 associate--l+_binary64_9904
Counts
46 → 38
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0108600
1285552
2750552
32601549
44434549

prune33.0ms (0.5%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New38038
Fresh033
Picked011
Done000
Total38442
Error
0b
Counts
42 → 4
Compiler

Compiled 431 to 327 computations (24.1% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(-.f64 (/.f64 (*.f64 x 1/2) y) 1/2)
9.0b
(/.f64 (-.f64 (/.f64 (*.f64 x 1/2) y) 1/2) x)

rewrite80.0ms (1.2%)

Algorithm
rewrite-expression-head
Error
0b
Rules
23×add-sqr-sqrt_binary64_9989 *-un-lft-identity_binary64_9967
15×times-frac_binary64_9973
13×add-cube-cbrt_binary64_10002
difference-of-squares_binary64_9936 distribute-lft-out--_binary64_9919 associate-/l*_binary64_9912
add-exp-log_binary64_10005 add-log-exp_binary64_10006 add-cbrt-cube_binary64_10003
associate-/r*_binary64_9911 cancel-sign-sub-inv_binary64_9933
pow1_binary64_10028 flip3--_binary64_9971 associate-/l/_binary64_9914 flip--_binary64_9942
div-exp_binary64_10018 cbrt-undiv_binary64_10001 frac-2neg_binary64_9978 div-sub_binary64_9972 clear-num_binary64_9966 div-inv_binary64_9964 diff-log_binary64_10059 sub-neg_binary64_9960
Counts
2 → 54
Calls

2 calls:

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

Compiled 1016 to 719 computations (29.2% saved)

series314.0ms (4.9%)

Error
0b
Counts
2 → 24
Calls

2 calls:

185.0ms
(/.f64 (-.f64 (/.f64 (*.f64 x 1/2) y) 1/2) x)
115.0ms
(-.f64 (/.f64 (*.f64 x 1/2) y) 1/2)
Compiler

Compiled 456 to 396 computations (13.2% saved)

simplify377.0ms (5.8%)

Algorithm
egg-herbie
Rules
331×associate-*l*_binary64_9908
275×associate-*r*_binary64_9907
224×div-sub_binary64_9972
215×associate-/l*_binary64_9912
207×distribute-rgt-out_binary64_9920
180×exp-prod_binary64_10019
179×cancel-sign-sub-inv_binary64_9933
172×distribute-rgt-neg-out_binary64_9927
167×associate-*l/_binary64_9910
165×distribute-lft-neg-out_binary64_9926
140×distribute-lft-out_binary64_9918
133×times-frac_binary64_9973
118×associate-*r/_binary64_9909
113×associate-/l/_binary64_9914
110×unswap-sqr_binary64_9935
99×associate-/r*_binary64_9911
97×cube-prod_binary64_9995
94×unsub-neg_binary64_9961
73×distribute-rgt-in_binary64_9917
72×distribute-lft-in_binary64_9916
66×sqr-pow_binary64_9939
65×sub-neg_binary64_9960
63×log-prod_binary64_10053
58×distribute-rgt-out--_binary64_9921
57×distribute-frac-neg_binary64_9930
56×associate-/r/_binary64_9913
55×cube-div_binary64_9996
54×*-commutative_binary64_9898
53×distribute-rgt-neg-in_binary64_9925
52×distribute-neg-frac_binary64_9931
49×distribute-lft-neg-in_binary64_9924
48×swap-sqr_binary64_9934
46×neg-sub0_binary64_9962
42×distribute-lft-out--_binary64_9919
39×exp-sum_binary64_10013
38×neg-mul-1_binary64_9963
29×+-commutative_binary64_9897
27×*-rgt-identity_binary64_9957
26×*-lft-identity_binary64_9956
24×/-rgt-identity_binary64_9958 pow-sqr_binary64_9940
22×difference-of-squares_binary64_9936
15×log-div_binary64_10054 exp-diff_binary64_10015 mul0-lft_binary64_9949 distribute-neg-in_binary64_9928
14×mul0-rgt_binary64_9950 distribute-neg-out_binary64_9929
13×distribute-rgt1-in_binary64_9923
12×unpow3_binary64_10033
10×div-exp_binary64_10018 cube-mult_binary64_9997
prod-exp_binary64_10016 cube-unmult_binary64_10004
sub0-neg_binary64_9954 associate-+l-_binary64_9902 associate-+r-_binary64_9901
exp-neg_binary64_10014 +-rgt-identity_binary64_9952 distribute-lft1-in_binary64_9922
rem-sqrt-square_binary64_9980 associate-+l+_binary64_9900
unpow1/2_binary64_10031 mul-1-neg_binary64_9959 remove-double-neg_binary64_9955 associate-+r+_binary64_9899
rec-exp_binary64_10017 associate--r+_binary64_9903
log-pow_binary64_10056 log-rec_binary64_10055 pow-plus_binary64_10030 sqr-neg_binary64_9981 difference-of-sqr--1_binary64_9938 associate--r-_binary64_9906
1-exp_binary64_10011 exp-1-e_binary64_10010 rem-log-exp_binary64_10008 cube-neg_binary64_9994 rem-3cbrt-lft_binary64_9992 rem-square-sqrt_binary64_9979 --rgt-identity_binary64_9953 div0_binary64_9948 *-inverses_binary64_9947 associate--l-_binary64_9905
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_10230 erf-erfc_binary64_10229 erf-odd_binary64_10228 if-if-and-not_binary64_10227 if-if-and_binary64_10226 if-if-or-not_binary64_10225 if-if-or_binary64_10224 if-not_binary64_10223 if-same_binary64_10222 if-false_binary64_10221 if-true_binary64_10220 not-gte_binary64_10219 not-lte_binary64_10218 not-gt_binary64_10217 not-lt_binary64_10216 gte-same_binary64_10215 lte-same_binary64_10214 gt-same_binary64_10213 lt-same_binary64_10212 sinh---cosh_binary64_10159 sinh-+-cosh_binary64_10158 sinh-cosh_binary64_10157 tanh-def-c_binary64_10156 tanh-def-b_binary64_10155 tanh-def-a_binary64_10154 cosh-def_binary64_10153 sinh-def_binary64_10152 tan-neg_binary64_10099 cos-neg_binary64_10098 sin-neg_binary64_10097 tan-0_binary64_10096 cos-0_binary64_10095 sin-0_binary64_10094 hang-m-tan_binary64_10093 hang-p-tan_binary64_10092 hang-m0-tan_binary64_10091 hang-p0-tan_binary64_10090 hang-0m-tan_binary64_10089 hang-0p-tan_binary64_10088 tan-+PI/2_binary64_10087 tan-+PI_binary64_10086 tan-PI_binary64_10085 tan-PI/3_binary64_10084 tan-PI/4_binary64_10083 tan-PI/6_binary64_10082 cos-+PI/2_binary64_10081 cos-+PI_binary64_10080 cos-PI_binary64_10079 cos-PI/2_binary64_10078 cos-PI/3_binary64_10077 cos-PI/4_binary64_10076 cos-PI/6_binary64_10075 sin-+PI/2_binary64_10074 sin-+PI_binary64_10073 sin-PI_binary64_10072 sin-PI/2_binary64_10071 sin-PI/3_binary64_10070 sin-PI/4_binary64_10069 sin-PI/6_binary64_10068 sub-1-sin_binary64_10067 sub-1-cos_binary64_10066 -1-add-sin_binary64_10065 -1-add-cos_binary64_10064 1-sub-sin_binary64_10063 1-sub-cos_binary64_10062 cos-sin-sum_binary64_10061 log-E_binary64_10057 pow-base-0_binary64_10051 unpow1/3_binary64_10034 unpow2_binary64_10032 exp-to-pow_binary64_10029 pow-base-1_binary64_10027 unpow0_binary64_10026 unpow1_binary64_10025 unpow-1_binary64_10024 exp-lft-cube_binary64_10023 exp-lft-sqr_binary64_10022 exp-cbrt_binary64_10021 exp-sqrt_binary64_10020 e-exp-1_binary64_10012 exp-0_binary64_10009 rem-exp-log_binary64_10007 rem-3cbrt-rft_binary64_9993 rem-cbrt-cube_binary64_9991 rem-cube-cbrt_binary64_9990 sqr-abs_binary64_9982 +-lft-identity_binary64_9951 +-inverses_binary64_9946 lft-mult-inverse_binary64_9945 rgt-mult-inverse_binary64_9944 remove-double-div_binary64_9943 difference-of-sqr-1_binary64_9937 cancel-sign-sub_binary64_9932 count-2_binary64_9915 associate--l+_binary64_9904
Counts
78 → 241
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01031336
12481237
26291190
327381184

prune329.0ms (5.1%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New2401241
Fresh112
Picked101
Done011
Total2423245
Error
0b
Counts
245 → 3
Compiler

Compiled 5111 to 3253 computations (36.4% saved)

localize7.0ms (0.1%)

Local error

Found 3 expressions with local error:

0.0b
(/.f64 1 (*.f64 y (/.f64 2 (-.f64 1 (/.f64 y x)))))
0.6b
(/.f64 2 (-.f64 1 (/.f64 y x)))
8.3b
(*.f64 y (/.f64 2 (-.f64 1 (/.f64 y x))))

rewrite211.0ms (3.3%)

Algorithm
rewrite-expression-head
Error
0b
Rules
92×add-sqr-sqrt_binary64_9989
66×times-frac_binary64_9973
59×*-un-lft-identity_binary64_9967
31×add-exp-log_binary64_10005 add-cube-cbrt_binary64_10002
30×associate-*r*_binary64_9907
28×difference-of-squares_binary64_9936
19×add-cbrt-cube_binary64_10003
11×div-exp_binary64_10018
associate-/r*_binary64_9911
pow1_binary64_10028 prod-exp_binary64_10016
distribute-lft-out--_binary64_9919
cbrt-undiv_binary64_10001 associate-/l*_binary64_9912
associate-/r/_binary64_9913
cbrt-unprod_binary64_10000
add-log-exp_binary64_10006 associate-*l*_binary64_9908 div-inv_binary64_9964 1-exp_binary64_10011 rec-exp_binary64_10017
pow-prod-down_binary64_10038 unswap-sqr_binary64_9935 associate-*r/_binary64_9909 flip3--_binary64_9971 flip--_binary64_9942 frac-2neg_binary64_9978 clear-num_binary64_9966 pow-flip_binary64_10041
*-commutative_binary64_9898 inv-pow_binary64_10052
Counts
3 → 131
Calls

3 calls:

16.0ms
(*.f64 y (/.f64 2 (-.f64 1 (/.f64 y x))))
16.0ms
(/.f64 1 (*.f64 y (/.f64 2 (-.f64 1 (/.f64 y x)))))
9.0ms
(/.f64 2 (-.f64 1 (/.f64 y x)))
Compiler

Compiled 2680 to 1757 computations (34.4% saved)

series488.0ms (7.6%)

Error
0b
Counts
3 → 54
Calls

3 calls:

169.0ms
(/.f64 1 (*.f64 y (/.f64 2 (-.f64 1 (/.f64 y x)))))
147.0ms
(*.f64 y (/.f64 2 (-.f64 1 (/.f64 y x))))
120.0ms
(/.f64 2 (-.f64 1 (/.f64 y x)))
Compiler

Compiled 1950 to 1630 computations (16.4% saved)

simplify760.0ms (11.8%)

Algorithm
egg-herbie
Rules
525×associate-/r/_binary64_9913
284×*-commutative_binary64_9898
264×div-sub_binary64_9972
190×neg-mul-1_binary64_9963
162×distribute-rgt-in_binary64_9917
148×associate-/l*_binary64_9912
133×times-frac_binary64_9973
115×distribute-lft-in_binary64_9916
110×associate-*l/_binary64_9910
109×distribute-rgt-neg-in_binary64_9925
105×distribute-lft-neg-in_binary64_9924
102×associate-*l*_binary64_9908
98×distribute-neg-frac_binary64_9931
95×associate-*r/_binary64_9909
91×associate-/l/_binary64_9914 associate-/r*_binary64_9911
89×cancel-sign-sub-inv_binary64_9933
88×+-commutative_binary64_9897
85×associate-*r*_binary64_9907
79×associate-+l+_binary64_9900
72×distribute-neg-in_binary64_9928
70×distribute-lft-out_binary64_9918
65×associate--r+_binary64_9903
63×associate-+r+_binary64_9899
61×neg-sub0_binary64_9962
59×exp-prod_binary64_10019
57×sub-neg_binary64_9960
55×*-rgt-identity_binary64_9957
53×cube-prod_binary64_9995
50×log-prod_binary64_10053
48×associate-+l-_binary64_9902
44×sqr-pow_binary64_9939
43×distribute-rgt-out_binary64_9920
41×*-lft-identity_binary64_9956
40×cube-div_binary64_9996
39×associate--l-_binary64_9905
38×distribute-lft-neg-out_binary64_9926
36×associate-+r-_binary64_9901
33×log-div_binary64_10054
27×distribute-rgt-neg-out_binary64_9927
25×/-rgt-identity_binary64_9958
22×pow-plus_binary64_10030
21×pow-sqr_binary64_9940
20×unsub-neg_binary64_9961
17×log-pow_binary64_10056 unswap-sqr_binary64_9935
13×associate--l+_binary64_9904
12×log-rec_binary64_10055 exp-sum_binary64_10013 distribute-neg-out_binary64_9929
11×unpow3_binary64_10033 exp-lft-sqr_binary64_10022 swap-sqr_binary64_9934
10×cube-mult_binary64_9997
distribute-rgt-out--_binary64_9921 distribute-lft-out--_binary64_9919 associate--r-_binary64_9906
pow-base-1_binary64_10027
cube-unmult_binary64_10004 distribute-rgt1-in_binary64_9923
difference-of-squares_binary64_9936
exp-sqrt_binary64_10020 cube-neg_binary64_9994 sqr-neg_binary64_9981 rem-sqrt-square_binary64_9980
unpow2_binary64_10032 exp-to-pow_binary64_10029 unpow1_binary64_10025 exp-diff_binary64_10015 remove-double-neg_binary64_9955 distribute-lft1-in_binary64_9922
div-exp_binary64_10018 rec-exp_binary64_10017 prod-exp_binary64_10016 1-exp_binary64_10011 exp-1-e_binary64_10010 rem-log-exp_binary64_10008 rem-cbrt-cube_binary64_9991 sub0-neg_binary64_9954 +-rgt-identity_binary64_9952 *-inverses_binary64_9947 remove-double-div_binary64_9943 cancel-sign-sub_binary64_9932 count-2_binary64_9915
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_10230 erf-erfc_binary64_10229 erf-odd_binary64_10228 if-if-and-not_binary64_10227 if-if-and_binary64_10226 if-if-or-not_binary64_10225 if-if-or_binary64_10224 if-not_binary64_10223 if-same_binary64_10222 if-false_binary64_10221 if-true_binary64_10220 not-gte_binary64_10219 not-lte_binary64_10218 not-gt_binary64_10217 not-lt_binary64_10216 gte-same_binary64_10215 lte-same_binary64_10214 gt-same_binary64_10213 lt-same_binary64_10212 sinh---cosh_binary64_10159 sinh-+-cosh_binary64_10158 sinh-cosh_binary64_10157 tanh-def-c_binary64_10156 tanh-def-b_binary64_10155 tanh-def-a_binary64_10154 cosh-def_binary64_10153 sinh-def_binary64_10152 tan-neg_binary64_10099 cos-neg_binary64_10098 sin-neg_binary64_10097 tan-0_binary64_10096 cos-0_binary64_10095 sin-0_binary64_10094 hang-m-tan_binary64_10093 hang-p-tan_binary64_10092 hang-m0-tan_binary64_10091 hang-p0-tan_binary64_10090 hang-0m-tan_binary64_10089 hang-0p-tan_binary64_10088 tan-+PI/2_binary64_10087 tan-+PI_binary64_10086 tan-PI_binary64_10085 tan-PI/3_binary64_10084 tan-PI/4_binary64_10083 tan-PI/6_binary64_10082 cos-+PI/2_binary64_10081 cos-+PI_binary64_10080 cos-PI_binary64_10079 cos-PI/2_binary64_10078 cos-PI/3_binary64_10077 cos-PI/4_binary64_10076 cos-PI/6_binary64_10075 sin-+PI/2_binary64_10074 sin-+PI_binary64_10073 sin-PI_binary64_10072 sin-PI/2_binary64_10071 sin-PI/3_binary64_10070 sin-PI/4_binary64_10069 sin-PI/6_binary64_10068 sub-1-sin_binary64_10067 sub-1-cos_binary64_10066 -1-add-sin_binary64_10065 -1-add-cos_binary64_10064 1-sub-sin_binary64_10063 1-sub-cos_binary64_10062 cos-sin-sum_binary64_10061 log-E_binary64_10057 pow-base-0_binary64_10051 unpow1/3_binary64_10034 unpow1/2_binary64_10031 unpow0_binary64_10026 unpow-1_binary64_10024 exp-lft-cube_binary64_10023 exp-cbrt_binary64_10021 exp-neg_binary64_10014 e-exp-1_binary64_10012 exp-0_binary64_10009 rem-exp-log_binary64_10007 rem-3cbrt-rft_binary64_9993 rem-3cbrt-lft_binary64_9992 rem-cube-cbrt_binary64_9990 sqr-abs_binary64_9982 rem-square-sqrt_binary64_9979 mul-1-neg_binary64_9959 --rgt-identity_binary64_9953 +-lft-identity_binary64_9951 mul0-rgt_binary64_9950 mul0-lft_binary64_9949 div0_binary64_9948 +-inverses_binary64_9946 lft-mult-inverse_binary64_9945 rgt-mult-inverse_binary64_9944 difference-of-sqr--1_binary64_9938 difference-of-sqr-1_binary64_9937 distribute-frac-neg_binary64_9930
Counts
185 → 310
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02503556
15913191
221033057
342903057

prune378.0ms (5.9%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New3100310
Fresh011
Picked011
Done011
Total3103313
Error
0b
Counts
313 → 3
Compiler

Compiled 5895 to 3641 computations (38.2% saved)

regimes245.0ms (3.8%)

Accuracy

Total 0.0b remaining (99.5%)

Threshold costs 0.0b (99.5%)

Compiler

Compiled 2158 to 1546 computations (28.4% saved)

bsearch0.0ms (0%)

simplify6.0ms (0.1%)

Algorithm
egg-herbie
Rules
11×neg-mul-1_binary64_9963 neg-sub0_binary64_9962
*-commutative_binary64_9898
sub-neg_binary64_9960 *-rgt-identity_binary64_9957 distribute-rgt-neg-in_binary64_9925 +-commutative_binary64_9897
distribute-rgt-neg-out_binary64_9927 distribute-lft-neg-out_binary64_9926 distribute-lft-neg-in_binary64_9924
*-lft-identity_binary64_9956
unsub-neg_binary64_9961 cancel-sign-sub-inv_binary64_9933
1-exp_binary64_10011 distribute-neg-frac_binary64_9931
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_10227 if-if-and_binary64_10226 if-if-or-not_binary64_10225 if-if-or_binary64_10224 if-not_binary64_10223 if-same_binary64_10222 if-false_binary64_10221 if-true_binary64_10220 tan-0_binary64_10096 cos-0_binary64_10095 sin-0_binary64_10094 unpow1_binary64_10025 e-exp-1_binary64_10012 exp-1-e_binary64_10010 exp-0_binary64_10009 sqr-abs_binary64_9982 sqr-neg_binary64_9981 mul-1-neg_binary64_9959 /-rgt-identity_binary64_9958 remove-double-neg_binary64_9955 sub0-neg_binary64_9954 --rgt-identity_binary64_9953 +-rgt-identity_binary64_9952 +-lft-identity_binary64_9951 cancel-sign-sub_binary64_9932 distribute-frac-neg_binary64_9930 distribute-neg-out_binary64_9929 distribute-neg-in_binary64_9928
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01016
11916
22816
33616
44216
54516
66016
75916
Proof
(=> (- f64 (* f64 1/2 (/ f64 1 h0)) (* f64 1/2 (/ f64 1 h1)))) sub-neg_binary64_9960 => (+ f64 (* f64 1/2 (/ f64 1 h0)) (=> (neg f64 (* f64 1/2 (/ f64 1 h1))))) distribute-rgt-neg-in_binary64_9925 => (+ f64 (* f64 1/2 (/ f64 1 h0)) (* f64 1/2 (=> (neg f64 (/ f64 1 h1))))) distribute-neg-frac_binary64_9931 => (+ f64 (* f64 1/2 (/ f64 1 h0)) (* f64 1/2 (/ f64 (=> (neg f64 1)) h1))) neg-mul-1_binary64_9963 => (+ f64 (* f64 1/2 (/ f64 1 h0)) (* f64 1/2 (/ f64 (=> (* f64 -1 1)) h1))) *-rgt-identity_binary64_9957 => (+ f64 (* f64 1/2 (/ f64 1 h0)) (* f64 1/2 (/ f64 -1 h1)))

end0.0ms (0%)

sample1.1s (17.1%)

Algorithm
intervals
Results
220.0ms8000×body128valid
0.0msbody128invalid
Compiler

Compiled 740 to 536 computations (27.6% saved)

Profiling

Loading profile data...