Details

Time bar (total: 5.7s)

analyze79.0ms (1.4%)

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
37.5%62.4%0.1%6
43.7%43.7%12.6%7
53.1%34.3%12.6%8
57.8%23.4%18.8%9
63.2%18%18.8%10
66%12.1%22%11
68.9%9.2%22%12
70.3%6.1%23.5%13
71.9%4.6%23.5%14
Compiler

Compiled 8 to 7 computations (12.5% saved)

sample20.0ms (0.3%)

Algorithm
intervals
Results
6.0ms256×body128valid
0.0msbody128invalid
Compiler

Compiled 15 to 15 computations (0% saved)

simplify723.0ms (12.6%)

Algorithm
egg-herbie
Rules
809×pow-plus_binary64_20942
508×exp-prod_binary64_20931
492×sqr-pow_binary64_20851
382×pow-sqr_binary64_20852
307×*-commutative_binary64_20810
295×exp-sum_binary64_20925
217×distribute-rgt1-in_binary64_20835
200×associate-/r*_binary64_20823
177×distribute-rgt-out_binary64_20832
166×associate-/l/_binary64_20826
152×associate-*r*_binary64_20819 associate-+l+_binary64_20812
149×associate-*l*_binary64_20820
130×+-commutative_binary64_20809
127×pow-base-1_binary64_20939
98×distribute-lft-out_binary64_20830
68×associate-+r+_binary64_20811
41×swap-sqr_binary64_20846
27×associate-/r/_binary64_20825 associate-/l*_binary64_20824
22×distribute-rgt-in_binary64_20829
16×*-rgt-identity_binary64_20869
15×*-lft-identity_binary64_20868
14×distribute-lft-in_binary64_20828
13×exp-lft-sqr_binary64_20934
12×unswap-sqr_binary64_20847
11×cube-unmult_binary64_20916
10×exp-sqrt_binary64_20932 distribute-lft1-in_binary64_20834
cube-prod_binary64_20907 count-2_binary64_20827
prod-exp_binary64_20928
unpow1_binary64_20937
unpow3_binary64_20945 cube-div_binary64_20908 rem-sqrt-square_binary64_20892
1-exp_binary64_20923 exp-1-e_binary64_20922 /-rgt-identity_binary64_20870 +-rgt-identity_binary64_20864 div0_binary64_20860 *-inverses_binary64_20859 lft-mult-inverse_binary64_20857 rgt-mult-inverse_binary64_20856 associate-*r/_binary64_20821
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_21142 erf-erfc_binary64_21141 erf-odd_binary64_21140 if-if-and-not_binary64_21139 if-if-and_binary64_21138 if-if-or-not_binary64_21137 if-if-or_binary64_21136 if-not_binary64_21135 if-same_binary64_21134 if-false_binary64_21133 if-true_binary64_21132 not-gte_binary64_21131 not-lte_binary64_21130 not-gt_binary64_21129 not-lt_binary64_21128 gte-same_binary64_21127 lte-same_binary64_21126 gt-same_binary64_21125 lt-same_binary64_21124 sinh---cosh_binary64_21071 sinh-+-cosh_binary64_21070 sinh-cosh_binary64_21069 tanh-def-c_binary64_21068 tanh-def-b_binary64_21067 tanh-def-a_binary64_21066 cosh-def_binary64_21065 sinh-def_binary64_21064 tan-neg_binary64_21011 cos-neg_binary64_21010 sin-neg_binary64_21009 tan-0_binary64_21008 cos-0_binary64_21007 sin-0_binary64_21006 hang-m-tan_binary64_21005 hang-p-tan_binary64_21004 hang-m0-tan_binary64_21003 hang-p0-tan_binary64_21002 hang-0m-tan_binary64_21001 hang-0p-tan_binary64_21000 tan-+PI/2_binary64_20999 tan-+PI_binary64_20998 tan-PI_binary64_20997 tan-PI/3_binary64_20996 tan-PI/4_binary64_20995 tan-PI/6_binary64_20994 cos-+PI/2_binary64_20993 cos-+PI_binary64_20992 cos-PI_binary64_20991 cos-PI/2_binary64_20990 cos-PI/3_binary64_20989 cos-PI/4_binary64_20988 cos-PI/6_binary64_20987 sin-+PI/2_binary64_20986 sin-+PI_binary64_20985 sin-PI_binary64_20984 sin-PI/2_binary64_20983 sin-PI/3_binary64_20982 sin-PI/4_binary64_20981 sin-PI/6_binary64_20980 sub-1-sin_binary64_20979 sub-1-cos_binary64_20978 -1-add-sin_binary64_20977 -1-add-cos_binary64_20976 1-sub-sin_binary64_20975 1-sub-cos_binary64_20974 cos-sin-sum_binary64_20973 log-E_binary64_20969 log-pow_binary64_20968 log-rec_binary64_20967 log-div_binary64_20966 log-prod_binary64_20965 pow-base-0_binary64_20963 unpow1/3_binary64_20946 unpow2_binary64_20944 unpow1/2_binary64_20943 exp-to-pow_binary64_20941 unpow0_binary64_20938 unpow-1_binary64_20936 exp-lft-cube_binary64_20935 exp-cbrt_binary64_20933 div-exp_binary64_20930 rec-exp_binary64_20929 exp-diff_binary64_20927 exp-neg_binary64_20926 e-exp-1_binary64_20924 exp-0_binary64_20921 rem-log-exp_binary64_20920 rem-exp-log_binary64_20919 cube-mult_binary64_20909 cube-neg_binary64_20906 rem-3cbrt-rft_binary64_20905 rem-3cbrt-lft_binary64_20904 rem-cbrt-cube_binary64_20903 rem-cube-cbrt_binary64_20902 sqr-abs_binary64_20894 sqr-neg_binary64_20893 rem-square-sqrt_binary64_20891 times-frac_binary64_20885 div-sub_binary64_20884 neg-mul-1_binary64_20875 neg-sub0_binary64_20874 unsub-neg_binary64_20873 sub-neg_binary64_20872 mul-1-neg_binary64_20871 remove-double-neg_binary64_20867 sub0-neg_binary64_20866 --rgt-identity_binary64_20865 +-lft-identity_binary64_20863 mul0-rgt_binary64_20862 mul0-lft_binary64_20861 +-inverses_binary64_20858 remove-double-div_binary64_20855 difference-of-sqr--1_binary64_20850 difference-of-sqr-1_binary64_20849 difference-of-squares_binary64_20848 cancel-sign-sub-inv_binary64_20845 cancel-sign-sub_binary64_20844 distribute-neg-frac_binary64_20843 distribute-frac-neg_binary64_20842 distribute-neg-out_binary64_20841 distribute-neg-in_binary64_20840 distribute-rgt-neg-out_binary64_20839 distribute-lft-neg-out_binary64_20838 distribute-rgt-neg-in_binary64_20837 distribute-lft-neg-in_binary64_20836 distribute-rgt-out--_binary64_20833 distribute-lft-out--_binary64_20831 associate-*l/_binary64_20822 associate--r-_binary64_20818 associate--l-_binary64_20817 associate--l+_binary64_20816 associate--r+_binary64_20815 associate-+l-_binary64_20814 associate-+r-_binary64_20813
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0710
11710
22110
34210
43610
53910
65510
712510
872410
9135210
10230410
11451110

