Details

Time bar (total: 2.7s)

analyze503.0ms (18.8%)

Algorithm
search
egg-herbie
Rules
740×unsub-neg_binary64_5869
616×sub-neg_binary64_5868 distribute-rgt-out--_binary64_5829
615×*-commutative_binary64_5806
534×distribute-rgt-in_binary64_5825
489×neg-sub0_binary64_5870
470×distribute-neg-out_binary64_5837
426×distribute-lft-out--_binary64_5827
420×distribute-lft-out_binary64_5826
385×neg-mul-1_binary64_5871
348×associate--l-_binary64_5813
314×distribute-lft-in_binary64_5824
310×associate--l+_binary64_5812
293×+-commutative_binary64_5805
292×distribute-rgt-out_binary64_5828
245×cancel-sign-sub-inv_binary64_5841
194×distribute-rgt-neg-out_binary64_5835
181×associate--r+_binary64_5811
173×associate-+r-_binary64_5809
172×distribute-lft-neg-in_binary64_5832
164×distribute-lft-neg-out_binary64_5834
163×distribute-neg-in_binary64_5836
138×associate-+l-_binary64_5810
125×distribute-rgt-neg-in_binary64_5833
70×associate--r-_binary64_5814
58×associate-*l*_binary64_5816
42×associate-*r*_binary64_5815
30×cancel-sign-sub_binary64_5840
25×associate-+r+_binary64_5807
21×*-rgt-identity_binary64_5865
20×mul0-lft_binary64_5857
19×distribute-rgt1-in_binary64_5831 associate-+l+_binary64_5808
16×mul0-rgt_binary64_5858
15×+-lft-identity_binary64_5859
11×sub0-neg_binary64_5862
10×distribute-lft1-in_binary64_5830
*-lft-identity_binary64_5864
+-inverses_binary64_5854
swap-sqr_binary64_5842
remove-double-neg_binary64_5863
sqr-neg_binary64_5889 +-rgt-identity_binary64_5860
difference-of-squares_binary64_5844
1-exp_binary64_5919
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_6138 erf-erfc_binary64_6137 erf-odd_binary64_6136 if-if-and-not_binary64_6135 if-if-and_binary64_6134 if-if-or-not_binary64_6133 if-if-or_binary64_6132 if-not_binary64_6131 if-same_binary64_6130 if-false_binary64_6129 if-true_binary64_6128 not-gte_binary64_6127 not-lte_binary64_6126 not-gt_binary64_6125 not-lt_binary64_6124 gte-same_binary64_6123 lte-same_binary64_6122 gt-same_binary64_6121 lt-same_binary64_6120 sinh---cosh_binary64_6067 sinh-+-cosh_binary64_6066 sinh-cosh_binary64_6065 tanh-def-c_binary64_6064 tanh-def-b_binary64_6063 tanh-def-a_binary64_6062 cosh-def_binary64_6061 sinh-def_binary64_6060 tan-neg_binary64_6007 cos-neg_binary64_6006 sin-neg_binary64_6005 tan-0_binary64_6004 cos-0_binary64_6003 sin-0_binary64_6002 hang-m-tan_binary64_6001 hang-p-tan_binary64_6000 hang-m0-tan_binary64_5999 hang-p0-tan_binary64_5998 hang-0m-tan_binary64_5997 hang-0p-tan_binary64_5996 tan-+PI/2_binary64_5995 tan-+PI_binary64_5994 tan-PI_binary64_5993 tan-PI/3_binary64_5992 tan-PI/4_binary64_5991 tan-PI/6_binary64_5990 cos-+PI/2_binary64_5989 cos-+PI_binary64_5988 cos-PI_binary64_5987 cos-PI/2_binary64_5986 cos-PI/3_binary64_5985 cos-PI/4_binary64_5984 cos-PI/6_binary64_5983 sin-+PI/2_binary64_5982 sin-+PI_binary64_5981 sin-PI_binary64_5980 sin-PI/2_binary64_5979 sin-PI/3_binary64_5978 sin-PI/4_binary64_5977 sin-PI/6_binary64_5976 sub-1-sin_binary64_5975 sub-1-cos_binary64_5974 -1-add-sin_binary64_5973 -1-add-cos_binary64_5972 1-sub-sin_binary64_5971 1-sub-cos_binary64_5970 cos-sin-sum_binary64_5969 log-E_binary64_5965 log-pow_binary64_5964 log-rec_binary64_5963 log-div_binary64_5962 log-prod_binary64_5961 pow-base-0_binary64_5959 unpow1/3_binary64_5942 unpow3_binary64_5941 unpow2_binary64_5940 unpow1/2_binary64_5939 pow-plus_binary64_5938 exp-to-pow_binary64_5937 pow-base-1_binary64_5935 unpow0_binary64_5934 unpow1_binary64_5933 unpow-1_binary64_5932 exp-lft-cube_binary64_5931 exp-lft-sqr_binary64_5930 exp-cbrt_binary64_5929 exp-sqrt_binary64_5928 exp-prod_binary64_5927 div-exp_binary64_5926 rec-exp_binary64_5925 prod-exp_binary64_5924 exp-diff_binary64_5923 exp-neg_binary64_5922 exp-sum_binary64_5921 e-exp-1_binary64_5920 exp-1-e_binary64_5918 exp-0_binary64_5917 rem-log-exp_binary64_5916 rem-exp-log_binary64_5915 cube-unmult_binary64_5912 cube-mult_binary64_5905 cube-div_binary64_5904 cube-prod_binary64_5903 cube-neg_binary64_5902 rem-3cbrt-rft_binary64_5901 rem-3cbrt-lft_binary64_5900 rem-cbrt-cube_binary64_5899 rem-cube-cbrt_binary64_5898 sqr-abs_binary64_5890 rem-sqrt-square_binary64_5888 rem-square-sqrt_binary64_5887 times-frac_binary64_5881 div-sub_binary64_5880 mul-1-neg_binary64_5867 /-rgt-identity_binary64_5866 --rgt-identity_binary64_5861 div0_binary64_5856 *-inverses_binary64_5855 lft-mult-inverse_binary64_5853 rgt-mult-inverse_binary64_5852 remove-double-div_binary64_5851 pow-sqr_binary64_5848 sqr-pow_binary64_5847 difference-of-sqr--1_binary64_5846 difference-of-sqr-1_binary64_5845 unswap-sqr_binary64_5843 distribute-neg-frac_binary64_5839 distribute-frac-neg_binary64_5838 count-2_binary64_5823 associate-/l/_binary64_5822 associate-/r/_binary64_5821 associate-/l*_binary64_5820 associate-/r*_binary64_5819 associate-*l/_binary64_5818 associate-*r/_binary64_5817
Iterations