prune4.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New011
Fresh011
Picked000
Done000
Total022
Error
0.0b
Counts
2 → 2
Compiler

Compiled 21 to 16 computations (23.8% saved)

localize5.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(+.f64 x (*.f64 y (*.f64 x y)))
0.2b
(*.f64 y (*.f64 x y))

rewrite38.0ms (0.7%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
pow1_binary64_20940 add-exp-log_binary64_20917 add-cbrt-cube_binary64_20915
add-log-exp_binary64_20918
pow-prod-down_binary64_20950 prod-exp_binary64_20928 add-cube-cbrt_binary64_20914 cbrt-unprod_binary64_20912 add-sqr-sqrt_binary64_20901 *-un-lft-identity_binary64_20879 associate-*l*_binary64_20820
associate-*r*_binary64_20819 *-commutative_binary64_20810 sum-log_binary64_20970 flip3-+_binary64_20882 flip-+_binary64_20853 +-commutative_binary64_20809
Counts
2 → 29
Calls

2 calls:

6.0ms
(*.f64 y (*.f64 x y))
4.0ms
(+.f64 x (*.f64 y (*.f64 x y)))
Compiler

Compiled 398 to 106 computations (73.4% saved)

series209.0ms (3.7%)

Error
0.0b
Counts
2 → 15
Calls

2 calls:

112.0ms
(+.f64 x (*.f64 y (*.f64 x y)))
88.0ms
(*.f64 y (*.f64 x y))
Compiler

Compiled 274 to 221 computations (19.3% saved)

simplify183.0ms (3.2%)

Algorithm
egg-herbie
Rules
391×cancel-sign-sub-inv_binary64_20845
380×associate-*l*_binary64_20820
376×associate-/r/_binary64_20825
290×distribute-rgt-out_binary64_20832
266×associate-*r*_binary64_20819
261×unswap-sqr_binary64_20847
234×distribute-rgt-neg-in_binary64_20837
221×*-commutative_binary64_20810
214×distribute-rgt-in_binary64_20829
210×distribute-lft-neg-in_binary64_20836
189×associate-/l/_binary64_20826
181×associate-*l/_binary64_20822
174×associate-*r/_binary64_20821
160×distribute-lft-in_binary64_20828
145×distribute-rgt-out--_binary64_20833
107×unsub-neg_binary64_20873
102×sqr-pow_binary64_20851
85×distribute-neg-frac_binary64_20843
84×sub-neg_binary64_20872
73×difference-of-squares_binary64_20848
72×distribute-lft-out_binary64_20830
59×log-prod_binary64_20965 exp-prod_binary64_20931 associate-+r+_binary64_20811
56×associate-+l+_binary64_20812
54×distribute-rgt1-in_binary64_20835
47×cube-prod_binary64_20907 pow-sqr_binary64_20852
46×times-frac_binary64_20885
45×neg-mul-1_binary64_20875
43×neg-sub0_binary64_20874
42×log-div_binary64_20966 distribute-lft-neg-out_binary64_20838
41×cube-div_binary64_20908
36×+-commutative_binary64_20809
35×swap-sqr_binary64_20846
34×exp-sqrt_binary64_20932
30×distribute-rgt-neg-out_binary64_20839 distribute-lft-out--_binary64_20831
29×distribute-lft1-in_binary64_20834
27×*-rgt-identity_binary64_20869
24×pow-plus_binary64_20942
21×associate-/l*_binary64_20824 associate-/r*_binary64_20823
20×associate-+r-_binary64_20813
17×*-lft-identity_binary64_20868 associate-+l-_binary64_20814
16×sub0-neg_binary64_20866
14×mul0-rgt_binary64_20862 mul0-lft_binary64_20861
12×unpow3_binary64_20945 distribute-neg-out_binary64_20841
11×+-rgt-identity_binary64_20864
10×cube-unmult_binary64_20916 /-rgt-identity_binary64_20870
log-pow_binary64_20968
cube-mult_binary64_20909 distribute-neg-in_binary64_20840
exp-lft-sqr_binary64_20934 exp-sum_binary64_20925
difference-of-sqr-1_binary64_20849
count-2_binary64_20827 associate--r+_binary64_20815
pow-base-1_binary64_20939 prod-exp_binary64_20928 difference-of-sqr--1_binary64_20850
log-rec_binary64_20967 unpow2_binary64_20944 unpow1_binary64_20937 exp-diff_binary64_20927 1-exp_binary64_20923 exp-1-e_binary64_20922 rem-log-exp_binary64_20920 rem-sqrt-square_binary64_20892 remove-double-neg_binary64_20867 +-lft-identity_binary64_20863 *-inverses_binary64_20859 rgt-mult-inverse_binary64_20856 cancel-sign-sub_binary64_20844 associate--l+_binary64_20816
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_21142 erf-erfc_binary64_21141 erf-odd_binary64_21140 if-if-and-not_binary64_21139 if-if-and_binary64_21138 if-if-or-not_binary64_21137 if-if-or_binary64_21136 if-not_binary64_21135 if-same_binary64_21134 if-false_binary64_21133 if-true_binary64_21132 not-gte_binary64_21131 not-lte_binary64_21130 not-gt_binary64_21129 not-lt_binary64_21128 gte-same_binary64_21127 lte-same_binary64_21126 gt-same_binary64_21125 lt-same_binary64_21124 sinh---cosh_binary64_21071 sinh-+-cosh_binary64_21070 sinh-cosh_binary64_21069 tanh-def-c_binary64_21068 tanh-def-b_binary64_21067 tanh-def-a_binary64_21066 cosh-def_binary64_21065 sinh-def_binary64_21064 tan-neg_binary64_21011 cos-neg_binary64_21010 sin-neg_binary64_21009 tan-0_binary64_21008 cos-0_binary64_21007 sin-0_binary64_21006 hang-m-tan_binary64_21005 hang-p-tan_binary64_21004 hang-m0-tan_binary64_21003 hang-p0-tan_binary64_21002 hang-0m-tan_binary64_21001 hang-0p-tan_binary64_21000 tan-+PI/2_binary64_20999 tan-+PI_binary64_20998 tan-PI_binary64_20997 tan-PI/3_binary64_20996 tan-PI/4_binary64_20995 tan-PI/6_binary64_20994 cos-+PI/2_binary64_20993 cos-+PI_binary64_20992 cos-PI_binary64_20991 cos-PI/2_binary64_20990 cos-PI/3_binary64_20989 cos-PI/4_binary64_20988 cos-PI/6_binary64_20987 sin-+PI/2_binary64_20986 sin-+PI_binary64_20985 sin-PI_binary64_20984 sin-PI/2_binary64_20983 sin-PI/3_binary64_20982 sin-PI/4_binary64_20981 sin-PI/6_binary64_20980 sub-1-sin_binary64_20979 sub-1-cos_binary64_20978 -1-add-sin_binary64_20977 -1-add-cos_binary64_20976 1-sub-sin_binary64_20975 1-sub-cos_binary64_20974 cos-sin-sum_binary64_20973 log-E_binary64_20969 pow-base-0_binary64_20963 unpow1/3_binary64_20946 unpow1/2_binary64_20943 exp-to-pow_binary64_20941 unpow0_binary64_20938 unpow-1_binary64_20936 exp-lft-cube_binary64_20935 exp-cbrt_binary64_20933 div-exp_binary64_20930 rec-exp_binary64_20929 exp-neg_binary64_20926 e-exp-1_binary64_20924 exp-0_binary64_20921 rem-exp-log_binary64_20919 cube-neg_binary64_20906 rem-3cbrt-rft_binary64_20905 rem-3cbrt-lft_binary64_20904 rem-cbrt-cube_binary64_20903 rem-cube-cbrt_binary64_20902 sqr-abs_binary64_20894 sqr-neg_binary64_20893 rem-square-sqrt_binary64_20891 div-sub_binary64_20884 mul-1-neg_binary64_20871 --rgt-identity_binary64_20865 div0_binary64_20860 +-inverses_binary64_20858 lft-mult-inverse_binary64_20857 remove-double-div_binary64_20855 distribute-frac-neg_binary64_20842 associate--r-_binary64_20818 associate--l-_binary64_20817
Counts
44 → 93
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
058478
1155454
2437448
31277445
43321445

prune76.0ms (1.3%)

Pruning

5 alts after pruning (4 fresh and 1 done)

PrunedKeptTotal
New90393
Fresh011
Picked011
Done000
Total90595
Error
0.0b
Counts
95 → 5
Compiler

Compiled 1500 to 439 computations (70.7% saved)

localize5.0ms (0.1%)

Local error

Found 1 expressions with local error:

4.3b
(*.f64 x (+.f64 1 (*.f64 y y)))

rewrite27.0ms (0.5%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
add-sqr-sqrt_binary64_20901
pow1_binary64_20940 add-exp-log_binary64_20917 add-cbrt-cube_binary64_20915 add-cube-cbrt_binary64_20914 *-un-lft-identity_binary64_20879 associate-*l*_binary64_20820 associate-*r*_binary64_20819
associate-*r/_binary64_20821
pow-prod-down_binary64_20950 prod-exp_binary64_20928 add-log-exp_binary64_20918 cbrt-unprod_binary64_20912 unswap-sqr_binary64_20847 distribute-rgt-in_binary64_20829 distribute-lft-in_binary64_20828 flip3-+_binary64_20882 flip-+_binary64_20853 *-commutative_binary64_20810
Counts
1 → 22
Calls

1 calls:

5.0ms
(*.f64 x (+.f64 1 (*.f64 y y)))
Compiler

Compiled 318 to 166 computations (47.8% saved)

series122.0ms (2.1%)

Error
0.0b
Counts
1 → 9
Calls

1 calls:

117.0ms
(*.f64 x (+.f64 1 (*.f64 y y)))
Compiler

Compiled 148 to 125 computations (15.5% saved)

simplify136.0ms (2.4%)

Algorithm
egg-herbie
Rules
856×associate-*l/_binary64_20822
787×distribute-rgt-in_binary64_20829
686×distribute-lft-in_binary64_20828
280×associate-*l*_binary64_20820
219×associate-*r*_binary64_20819
150×distribute-rgt-out_binary64_20832
146×times-frac_binary64_20885
139×unswap-sqr_binary64_20847
78×associate-/r*_binary64_20823
72×associate-/l*_binary64_20824
70×associate-/r/_binary64_20825
66×sqr-pow_binary64_20851
41×exp-prod_binary64_20931
40×*-commutative_binary64_20810
38×distribute-lft-out_binary64_20830
37×pow-sqr_binary64_20852
32×cancel-sign-sub-inv_binary64_20845
29×associate-*r/_binary64_20821
28×pow-plus_binary64_20942
25×distribute-rgt-neg-in_binary64_20837
23×*-lft-identity_binary64_20868
21×*-rgt-identity_binary64_20869 distribute-lft-neg-in_binary64_20836 associate-+l+_binary64_20812
19×associate-/l/_binary64_20826
16×exp-sqrt_binary64_20932
15×distribute-rgt1-in_binary64_20835 associate-+r+_binary64_20811
14×log-pow_binary64_20968 log-prod_binary64_20965 cube-prod_binary64_20907
13×cube-div_binary64_20908 sub-neg_binary64_20872
12×swap-sqr_binary64_20846 distribute-lft-neg-out_binary64_20838
log-div_binary64_20966
exp-sum_binary64_20925 distribute-rgt-neg-out_binary64_20839 +-commutative_binary64_20809
cube-unmult_binary64_20916 neg-sub0_binary64_20874 distribute-lft1-in_binary64_20834
unpow3_binary64_20945 pow-base-1_binary64_20939 neg-mul-1_binary64_20875
difference-of-squares_binary64_20848
prod-exp_binary64_20928 distribute-neg-frac_binary64_20843
cube-mult_binary64_20909
count-2_binary64_20827 associate-+r-_binary64_20813
unpow2_binary64_20944 unpow1_binary64_20937 exp-lft-sqr_binary64_20934 exp-diff_binary64_20927 1-exp_binary64_20923 exp-1-e_binary64_20922 rem-log-exp_binary64_20920 unsub-neg_binary64_20873 /-rgt-identity_binary64_20870 sub0-neg_binary64_20866 +-rgt-identity_binary64_20864 *-inverses_binary64_20859 difference-of-sqr-1_binary64_20849 distribute-rgt-out--_binary64_20833 associate-+l-_binary64_20814
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_21142 erf-erfc_binary64_21141 erf-odd_binary64_21140 if-if-and-not_binary64_21139 if-if-and_binary64_21138 if-if-or-not_binary64_21137 if-if-or_binary64_21136 if-not_binary64_21135 if-same_binary64_21134 if-false_binary64_21133 if-true_binary64_21132 not-gte_binary64_21131 not-lte_binary64_21130 not-gt_binary64_21129 not-lt_binary64_21128 gte-same_binary64_21127 lte-same_binary64_21126 gt-same_binary64_21125 lt-same_binary64_21124 sinh---cosh_binary64_21071 sinh-+-cosh_binary64_21070 sinh-cosh_binary64_21069 tanh-def-c_binary64_21068 tanh-def-b_binary64_21067 tanh-def-a_binary64_21066 cosh-def_binary64_21065 sinh-def_binary64_21064 tan-neg_binary64_21011 cos-neg_binary64_21010 sin-neg_binary64_21009 tan-0_binary64_21008 cos-0_binary64_21007 sin-0_binary64_21006 hang-m-tan_binary64_21005 hang-p-tan_binary64_21004 hang-m0-tan_binary64_21003 hang-p0-tan_binary64_21002 hang-0m-tan_binary64_21001 hang-0p-tan_binary64_21000 tan-+PI/2_binary64_20999 tan-+PI_binary64_20998 tan-PI_binary64_20997 tan-PI/3_binary64_20996 tan-PI/4_binary64_20995 tan-PI/6_binary64_20994 cos-+PI/2_binary64_20993 cos-+PI_binary64_20992 cos-PI_binary64_20991 cos-PI/2_binary64_20990 cos-PI/3_binary64_20989 cos-PI/4_binary64_20988 cos-PI/6_binary64_20987 sin-+PI/2_binary64_20986 sin-+PI_binary64_20985 sin-PI_binary64_20984 sin-PI/2_binary64_20983 sin-PI/3_binary64_20982 sin-PI/4_binary64_20981 sin-PI/6_binary64_20980 sub-1-sin_binary64_20979 sub-1-cos_binary64_20978 -1-add-sin_binary64_20977 -1-add-cos_binary64_20976 1-sub-sin_binary64_20975 1-sub-cos_binary64_20974 cos-sin-sum_binary64_20973 log-E_binary64_20969 log-rec_binary64_20967 pow-base-0_binary64_20963 unpow1/3_binary64_20946 unpow1/2_binary64_20943 exp-to-pow_binary64_20941 unpow0_binary64_20938 unpow-1_binary64_20936 exp-lft-cube_binary64_20935 exp-cbrt_binary64_20933 div-exp_binary64_20930 rec-exp_binary64_20929 exp-neg_binary64_20926 e-exp-1_binary64_20924 exp-0_binary64_20921 rem-exp-log_binary64_20919 cube-neg_binary64_20906 rem-3cbrt-rft_binary64_20905 rem-3cbrt-lft_binary64_20904 rem-cbrt-cube_binary64_20903 rem-cube-cbrt_binary64_20902 sqr-abs_binary64_20894 sqr-neg_binary64_20893 rem-sqrt-square_binary64_20892 rem-square-sqrt_binary64_20891 div-sub_binary64_20884 mul-1-neg_binary64_20871 remove-double-neg_binary64_20867 --rgt-identity_binary64_20865 +-lft-identity_binary64_20863 mul0-rgt_binary64_20862 mul0-lft_binary64_20861 div0_binary64_20860 +-inverses_binary64_20858 lft-mult-inverse_binary64_20857 rgt-mult-inverse_binary64_20856 remove-double-div_binary64_20855 difference-of-sqr--1_binary64_20850 cancel-sign-sub_binary64_20844 distribute-frac-neg_binary64_20842 distribute-neg-out_binary64_20841 distribute-neg-in_binary64_20840 distribute-lft-out--_binary64_20831 associate--r-_binary64_20818 associate--l-_binary64_20817 associate--l+_binary64_20816 associate--r+_binary64_20815
Counts
31 → 44
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
053394
1136349
2470349
31223349

prune38.0ms (0.7%)

Pruning

6 alts after pruning (4 fresh and 2 done)

PrunedKeptTotal
New43144
Fresh033
Picked011
Done011
Total43649
Error
0.0b
Counts
49 → 6
Compiler

Compiled 591 to 218 computations (63.1% saved)

localize13.0ms (0.2%)

Local error

Found 4 expressions with local error:

9.7b
(*.f64 x (*.f64 y y))
17.7b
(cbrt.f64 (*.f64 y (*.f64 x y)))
17.7b
(cbrt.f64 (*.f64 y (*.f64 x y)))
17.7b
(cbrt.f64 (*.f64 x (*.f64 y y)))

rewrite72.0ms (1.3%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
pow1_binary64_20940 add-exp-log_binary64_20917 add-cbrt-cube_binary64_20915
add-sqr-sqrt_binary64_20901
add-cube-cbrt_binary64_20914 *-un-lft-identity_binary64_20879
add-log-exp_binary64_20918
pow1/3_binary64_20961 cbrt-prod_binary64_20910 pow-prod-down_binary64_20950 prod-exp_binary64_20928 cbrt-unprod_binary64_20912 associate-*l*_binary64_20820
unswap-sqr_binary64_20847 associate-*r*_binary64_20819 *-commutative_binary64_20810
Counts
4 → 46
Calls

4 calls:

6.0ms
(*.f64 x (*.f64 y y))
5.0ms
(cbrt.f64 (*.f64 x (*.f64 y y)))
4.0ms
(cbrt.f64 (*.f64 y (*.f64 x y)))
4.0ms
(cbrt.f64 (*.f64 y (*.f64 x y)))
Compiler

Compiled 1263 to 229 computations (81.9% saved)

series1.0s (17.8%)

Error
0.0b
Counts
4 → 24
Calls

4 calls:

311.0ms
(cbrt.f64 (*.f64 y (*.f64 x y)))
297.0ms
(cbrt.f64 (*.f64 y (*.f64 x y)))
296.0ms
(cbrt.f64 (*.f64 x (*.f64 y y)))
87.0ms
(*.f64 x (*.f64 y y))
Compiler

Compiled 1899 to 1115 computations (41.3% saved)

simplify448.0ms (7.8%)

Algorithm
egg-herbie
Rules
382×div-sub_binary64_20884
379×unsub-neg_binary64_20873
333×associate-*l*_binary64_20820
322×exp-sum_binary64_20925
287×exp-prod_binary64_20931
233×unswap-sqr_binary64_20847
196×*-commutative_binary64_20810
190×associate-*r*_binary64_20819
172×exp-diff_binary64_20927
99×times-frac_binary64_20885
96×prod-exp_binary64_20928 distribute-rgt-in_binary64_20829
88×log-prod_binary64_20965 distribute-lft-in_binary64_20828
72×sqr-pow_binary64_20851
67×neg-sub0_binary64_20874
59×log-pow_binary64_20968
56×cube-prod_binary64_20907
55×associate-*l/_binary64_20822
53×neg-mul-1_binary64_20875 cancel-sign-sub-inv_binary64_20845
52×associate-/r*_binary64_20823
51×exp-to-pow_binary64_20941
47×associate-/l*_binary64_20824 associate-+r+_binary64_20811
44×sub-neg_binary64_20872
40×exp-neg_binary64_20926
38×distribute-neg-out_binary64_20841
37×pow-plus_binary64_20942 associate--r+_binary64_20815
35×log-div_binary64_20966
34×pow-sqr_binary64_20852 associate-+l-_binary64_20814 associate-+r-_binary64_20813
33×associate-*r/_binary64_20821
31×exp-sqrt_binary64_20932
29×associate-+l+_binary64_20812
28×distribute-lft-neg-out_binary64_20838 associate--l-_binary64_20817
27×distribute-rgt-neg-out_binary64_20839
26×associate-/r/_binary64_20825
25×associate--r-_binary64_20818
23×+-commutative_binary64_20809
21×associate--l+_binary64_20816
20×exp-lft-sqr_binary64_20934 distribute-lft-neg-in_binary64_20836 distribute-lft-out_binary64_20830
18×cube-div_binary64_20908 distribute-rgt-neg-in_binary64_20837
17×div-exp_binary64_20930
15×associate-/l/_binary64_20826
14×cube-unmult_binary64_20916
13×unpow1/3_binary64_20946 unpow3_binary64_20945
12×distribute-neg-in_binary64_20840
11×swap-sqr_binary64_20846
10×distribute-rgt-out_binary64_20832
log-rec_binary64_20967 rem-exp-log_binary64_20919 cube-mult_binary64_20909
distribute-frac-neg_binary64_20842
rem-sqrt-square_binary64_20892
count-2_binary64_20827
--rgt-identity_binary64_20865 distribute-lft-out--_binary64_20831
unpow2_binary64_20944 remove-double-neg_binary64_20867 sub0-neg_binary64_20866 +-rgt-identity_binary64_20864 mul0-lft_binary64_20861
unpow1_binary64_20937 rem-log-exp_binary64_20920 rem-3cbrt-lft_binary64_20904 rem-cube-cbrt_binary64_20902 mul0-rgt_binary64_20862 distribute-rgt1-in_binary64_20835 distribute-rgt-out--_binary64_20833
1-exp_binary64_20923 exp-1-e_binary64_20922 sqr-neg_binary64_20893 *-rgt-identity_binary64_20869 *-inverses_binary64_20859 rgt-mult-inverse_binary64_20856 cancel-sign-sub_binary64_20844 distribute-neg-frac_binary64_20843
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_21142 erf-erfc_binary64_21141 erf-odd_binary64_21140 if-if-and-not_binary64_21139 if-if-and_binary64_21138 if-if-or-not_binary64_21137 if-if-or_binary64_21136 if-not_binary64_21135 if-same_binary64_21134 if-false_binary64_21133 if-true_binary64_21132 not-gte_binary64_21131 not-lte_binary64_21130 not-gt_binary64_21129 not-lt_binary64_21128 gte-same_binary64_21127 lte-same_binary64_21126 gt-same_binary64_21125 lt-same_binary64_21124 sinh---cosh_binary64_21071 sinh-+-cosh_binary64_21070 sinh-cosh_binary64_21069 tanh-def-c_binary64_21068 tanh-def-b_binary64_21067 tanh-def-a_binary64_21066 cosh-def_binary64_21065 sinh-def_binary64_21064 tan-neg_binary64_21011 cos-neg_binary64_21010 sin-neg_binary64_21009 tan-0_binary64_21008 cos-0_binary64_21007 sin-0_binary64_21006 hang-m-tan_binary64_21005 hang-p-tan_binary64_21004 hang-m0-tan_binary64_21003 hang-p0-tan_binary64_21002 hang-0m-tan_binary64_21001 hang-0p-tan_binary64_21000 tan-+PI/2_binary64_20999 tan-+PI_binary64_20998 tan-PI_binary64_20997 tan-PI/3_binary64_20996 tan-PI/4_binary64_20995 tan-PI/6_binary64_20994 cos-+PI/2_binary64_20993 cos-+PI_binary64_20992 cos-PI_binary64_20991 cos-PI/2_binary64_20990 cos-PI/3_binary64_20989 cos-PI/4_binary64_20988 cos-PI/6_binary64_20987 sin-+PI/2_binary64_20986 sin-+PI_binary64_20985 sin-PI_binary64_20984 sin-PI/2_binary64_20983 sin-PI/3_binary64_20982 sin-PI/4_binary64_20981 sin-PI/6_binary64_20980 sub-1-sin_binary64_20979 sub-1-cos_binary64_20978 -1-add-sin_binary64_20977 -1-add-cos_binary64_20976 1-sub-sin_binary64_20975 1-sub-cos_binary64_20974 cos-sin-sum_binary64_20973 log-E_binary64_20969 pow-base-0_binary64_20963 unpow1/2_binary64_20943 pow-base-1_binary64_20939 unpow0_binary64_20938 unpow-1_binary64_20936 exp-lft-cube_binary64_20935 exp-cbrt_binary64_20933 rec-exp_binary64_20929 e-exp-1_binary64_20924 exp-0_binary64_20921 cube-neg_binary64_20906 rem-3cbrt-rft_binary64_20905 rem-cbrt-cube_binary64_20903 sqr-abs_binary64_20894 rem-square-sqrt_binary64_20891 mul-1-neg_binary64_20871 /-rgt-identity_binary64_20870 *-lft-identity_binary64_20868 +-lft-identity_binary64_20863 div0_binary64_20860 +-inverses_binary64_20858 lft-mult-inverse_binary64_20857 remove-double-div_binary64_20855 difference-of-sqr--1_binary64_20850 difference-of-sqr-1_binary64_20849 difference-of-squares_binary64_20848 distribute-lft1-in_binary64_20834
Counts
70 → 205
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
088842
1160745
2435726
31117683
42967683

prune214.0ms (3.7%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New2023205
Fresh123
Picked101
Done022
Total2047211
Error
0.0b
Counts
211 → 7
Compiler

Compiled 5837 to 957 computations (83.6% saved)

localize18.0ms (0.3%)

Local error

Found 4 expressions with local error:

0.6b
(cbrt.f64 x)
0.6b
(cbrt.f64 y)
17.7b
(cbrt.f64 (*.f64 y (*.f64 x y)))
17.7b
(cbrt.f64 (*.f64 y (*.f64 x y)))

rewrite63.0ms (1.1%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
cbrt-prod_binary64_20910
add-cube-cbrt_binary64_20914 add-sqr-sqrt_binary64_20901 *-un-lft-identity_binary64_20879
pow1/3_binary64_20961 pow1_binary64_20940 add-log-exp_binary64_20918 add-exp-log_binary64_20917 add-cbrt-cube_binary64_20915
Counts
4 → 40
Calls

4 calls:

4.0ms
(cbrt.f64 (*.f64 y (*.f64 x y)))
4.0ms
(cbrt.f64 (*.f64 y (*.f64 x y)))
1.0ms
(cbrt.f64 x)
1.0ms
(cbrt.f64 y)
Compiler

Compiled 1114 to 303 computations (72.8% saved)

series898.0ms (15.7%)

Error
0.0b
Counts
4 → 18
Calls

4 calls:

322.0ms
(cbrt.f64 (*.f64 y (*.f64 x y)))
310.0ms
(cbrt.f64 (*.f64 y (*.f64 x y)))
125.0ms
(cbrt.f64 x)
116.0ms
(cbrt.f64 y)
Compiler

Compiled 1500 to 978 computations (34.8% saved)

simplify321.0ms (5.6%)

Algorithm
egg-herbie
Rules
654×unswap-sqr_binary64_20847
332×distribute-rgt-in_binary64_20829
311×distribute-lft-in_binary64_20828
207×associate-*l*_binary64_20820
169×associate-*r*_binary64_20819
165×cancel-sign-sub-inv_binary64_20845
122×exp-sum_binary64_20925
120×log-prod_binary64_20965
108×exp-prod_binary64_20931
97×distribute-rgt-neg-in_binary64_20837 distribute-lft-neg-in_binary64_20836
89×times-frac_binary64_20885
85×unsub-neg_binary64_20873
82×sqr-pow_binary64_20851
68×log-div_binary64_20966
62×distribute-neg-in_binary64_20840
58×sub-neg_binary64_20872
54×distribute-rgt-out_binary64_20832
53×associate-/r*_binary64_20823 *-commutative_binary64_20810
52×pow-sqr_binary64_20852
45×distribute-lft-out_binary64_20830
44×distribute-rgt-neg-out_binary64_20839
39×distribute-lft-neg-out_binary64_20838
38×log-pow_binary64_20968 exp-diff_binary64_20927
36×div-sub_binary64_20884
35×neg-sub0_binary64_20874
33×neg-mul-1_binary64_20875
32×distribute-neg-out_binary64_20841
17×associate-+r+_binary64_20811
16×exp-to-pow_binary64_20941
14×pow-plus_binary64_20942
13×associate-+l+_binary64_20812
12×cube-unmult_binary64_20916
11×rem-sqrt-square_binary64_20892
10×unpow1/3_binary64_20946 exp-lft-sqr_binary64_20934 exp-neg_binary64_20926 associate--r+_binary64_20815 associate-+r-_binary64_20813
cube-prod_binary64_20907 +-commutative_binary64_20809
remove-double-neg_binary64_20867 swap-sqr_binary64_20846 distribute-frac-neg_binary64_20842 associate-/l/_binary64_20826 associate--l+_binary64_20816
log-rec_binary64_20967 associate--r-_binary64_20818
distribute-lft-out--_binary64_20831 associate-+l-_binary64_20814
--rgt-identity_binary64_20865 distribute-rgt1-in_binary64_20835
rem-3cbrt-lft_binary64_20904 +-rgt-identity_binary64_20864 mul0-lft_binary64_20861
div-exp_binary64_20930 prod-exp_binary64_20928 rem-exp-log_binary64_20919 mul-1-neg_binary64_20871 sub0-neg_binary64_20866 mul0-rgt_binary64_20862 distribute-rgt-out--_binary64_20833 count-2_binary64_20827 associate-*r/_binary64_20821 associate--l-_binary64_20817
unpow2_binary64_20944 unpow1_binary64_20937 exp-sqrt_binary64_20932 1-exp_binary64_20923 rem-log-exp_binary64_20920 *-rgt-identity_binary64_20869 *-inverses_binary64_20859 rgt-mult-inverse_binary64_20856 cancel-sign-sub_binary64_20844 distribute-neg-frac_binary64_20843
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_21142 erf-erfc_binary64_21141 erf-odd_binary64_21140 if-if-and-not_binary64_21139 if-if-and_binary64_21138 if-if-or-not_binary64_21137 if-if-or_binary64_21136 if-not_binary64_21135 if-same_binary64_21134 if-false_binary64_21133 if-true_binary64_21132 not-gte_binary64_21131 not-lte_binary64_21130 not-gt_binary64_21129 not-lt_binary64_21128 gte-same_binary64_21127 lte-same_binary64_21126 gt-same_binary64_21125 lt-same_binary64_21124 sinh---cosh_binary64_21071 sinh-+-cosh_binary64_21070 sinh-cosh_binary64_21069 tanh-def-c_binary64_21068 tanh-def-b_binary64_21067 tanh-def-a_binary64_21066 cosh-def_binary64_21065 sinh-def_binary64_21064 tan-neg_binary64_21011 cos-neg_binary64_21010 sin-neg_binary64_21009 tan-0_binary64_21008 cos-0_binary64_21007 sin-0_binary64_21006 hang-m-tan_binary64_21005 hang-p-tan_binary64_21004 hang-m0-tan_binary64_21003 hang-p0-tan_binary64_21002 hang-0m-tan_binary64_21001 hang-0p-tan_binary64_21000 tan-+PI/2_binary64_20999 tan-+PI_binary64_20998 tan-PI_binary64_20997 tan-PI/3_binary64_20996 tan-PI/4_binary64_20995 tan-PI/6_binary64_20994 cos-+PI/2_binary64_20993 cos-+PI_binary64_20992 cos-PI_binary64_20991 cos-PI/2_binary64_20990 cos-PI/3_binary64_20989 cos-PI/4_binary64_20988 cos-PI/6_binary64_20987 sin-+PI/2_binary64_20986 sin-+PI_binary64_20985 sin-PI_binary64_20984 sin-PI/2_binary64_20983 sin-PI/3_binary64_20982 sin-PI/4_binary64_20981 sin-PI/6_binary64_20980 sub-1-sin_binary64_20979 sub-1-cos_binary64_20978 -1-add-sin_binary64_20977 -1-add-cos_binary64_20976 1-sub-sin_binary64_20975 1-sub-cos_binary64_20974 cos-sin-sum_binary64_20973 log-E_binary64_20969 pow-base-0_binary64_20963 unpow3_binary64_20945 unpow1/2_binary64_20943 pow-base-1_binary64_20939 unpow0_binary64_20938 unpow-1_binary64_20936 exp-lft-cube_binary64_20935 exp-cbrt_binary64_20933 rec-exp_binary64_20929 e-exp-1_binary64_20924 exp-1-e_binary64_20922 exp-0_binary64_20921 cube-mult_binary64_20909 cube-div_binary64_20908 cube-neg_binary64_20906 rem-3cbrt-rft_binary64_20905 rem-cbrt-cube_binary64_20903 rem-cube-cbrt_binary64_20902 sqr-abs_binary64_20894 sqr-neg_binary64_20893 rem-square-sqrt_binary64_20891 /-rgt-identity_binary64_20870 *-lft-identity_binary64_20868 +-lft-identity_binary64_20863 div0_binary64_20860 +-inverses_binary64_20858 lft-mult-inverse_binary64_20857 remove-double-div_binary64_20855 difference-of-sqr--1_binary64_20850 difference-of-sqr-1_binary64_20849 difference-of-squares_binary64_20848 distribute-lft1-in_binary64_20834 associate-/r/_binary64_20825 associate-/l*_binary64_20824 associate-*l/_binary64_20822
Counts
58 → 68
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
084574
1152572
2369527
31430487

prune85.0ms (1.5%)

Pruning

5 alts after pruning (3 fresh and 2 done)

PrunedKeptTotal
New67168
Fresh224
Picked101
Done022
Total70575
Error
0.0b
Counts
75 → 5
Compiler

Compiled 1879 to 629 computations (66.5% saved)

regimes196.0ms (3.4%)

Accuracy

Total 0.1b remaining (85.2%)

Threshold costs 0.1b (85.2%)

Compiler

Compiled 1854 to 1111 computations (40.1% saved)

bsearch0.0ms (0%)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64_20810
+-commutative_binary64_20809
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_21139 if-if-and_binary64_21138 if-if-or-not_binary64_21137 if-if-or_binary64_21136 if-not_binary64_21135 if-same_binary64_21134 if-false_binary64_21133 if-true_binary64_21132 tan-0_binary64_21008 cos-0_binary64_21007 sin-0_binary64_21006 unpow1_binary64_20937 e-exp-1_binary64_20924 1-exp_binary64_20923 exp-1-e_binary64_20922 exp-0_binary64_20921 sqr-abs_binary64_20894 sqr-neg_binary64_20893 neg-mul-1_binary64_20875 neg-sub0_binary64_20874 unsub-neg_binary64_20873 sub-neg_binary64_20872 mul-1-neg_binary64_20871 /-rgt-identity_binary64_20870 *-rgt-identity_binary64_20869 *-lft-identity_binary64_20868 remove-double-neg_binary64_20867 sub0-neg_binary64_20866 --rgt-identity_binary64_20865 +-rgt-identity_binary64_20864 +-lft-identity_binary64_20863 cancel-sign-sub-inv_binary64_20845 cancel-sign-sub_binary64_20844 distribute-neg-frac_binary64_20843 distribute-frac-neg_binary64_20842 distribute-neg-out_binary64_20841 distribute-neg-in_binary64_20840 distribute-rgt-neg-out_binary64_20839 distribute-lft-neg-out_binary64_20838 distribute-rgt-neg-in_binary64_20837 distribute-lft-neg-in_binary64_20836
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0610
1910
Proof
(+ f64 h0 (* f64 h1 (* f64 h0 h1)))

end0.0ms (0%)

sample714.0ms (12.5%)

Algorithm
intervals
Results
182.0ms8000×body128valid
4.0ms181×body128invalid
Compiler

Compiled 367 to 219 computations (40.3% saved)

Profiling

Loading profile data...