Useful iterations: 0 (0.0ms)

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

Compiled 8 to 6 computations (25% saved)

sample14.0ms (0.5%)

Algorithm
intervals
Results
5.0ms256×body128valid
0.0msbody128invalid
Compiler

Compiled 15 to 13 computations (13.3% saved)

simplify360.0ms (13.5%)

Algorithm
egg-herbie
Rules
3990×distribute-rgt-in_binary64_5825
2232×associate--r-_binary64_5814
1285×sub-neg_binary64_5868
783×unsub-neg_binary64_5869
740×*-commutative_binary64_5806
465×distribute-neg-out_binary64_5837
451×distribute-rgt-out--_binary64_5829
401×distribute-rgt-out_binary64_5828
399×+-commutative_binary64_5805
315×neg-sub0_binary64_5870
289×distribute-rgt-neg-in_binary64_5833
272×neg-mul-1_binary64_5871
271×distribute-lft-neg-in_binary64_5832
221×cancel-sign-sub-inv_binary64_5841
203×distribute-lft-out_binary64_5826
172×distribute-neg-in_binary64_5836
162×distribute-lft-neg-out_binary64_5834
144×distribute-lft-out--_binary64_5827
135×associate--r+_binary64_5811
119×associate-+r-_binary64_5809
116×associate--l+_binary64_5812
108×associate-+l+_binary64_5808
86×associate--l-_binary64_5813
83×associate-+l-_binary64_5810
79×distribute-lft-in_binary64_5824
76×distribute-rgt-neg-out_binary64_5835
75×associate-+r+_binary64_5807
65×distribute-rgt1-in_binary64_5831
44×associate-*r*_binary64_5815
40×sub0-neg_binary64_5862
33×associate-*l*_binary64_5816
32×+-inverses_binary64_5854
30×remove-double-neg_binary64_5863
20×*-rgt-identity_binary64_5865
15×difference-of-squares_binary64_5844
11×*-lft-identity_binary64_5864
mul0-lft_binary64_5857 distribute-lft1-in_binary64_5830
+-lft-identity_binary64_5859 mul0-rgt_binary64_5858
swap-sqr_binary64_5842 cancel-sign-sub_binary64_5840
sqr-neg_binary64_5889
mul-1-neg_binary64_5867 --rgt-identity_binary64_5861 +-rgt-identity_binary64_5860
1-exp_binary64_5919 count-2_binary64_5823
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_6138 erf-erfc_binary64_6137 erf-odd_binary64_6136 if-if-and-not_binary64_6135 if-if-and_binary64_6134 if-if-or-not_binary64_6133 if-if-or_binary64_6132 if-not_binary64_6131 if-same_binary64_6130 if-false_binary64_6129 if-true_binary64_6128 not-gte_binary64_6127 not-lte_binary64_6126 not-gt_binary64_6125 not-lt_binary64_6124 gte-same_binary64_6123 lte-same_binary64_6122 gt-same_binary64_6121 lt-same_binary64_6120 sinh---cosh_binary64_6067 sinh-+-cosh_binary64_6066 sinh-cosh_binary64_6065 tanh-def-c_binary64_6064 tanh-def-b_binary64_6063 tanh-def-a_binary64_6062 cosh-def_binary64_6061 sinh-def_binary64_6060 tan-neg_binary64_6007 cos-neg_binary64_6006 sin-neg_binary64_6005 tan-0_binary64_6004 cos-0_binary64_6003 sin-0_binary64_6002 hang-m-tan_binary64_6001 hang-p-tan_binary64_6000 hang-m0-tan_binary64_5999 hang-p0-tan_binary64_5998 hang-0m-tan_binary64_5997 hang-0p-tan_binary64_5996 tan-+PI/2_binary64_5995 tan-+PI_binary64_5994 tan-PI_binary64_5993 tan-PI/3_binary64_5992 tan-PI/4_binary64_5991 tan-PI/6_binary64_5990 cos-+PI/2_binary64_5989 cos-+PI_binary64_5988 cos-PI_binary64_5987 cos-PI/2_binary64_5986 cos-PI/3_binary64_5985 cos-PI/4_binary64_5984 cos-PI/6_binary64_5983 sin-+PI/2_binary64_5982 sin-+PI_binary64_5981 sin-PI_binary64_5980 sin-PI/2_binary64_5979 sin-PI/3_binary64_5978 sin-PI/4_binary64_5977 sin-PI/6_binary64_5976 sub-1-sin_binary64_5975 sub-1-cos_binary64_5974 -1-add-sin_binary64_5973 -1-add-cos_binary64_5972 1-sub-sin_binary64_5971 1-sub-cos_binary64_5970 cos-sin-sum_binary64_5969 log-E_binary64_5965 log-pow_binary64_5964 log-rec_binary64_5963 log-div_binary64_5962 log-prod_binary64_5961 pow-base-0_binary64_5959 unpow1/3_binary64_5942 unpow3_binary64_5941 unpow2_binary64_5940 unpow1/2_binary64_5939 pow-plus_binary64_5938 exp-to-pow_binary64_5937 pow-base-1_binary64_5935 unpow0_binary64_5934 unpow1_binary64_5933 unpow-1_binary64_5932 exp-lft-cube_binary64_5931 exp-lft-sqr_binary64_5930 exp-cbrt_binary64_5929 exp-sqrt_binary64_5928 exp-prod_binary64_5927 div-exp_binary64_5926 rec-exp_binary64_5925 prod-exp_binary64_5924 exp-diff_binary64_5923 exp-neg_binary64_5922 exp-sum_binary64_5921 e-exp-1_binary64_5920 exp-1-e_binary64_5918 exp-0_binary64_5917 rem-log-exp_binary64_5916 rem-exp-log_binary64_5915 cube-unmult_binary64_5912 cube-mult_binary64_5905 cube-div_binary64_5904 cube-prod_binary64_5903 cube-neg_binary64_5902 rem-3cbrt-rft_binary64_5901 rem-3cbrt-lft_binary64_5900 rem-cbrt-cube_binary64_5899 rem-cube-cbrt_binary64_5898 sqr-abs_binary64_5890 rem-sqrt-square_binary64_5888 rem-square-sqrt_binary64_5887 times-frac_binary64_5881 div-sub_binary64_5880 /-rgt-identity_binary64_5866 div0_binary64_5856 *-inverses_binary64_5855 lft-mult-inverse_binary64_5853 rgt-mult-inverse_binary64_5852 remove-double-div_binary64_5851 pow-sqr_binary64_5848 sqr-pow_binary64_5847 difference-of-sqr--1_binary64_5846 difference-of-sqr-1_binary64_5845 unswap-sqr_binary64_5843 distribute-neg-frac_binary64_5839 distribute-frac-neg_binary64_5838 associate-/l/_binary64_5822 associate-/r/_binary64_5821 associate-/l*_binary64_5820 associate-/r*_binary64_5819 associate-*l/_binary64_5818 associate-*r/_binary64_5817
Counts
1 → 0
Iterations

Useful iterations: 0 (0.0ms)

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

prune2.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 7 to 5 computations (28.6% saved)

localize7.0ms (0.3%)

Local error

Found 1 expressions with local error:

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

rewrite14.0ms (0.5%)

Algorithm
rewrite-expression-head
Error
0b
Rules
add-log-exp_binary64_5914
diff-log_binary64_5967 pow1_binary64_5936 add-exp-log_binary64_5913 add-cbrt-cube_binary64_5911 add-cube-cbrt_binary64_5910 add-sqr-sqrt_binary64_5897 flip3--_binary64_5879 *-un-lft-identity_binary64_5875 sub-neg_binary64_5868 flip--_binary64_5850 difference-of-squares_binary64_5844 cancel-sign-sub-inv_binary64_5841
Counts
1 → 13
Calls

1 calls:

4.0ms
(-.f64 (*.f64 x x) (*.f64 y y))
Compiler

Compiled 194 to 47 computations (75.8% saved)

series121.0ms (4.5%)

Error
0.0b
Counts
1 → 12
Calls

1 calls:

112.0ms
(-.f64 (*.f64 x x) (*.f64 y y))
Compiler

Compiled 174 to 164 computations (5.7% saved)

simplify51.0ms (1.9%)

Algorithm
egg-herbie
Rules
792×distribute-rgt-in_binary64_5825
734×distribute-lft-in_binary64_5824
713×unswap-sqr_binary64_5843
422×unsub-neg_binary64_5869
253×*-commutative_binary64_5806
115×associate-*l*_binary64_5816
105×associate-*r*_binary64_5815
104×sqr-pow_binary64_5847 difference-of-squares_binary64_5844
103×exp-sum_binary64_5921
101×neg-sub0_binary64_5870
97×neg-mul-1_binary64_5871
90×cancel-sign-sub-inv_binary64_5841
86×exp-prod_binary64_5927
63×sub-neg_binary64_5868
58×associate-+r+_binary64_5807
57×distribute-lft-neg-out_binary64_5834
53×distribute-rgt-neg-out_binary64_5835
49×mul0-rgt_binary64_5858 mul0-lft_binary64_5857
47×associate-+l+_binary64_5808
41×distribute-rgt-neg-in_binary64_5833 distribute-lft-neg-in_binary64_5832
39×times-frac_binary64_5881
31×distribute-rgt-out_binary64_5828
29×+-commutative_binary64_5805
28×pow-sqr_binary64_5848
23×cube-prod_binary64_5903
21×exp-diff_binary64_5923
18×pow-plus_binary64_5938 distribute-lft-out_binary64_5826
16×cube-unmult_binary64_5912
15×mul-1-neg_binary64_5867
12×unpow3_binary64_5941
10×sub0-neg_binary64_5862 associate-/l*_binary64_5820 associate-+r-_binary64_5809
div-sub_binary64_5880 swap-sqr_binary64_5842
+-rgt-identity_binary64_5860 associate-/r*_binary64_5819 associate-+l-_binary64_5810
cube-mult_binary64_5905 sqr-neg_binary64_5889 associate-*r/_binary64_5817
log-prod_binary64_5961
exp-neg_binary64_5922 associate-/l/_binary64_5822 associate--r+_binary64_5811
+-lft-identity_binary64_5859 associate-/r/_binary64_5821
unpow2_binary64_5940 unpow1/2_binary64_5939 unpow1_binary64_5933 cube-neg_binary64_5902 rem-sqrt-square_binary64_5888 --rgt-identity_binary64_5861 distribute-neg-in_binary64_5836
div-exp_binary64_5926 1-exp_binary64_5919 *-rgt-identity_binary64_5865 remove-double-neg_binary64_5863 associate-*l/_binary64_5818
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_6138 erf-erfc_binary64_6137 erf-odd_binary64_6136 if-if-and-not_binary64_6135 if-if-and_binary64_6134 if-if-or-not_binary64_6133 if-if-or_binary64_6132 if-not_binary64_6131 if-same_binary64_6130 if-false_binary64_6129 if-true_binary64_6128 not-gte_binary64_6127 not-lte_binary64_6126 not-gt_binary64_6125 not-lt_binary64_6124 gte-same_binary64_6123 lte-same_binary64_6122 gt-same_binary64_6121 lt-same_binary64_6120 sinh---cosh_binary64_6067 sinh-+-cosh_binary64_6066 sinh-cosh_binary64_6065 tanh-def-c_binary64_6064 tanh-def-b_binary64_6063 tanh-def-a_binary64_6062 cosh-def_binary64_6061 sinh-def_binary64_6060 tan-neg_binary64_6007 cos-neg_binary64_6006 sin-neg_binary64_6005 tan-0_binary64_6004 cos-0_binary64_6003 sin-0_binary64_6002 hang-m-tan_binary64_6001 hang-p-tan_binary64_6000 hang-m0-tan_binary64_5999 hang-p0-tan_binary64_5998 hang-0m-tan_binary64_5997 hang-0p-tan_binary64_5996 tan-+PI/2_binary64_5995 tan-+PI_binary64_5994 tan-PI_binary64_5993 tan-PI/3_binary64_5992 tan-PI/4_binary64_5991 tan-PI/6_binary64_5990 cos-+PI/2_binary64_5989 cos-+PI_binary64_5988 cos-PI_binary64_5987 cos-PI/2_binary64_5986 cos-PI/3_binary64_5985 cos-PI/4_binary64_5984 cos-PI/6_binary64_5983 sin-+PI/2_binary64_5982 sin-+PI_binary64_5981 sin-PI_binary64_5980 sin-PI/2_binary64_5979 sin-PI/3_binary64_5978 sin-PI/4_binary64_5977 sin-PI/6_binary64_5976 sub-1-sin_binary64_5975 sub-1-cos_binary64_5974 -1-add-sin_binary64_5973 -1-add-cos_binary64_5972 1-sub-sin_binary64_5971 1-sub-cos_binary64_5970 cos-sin-sum_binary64_5969 log-E_binary64_5965 log-pow_binary64_5964 log-rec_binary64_5963 log-div_binary64_5962 pow-base-0_binary64_5959 unpow1/3_binary64_5942 exp-to-pow_binary64_5937 pow-base-1_binary64_5935 unpow0_binary64_5934 unpow-1_binary64_5932 exp-lft-cube_binary64_5931 exp-lft-sqr_binary64_5930 exp-cbrt_binary64_5929 exp-sqrt_binary64_5928 rec-exp_binary64_5925 prod-exp_binary64_5924 e-exp-1_binary64_5920 exp-1-e_binary64_5918 exp-0_binary64_5917 rem-log-exp_binary64_5916 rem-exp-log_binary64_5915 cube-div_binary64_5904 rem-3cbrt-rft_binary64_5901 rem-3cbrt-lft_binary64_5900 rem-cbrt-cube_binary64_5899 rem-cube-cbrt_binary64_5898 sqr-abs_binary64_5890 rem-square-sqrt_binary64_5887 /-rgt-identity_binary64_5866 *-lft-identity_binary64_5864 div0_binary64_5856 *-inverses_binary64_5855 +-inverses_binary64_5854 lft-mult-inverse_binary64_5853 rgt-mult-inverse_binary64_5852 remove-double-div_binary64_5851 difference-of-sqr--1_binary64_5846 difference-of-sqr-1_binary64_5845 cancel-sign-sub_binary64_5840 distribute-neg-frac_binary64_5839 distribute-frac-neg_binary64_5838 distribute-neg-out_binary64_5837 distribute-rgt1-in_binary64_5831 distribute-lft1-in_binary64_5830 distribute-rgt-out--_binary64_5829 distribute-lft-out--_binary64_5827 count-2_binary64_5823 associate--r-_binary64_5814 associate--l-_binary64_5813 associate--l+_binary64_5812
Counts
25 → 18
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
038318
1100273
2264273
3916273
43323273
54867273

prune12.0ms (0.5%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 142 to 40 computations (71.8% saved)

localize5.0ms (0.2%)

Local error

Found 1 expressions with local error:

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

rewrite45.0ms (1.7%)

Algorithm
rewrite-expression-head
Error
0b
Rules
add-sqr-sqrt_binary64_5897 *-un-lft-identity_binary64_5875
cancel-sign-sub-inv_binary64_5841
add-cube-cbrt_binary64_5910 associate-*r*_binary64_5815
frac-times_binary64_5885 distribute-rgt-in_binary64_5825 distribute-lft-in_binary64_5824 associate-*l*_binary64_5816
pow1_binary64_5936 add-exp-log_binary64_5913 add-cbrt-cube_binary64_5911 flip3--_binary64_5879 flip3-+_binary64_5878 flip--_binary64_5850 flip-+_binary64_5849
sub-neg_binary64_5868 associate-*l/_binary64_5818 associate-*r/_binary64_5817
pow-prod-down_binary64_5946 prod-exp_binary64_5924 add-log-exp_binary64_5914 cbrt-unprod_binary64_5908 unswap-sqr_binary64_5843 distribute-lft-out_binary64_5826 difference-of-squares_binary64_5844 distribute-lft-out--_binary64_5827 *-commutative_binary64_5806
Counts
1 → 37
Calls

1 calls:

11.0ms
(*.f64 (+.f64 y x) (-.f64 x y))
Compiler

Compiled 607 to 159 computations (73.8% saved)

series168.0ms (6.3%)

Error
0.0b
Counts
1 → 12
Calls

1 calls:

160.0ms
(*.f64 (+.f64 y x) (-.f64 x y))
Compiler

Compiled 174 to 164 computations (5.7% saved)

simplify87.0ms (3.3%)

Algorithm
egg-herbie
Rules
744×times-frac_binary64_5881
431×exp-prod_binary64_5927
387×unsub-neg_binary64_5869
287×*-commutative_binary64_5806
269×exp-sum_binary64_5921
251×distribute-rgt-neg-out_binary64_5835
212×exp-diff_binary64_5923
185×sub-neg_binary64_5868
180×sqr-pow_binary64_5847
176×neg-mul-1_binary64_5871
170×neg-sub0_binary64_5870
169×unswap-sqr_binary64_5843
160×associate-+r+_binary64_5807
158×+-commutative_binary64_5805
157×associate-+l+_binary64_5808
110×distribute-rgt-in_binary64_5825
103×distribute-lft-in_binary64_5824
98×associate-*l*_binary64_5816
92×distribute-neg-in_binary64_5836
87×distribute-lft-neg-out_binary64_5834
85×cancel-sign-sub-inv_binary64_5841 associate-*r*_binary64_5815
80×distribute-neg-out_binary64_5837
67×cancel-sign-sub_binary64_5840
66×distribute-rgt-neg-in_binary64_5833
61×difference-of-squares_binary64_5844
60×div-sub_binary64_5880
55×cube-prod_binary64_5903 distribute-lft-neg-in_binary64_5832
49×exp-neg_binary64_5922
47×associate-+l-_binary64_5810
43×rem-sqrt-square_binary64_5888
42×distribute-rgt-out_binary64_5828
40×swap-sqr_binary64_5842 associate--r+_binary64_5811
36×sqr-neg_binary64_5889
35×associate-+r-_binary64_5809
34×remove-double-neg_binary64_5863
32×pow-sqr_binary64_5848
30×sub0-neg_binary64_5862
25×*-lft-identity_binary64_5864
22×log-prod_binary64_5961
20×*-rgt-identity_binary64_5865
18×+-rgt-identity_binary64_5860
15×unpow3_binary64_5941 unpow1/2_binary64_5939
11×cube-unmult_binary64_5912
10×cube-neg_binary64_5902
associate-/l*_binary64_5820
cube-mult_binary64_5905 associate--r-_binary64_5814
distribute-frac-neg_binary64_5838 distribute-rgt-out--_binary64_5829
pow-plus_binary64_5938
+-lft-identity_binary64_5859
unpow2_binary64_5940 distribute-neg-frac_binary64_5839 distribute-lft-out_binary64_5826
unpow1_binary64_5933 --rgt-identity_binary64_5861 count-2_binary64_5823 associate-*r/_binary64_5817
1-exp_binary64_5919 exp-1-e_binary64_5918 rem-3cbrt-lft_binary64_5900 rem-square-sqrt_binary64_5887 mul-1-neg_binary64_5867 +-inverses_binary64_5854 associate-/l/_binary64_5822 associate-*l/_binary64_5818 associate--l+_binary64_5812
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_6138 erf-erfc_binary64_6137 erf-odd_binary64_6136 if-if-and-not_binary64_6135 if-if-and_binary64_6134 if-if-or-not_binary64_6133 if-if-or_binary64_6132 if-not_binary64_6131 if-same_binary64_6130 if-false_binary64_6129 if-true_binary64_6128 not-gte_binary64_6127 not-lte_binary64_6126 not-gt_binary64_6125 not-lt_binary64_6124 gte-same_binary64_6123 lte-same_binary64_6122 gt-same_binary64_6121 lt-same_binary64_6120 sinh---cosh_binary64_6067 sinh-+-cosh_binary64_6066 sinh-cosh_binary64_6065 tanh-def-c_binary64_6064 tanh-def-b_binary64_6063 tanh-def-a_binary64_6062 cosh-def_binary64_6061 sinh-def_binary64_6060 tan-neg_binary64_6007 cos-neg_binary64_6006 sin-neg_binary64_6005 tan-0_binary64_6004 cos-0_binary64_6003 sin-0_binary64_6002 hang-m-tan_binary64_6001 hang-p-tan_binary64_6000 hang-m0-tan_binary64_5999 hang-p0-tan_binary64_5998 hang-0m-tan_binary64_5997 hang-0p-tan_binary64_5996 tan-+PI/2_binary64_5995 tan-+PI_binary64_5994 tan-PI_binary64_5993 tan-PI/3_binary64_5992 tan-PI/4_binary64_5991 tan-PI/6_binary64_5990 cos-+PI/2_binary64_5989 cos-+PI_binary64_5988 cos-PI_binary64_5987 cos-PI/2_binary64_5986 cos-PI/3_binary64_5985 cos-PI/4_binary64_5984 cos-PI/6_binary64_5983 sin-+PI/2_binary64_5982 sin-+PI_binary64_5981 sin-PI_binary64_5980 sin-PI/2_binary64_5979 sin-PI/3_binary64_5978 sin-PI/4_binary64_5977 sin-PI/6_binary64_5976 sub-1-sin_binary64_5975 sub-1-cos_binary64_5974 -1-add-sin_binary64_5973 -1-add-cos_binary64_5972 1-sub-sin_binary64_5971 1-sub-cos_binary64_5970 cos-sin-sum_binary64_5969 log-E_binary64_5965 log-pow_binary64_5964 log-rec_binary64_5963 log-div_binary64_5962 pow-base-0_binary64_5959 unpow1/3_binary64_5942 exp-to-pow_binary64_5937 pow-base-1_binary64_5935 unpow0_binary64_5934 unpow-1_binary64_5932 exp-lft-cube_binary64_5931 exp-lft-sqr_binary64_5930 exp-cbrt_binary64_5929 exp-sqrt_binary64_5928 div-exp_binary64_5926 rec-exp_binary64_5925 prod-exp_binary64_5924 e-exp-1_binary64_5920 exp-0_binary64_5917 rem-log-exp_binary64_5916 rem-exp-log_binary64_5915 cube-div_binary64_5904 rem-3cbrt-rft_binary64_5901 rem-cbrt-cube_binary64_5899 rem-cube-cbrt_binary64_5898 sqr-abs_binary64_5890 /-rgt-identity_binary64_5866 mul0-rgt_binary64_5858 mul0-lft_binary64_5857 div0_binary64_5856 *-inverses_binary64_5855 lft-mult-inverse_binary64_5853 rgt-mult-inverse_binary64_5852 remove-double-div_binary64_5851 difference-of-sqr--1_binary64_5846 difference-of-sqr-1_binary64_5845 distribute-rgt1-in_binary64_5831 distribute-lft1-in_binary64_5830 distribute-lft-out--_binary64_5827 associate-/r/_binary64_5821 associate-/r*_binary64_5819 associate--l-_binary64_5813
Counts
49 → 46
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
091748
1256706
2925706
31376706
42632706
54013706
65696706

prune30.0ms (1.1%)

Pruning

2 alts after pruning (1 fresh and 1 done)

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

Compiled 591 to 129 computations (78.2% saved)

localize11.0ms (0.4%)

Local error

Found 2 expressions with local error:

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

rewrite126.0ms (4.7%)

Algorithm
rewrite-expression-head
Error
0b
Rules
42×sqrt-div_binary64_5892
32×frac-times_binary64_5885
21×flip3-+_binary64_5878 flip-+_binary64_5849
16×associate-*r/_binary64_5817
13×add-sqr-sqrt_binary64_5897 *-un-lft-identity_binary64_5875
12×flip3--_binary64_5879 flip--_binary64_5850 associate-*l*_binary64_5816
10×associate-*l/_binary64_5818
pow1_binary64_5936 add-exp-log_binary64_5913 add-cbrt-cube_binary64_5911 sqrt-prod_binary64_5891
associate-*r*_binary64_5815
add-cube-cbrt_binary64_5910
pow-prod-down_binary64_5946 prod-exp_binary64_5924 cbrt-unprod_binary64_5908
add-log-exp_binary64_5914 unswap-sqr_binary64_5843 distribute-lft-out_binary64_5826 *-commutative_binary64_5806
difference-of-squares_binary64_5844 distribute-lft-out--_binary64_5827
Counts
2 → 81
Calls

2 calls:

16.0ms
(*.f64 (sqrt.f64 (+.f64 y x)) (*.f64 (-.f64 x y) (sqrt.f64 (+.f64 x y))))
11.0ms
(*.f64 (-.f64 x y) (sqrt.f64 (+.f64 x y)))
Compiler

Compiled 2272 to 474 computations (79.1% saved)

series227.0ms (8.5%)

Error
0b
Counts
2 → 20
Calls

2 calls:

144.0ms
(*.f64 (sqrt.f64 (+.f64 y x)) (*.f64 (-.f64 x y) (sqrt.f64 (+.f64 x y))))
72.0ms
(*.f64 (-.f64 x y) (sqrt.f64 (+.f64 x y)))
Compiler

Compiled 464 to 372 computations (19.8% saved)

simplify125.0ms (4.7%)

Algorithm
egg-herbie
Rules
670×distribute-rgt-in_binary64_5825
665×distribute-lft-in_binary64_5824
338×*-commutative_binary64_5806
278×distribute-lft-neg-out_binary64_5834
275×distribute-rgt-neg-out_binary64_5835
172×associate-*l*_binary64_5816
171×associate-*r*_binary64_5815
138×unswap-sqr_binary64_5843
134×exp-prod_binary64_5927
77×exp-sum_binary64_5921
68×cancel-sign-sub-inv_binary64_5841
64×neg-sub0_binary64_5870
60×neg-mul-1_binary64_5871 sub-neg_binary64_5868
59×distribute-rgt-neg-in_binary64_5833
55×unsub-neg_binary64_5869
54×distribute-lft-neg-in_binary64_5832
53×sqr-pow_binary64_5847
40×*-rgt-identity_binary64_5865
37×*-lft-identity_binary64_5864
25×associate-+l+_binary64_5808
22×exp-diff_binary64_5923 distribute-rgt-out_binary64_5828 +-commutative_binary64_5805
21×swap-sqr_binary64_5842
19×log-prod_binary64_5961
18×cube-prod_binary64_5903 difference-of-squares_binary64_5844
14×associate-+l-_binary64_5810 associate-+r+_binary64_5807
13×associate-+r-_binary64_5809
11×associate-/l*_binary64_5820
10×pow-sqr_binary64_5848
unpow3_binary64_5941 +-rgt-identity_binary64_5860
rem-sqrt-square_binary64_5888 sub0-neg_binary64_5862
exp-neg_binary64_5922
cube-unmult_binary64_5912 div-sub_binary64_5880 associate-/r*_binary64_5819 associate-*r/_binary64_5817
unpow1/2_binary64_5939 associate-/l/_binary64_5822
rem-square-sqrt_binary64_5887 mul-1-neg_binary64_5867 distribute-neg-in_binary64_5836 distribute-rgt-out--_binary64_5829
pow-plus_binary64_5938 sqr-neg_binary64_5889 associate-/r/_binary64_5821 associate--r-_binary64_5814
unpow2_binary64_5940 unpow1_binary64_5933 cube-mult_binary64_5905 distribute-neg-out_binary64_5837 count-2_binary64_5823
1-exp_binary64_5919 exp-1-e_binary64_5918 cancel-sign-sub_binary64_5840 associate-*l/_binary64_5818
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_6138 erf-erfc_binary64_6137 erf-odd_binary64_6136 if-if-and-not_binary64_6135 if-if-and_binary64_6134 if-if-or-not_binary64_6133 if-if-or_binary64_6132 if-not_binary64_6131 if-same_binary64_6130 if-false_binary64_6129 if-true_binary64_6128 not-gte_binary64_6127 not-lte_binary64_6126 not-gt_binary64_6125 not-lt_binary64_6124 gte-same_binary64_6123 lte-same_binary64_6122 gt-same_binary64_6121 lt-same_binary64_6120 sinh---cosh_binary64_6067 sinh-+-cosh_binary64_6066 sinh-cosh_binary64_6065 tanh-def-c_binary64_6064 tanh-def-b_binary64_6063 tanh-def-a_binary64_6062 cosh-def_binary64_6061 sinh-def_binary64_6060 tan-neg_binary64_6007 cos-neg_binary64_6006 sin-neg_binary64_6005 tan-0_binary64_6004 cos-0_binary64_6003 sin-0_binary64_6002 hang-m-tan_binary64_6001 hang-p-tan_binary64_6000 hang-m0-tan_binary64_5999 hang-p0-tan_binary64_5998 hang-0m-tan_binary64_5997 hang-0p-tan_binary64_5996 tan-+PI/2_binary64_5995 tan-+PI_binary64_5994 tan-PI_binary64_5993 tan-PI/3_binary64_5992 tan-PI/4_binary64_5991 tan-PI/6_binary64_5990 cos-+PI/2_binary64_5989 cos-+PI_binary64_5988 cos-PI_binary64_5987 cos-PI/2_binary64_5986 cos-PI/3_binary64_5985 cos-PI/4_binary64_5984 cos-PI/6_binary64_5983 sin-+PI/2_binary64_5982 sin-+PI_binary64_5981 sin-PI_binary64_5980 sin-PI/2_binary64_5979 sin-PI/3_binary64_5978 sin-PI/4_binary64_5977 sin-PI/6_binary64_5976 sub-1-sin_binary64_5975 sub-1-cos_binary64_5974 -1-add-sin_binary64_5973 -1-add-cos_binary64_5972 1-sub-sin_binary64_5971 1-sub-cos_binary64_5970 cos-sin-sum_binary64_5969 log-E_binary64_5965 log-pow_binary64_5964 log-rec_binary64_5963 log-div_binary64_5962 pow-base-0_binary64_5959 unpow1/3_binary64_5942 exp-to-pow_binary64_5937 pow-base-1_binary64_5935 unpow0_binary64_5934 unpow-1_binary64_5932 exp-lft-cube_binary64_5931 exp-lft-sqr_binary64_5930 exp-cbrt_binary64_5929 exp-sqrt_binary64_5928 div-exp_binary64_5926 rec-exp_binary64_5925 prod-exp_binary64_5924 e-exp-1_binary64_5920 exp-0_binary64_5917 rem-log-exp_binary64_5916 rem-exp-log_binary64_5915 cube-div_binary64_5904 cube-neg_binary64_5902 rem-3cbrt-rft_binary64_5901 rem-3cbrt-lft_binary64_5900 rem-cbrt-cube_binary64_5899 rem-cube-cbrt_binary64_5898 sqr-abs_binary64_5890 times-frac_binary64_5881 /-rgt-identity_binary64_5866 remove-double-neg_binary64_5863 --rgt-identity_binary64_5861 +-lft-identity_binary64_5859 mul0-rgt_binary64_5858 mul0-lft_binary64_5857 div0_binary64_5856 *-inverses_binary64_5855 +-inverses_binary64_5854 lft-mult-inverse_binary64_5853 rgt-mult-inverse_binary64_5852 remove-double-div_binary64_5851 difference-of-sqr--1_binary64_5846 difference-of-sqr-1_binary64_5845 distribute-neg-frac_binary64_5839 distribute-frac-neg_binary64_5838 distribute-rgt1-in_binary64_5831 distribute-lft1-in_binary64_5830 distribute-lft-out--_binary64_5827 distribute-lft-out_binary64_5826 associate--l-_binary64_5813 associate--l+_binary64_5812 associate--r+_binary64_5811
Counts
101 → 88
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01682580
13982332
210392227
331202227
448332227
549872227

prune78.0ms (2.9%)

Pruning

2 alts after pruning (0 fresh and 2 done)

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

Compiled 1846 to 431 computations (76.7% saved)

regimes138.0ms (5.2%)

Accuracy

Total 0.0b remaining (66.7%)

Threshold costs 0.0b (66.7%)

Compiler

Compiled 1005 to 534 computations (46.9% saved)

bsearch0.0ms (0%)

simplify3.0ms (0.1%)

Algorithm
egg-herbie
Rules
+-commutative_binary64_5805
sub-neg_binary64_5868 *-commutative_binary64_5806
neg-mul-1_binary64_5871 neg-sub0_binary64_5870
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_6135 if-if-and_binary64_6134 if-if-or-not_binary64_6133 if-if-or_binary64_6132 if-not_binary64_6131 if-same_binary64_6130 if-false_binary64_6129 if-true_binary64_6128 tan-0_binary64_6004 cos-0_binary64_6003 sin-0_binary64_6002 unpow1_binary64_5933 e-exp-1_binary64_5920 1-exp_binary64_5919 exp-1-e_binary64_5918 exp-0_binary64_5917 sqr-abs_binary64_5890 sqr-neg_binary64_5889 unsub-neg_binary64_5869 mul-1-neg_binary64_5867 /-rgt-identity_binary64_5866 *-rgt-identity_binary64_5865 *-lft-identity_binary64_5864 remove-double-neg_binary64_5863 sub0-neg_binary64_5862 --rgt-identity_binary64_5861 +-rgt-identity_binary64_5860 +-lft-identity_binary64_5859 cancel-sign-sub-inv_binary64_5841 cancel-sign-sub_binary64_5840 distribute-neg-frac_binary64_5839 distribute-frac-neg_binary64_5838 distribute-neg-out_binary64_5837 distribute-neg-in_binary64_5836 distribute-rgt-neg-out_binary64_5835 distribute-lft-neg-out_binary64_5834 distribute-rgt-neg-in_binary64_5833 distribute-lft-neg-in_binary64_5832
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0610
11010
21510
31710
41810
51810

end0.0ms (0%)

sample545.0ms (20.4%)

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

Compiled 165 to 92 computations (44.2% saved)

Profiling

Loading profile data...