Details

Time bar (total: 5.0s)

analyze4.0ms (0.1%)

Algorithm
search
Search
TrueOtherFalseIter
0%100%0%0
0%100%0%1
0%100%0%2
50%50%0%3
50%25%25%4
62.5%12.5%25%5
62.5%6.2%31.3%6
65.6%3.1%31.3%7
65.6%1.6%32.8%8
66.4%0.8%32.8%9
66.4%0.4%33.2%10
66.6%0.2%33.2%11
66.6%0.1%33.3%12
66.6%0%33.4%13
66.6%0%33.4%14
Compiler

Compiled 10 to 8 computations (20% saved)

sample13.0ms (0.3%)

Algorithm
intervals
Results
6.0ms256×body128valid
Compiler

Compiled 19 to 16 computations (15.8% saved)

simplify779.0ms (15.7%)

Algorithm
egg-herbie
Rules
817×distribute-rgt-out--_binary64_31745
740×exp-prod_binary64_31843
712×distribute-rgt-neg-in_binary64_31749
699×swap-sqr_binary64_31758
635×sub-neg_binary64_31784
77×difference-of-squares_binary64_31760
74×distribute-rgt-in_binary64_31741
73×distribute-neg-in_binary64_31752
61×neg-sub0_binary64_31786
59×neg-mul-1_binary64_31787 unsub-neg_binary64_31785
57×associate-*l*_binary64_31732
50×distribute-lft-neg-in_binary64_31748
46×associate-*r*_binary64_31731
44×distribute-lft-in_binary64_31740
40×cancel-sign-sub-inv_binary64_31757
37×distribute-rgt1-in_binary64_31747 *-commutative_binary64_31722
35×distribute-rgt-out_binary64_31744
31×distribute-lft-neg-out_binary64_31750
30×distribute-rgt-neg-out_binary64_31751
25×+-inverses_binary64_31770 associate-+l-_binary64_31726
17×mul0-lft_binary64_31773
16×associate--r+_binary64_31727
15×mul0-rgt_binary64_31774 +-commutative_binary64_31721
14×distribute-lft1-in_binary64_31746
13×associate-+r-_binary64_31725
12×sub0-neg_binary64_31778 associate-+l+_binary64_31724
11×div-sub_binary64_31796 --rgt-identity_binary64_31777
10×associate-+r+_binary64_31723
remove-double-neg_binary64_31779 sqr-pow_binary64_31763
+-lft-identity_binary64_31775 pow-sqr_binary64_31764 distribute-frac-neg_binary64_31754 count-2_binary64_31739
pow-plus_binary64_31854 times-frac_binary64_31797 +-rgt-identity_binary64_31776 unswap-sqr_binary64_31759
distribute-neg-out_binary64_31753
exp-sum_binary64_31837 associate-/l*_binary64_31736 associate--r-_binary64_31730 associate--l+_binary64_31728
exp-lft-sqr_binary64_31846 exp-diff_binary64_31839 1-exp_binary64_31835 cube-unmult_binary64_31828 cube-prod_binary64_31819 div0_binary64_31772 cancel-sign-sub_binary64_31756 associate-/l/_binary64_31738 associate-*r/_binary64_31733
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_32054 erf-erfc_binary64_32053 erf-odd_binary64_32052 if-if-and-not_binary64_32051 if-if-and_binary64_32050 if-if-or-not_binary64_32049 if-if-or_binary64_32048 if-not_binary64_32047 if-same_binary64_32046 if-false_binary64_32045 if-true_binary64_32044 not-gte_binary64_32043 not-lte_binary64_32042 not-gt_binary64_32041 not-lt_binary64_32040 gte-same_binary64_32039 lte-same_binary64_32038 gt-same_binary64_32037 lt-same_binary64_32036 sinh---cosh_binary64_31983 sinh-+-cosh_binary64_31982 sinh-cosh_binary64_31981 tanh-def-c_binary64_31980 tanh-def-b_binary64_31979 tanh-def-a_binary64_31978 cosh-def_binary64_31977 sinh-def_binary64_31976 tan-neg_binary64_31923 cos-neg_binary64_31922 sin-neg_binary64_31921 tan-0_binary64_31920 cos-0_binary64_31919 sin-0_binary64_31918 hang-m-tan_binary64_31917 hang-p-tan_binary64_31916 hang-m0-tan_binary64_31915 hang-p0-tan_binary64_31914 hang-0m-tan_binary64_31913 hang-0p-tan_binary64_31912 tan-+PI/2_binary64_31911 tan-+PI_binary64_31910 tan-PI_binary64_31909 tan-PI/3_binary64_31908 tan-PI/4_binary64_31907 tan-PI/6_binary64_31906 cos-+PI/2_binary64_31905 cos-+PI_binary64_31904 cos-PI_binary64_31903 cos-PI/2_binary64_31902 cos-PI/3_binary64_31901 cos-PI/4_binary64_31900 cos-PI/6_binary64_31899 sin-+PI/2_binary64_31898 sin-+PI_binary64_31897 sin-PI_binary64_31896 sin-PI/2_binary64_31895 sin-PI/3_binary64_31894 sin-PI/4_binary64_31893 sin-PI/6_binary64_31892 sub-1-sin_binary64_31891 sub-1-cos_binary64_31890 -1-add-sin_binary64_31889 -1-add-cos_binary64_31888 1-sub-sin_binary64_31887 1-sub-cos_binary64_31886 cos-sin-sum_binary64_31885 log-E_binary64_31881 log-pow_binary64_31880 log-rec_binary64_31879 log-div_binary64_31878 log-prod_binary64_31877 pow-base-0_binary64_31875 unpow1/3_binary64_31858 unpow3_binary64_31857 unpow2_binary64_31856 unpow1/2_binary64_31855 exp-to-pow_binary64_31853 pow-base-1_binary64_31851 unpow0_binary64_31850 unpow1_binary64_31849 unpow-1_binary64_31848 exp-lft-cube_binary64_31847 exp-cbrt_binary64_31845 exp-sqrt_binary64_31844 div-exp_binary64_31842 rec-exp_binary64_31841 prod-exp_binary64_31840 exp-neg_binary64_31838 e-exp-1_binary64_31836 exp-1-e_binary64_31834 exp-0_binary64_31833 rem-log-exp_binary64_31832 rem-exp-log_binary64_31831 cube-mult_binary64_31821 cube-div_binary64_31820 cube-neg_binary64_31818 rem-3cbrt-rft_binary64_31817 rem-3cbrt-lft_binary64_31816 rem-cbrt-cube_binary64_31815 rem-cube-cbrt_binary64_31814 sqr-abs_binary64_31806 sqr-neg_binary64_31805 rem-sqrt-square_binary64_31804 rem-square-sqrt_binary64_31803 mul-1-neg_binary64_31783 /-rgt-identity_binary64_31782 *-rgt-identity_binary64_31781 *-lft-identity_binary64_31780 *-inverses_binary64_31771 lft-mult-inverse_binary64_31769 rgt-mult-inverse_binary64_31768 remove-double-div_binary64_31767 difference-of-sqr--1_binary64_31762 difference-of-sqr-1_binary64_31761 distribute-neg-frac_binary64_31755 distribute-lft-out--_binary64_31743 distribute-lft-out_binary64_31742 associate-/r/_binary64_31737 associate-/r*_binary64_31735 associate-*l/_binary64_31734 associate--l-_binary64_31729
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0813
11713
24113
39413
414113
517613
642713
7194313

prune5.0ms (0.1%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New112
Fresh011
Picked000
Done000
Total123
Error
0.1b
Counts
3 → 2
Compiler

Compiled 36 to 26 computations (27.8% saved)

localize6.0ms (0.1%)

Local error

Found 1 expressions with local error:

0.2b
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))

rewrite41.0ms (0.8%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
pow1_binary64_31852 add-exp-log_binary64_31829 add-cbrt-cube_binary64_31827
pow-prod-down_binary64_31862 prod-exp_binary64_31840 cbrt-unprod_binary64_31824 add-sqr-sqrt_binary64_31813 associate-*r*_binary64_31731
add-cube-cbrt_binary64_31826 *-un-lft-identity_binary64_31791 sub-neg_binary64_31784 distribute-rgt-in_binary64_31741 cancel-sign-sub-inv_binary64_31757 distribute-lft-in_binary64_31740 associate-*r/_binary64_31733
add-log-exp_binary64_31830 unswap-sqr_binary64_31759 flip3--_binary64_31795 flip--_binary64_31766 associate-*l*_binary64_31732 *-commutative_binary64_31722
Counts
1 → 25
Calls

1 calls:

8.0ms
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
Compiler

Compiled 429 to 275 computations (35.9% saved)

series96.0ms (1.9%)

Error
0.0b
Counts
1 → 6
Calls

1 calls:

89.0ms
(*.f64 (*.f64 x x) (-.f64 3 (*.f64 x 2)))
Compiler

Compiled 129 to 115 computations (10.9% saved)

simplify204.0ms (4.1%)

Algorithm
egg-herbie
Rules
658×associate-*l/_binary64_31734
586×associate-*r/_binary64_31733
292×times-frac_binary64_31797
261×unswap-sqr_binary64_31759
165×*-commutative_binary64_31722
161×distribute-rgt-in_binary64_31741
155×distribute-lft-in_binary64_31740
145×associate-*l*_binary64_31732
130×associate-/l*_binary64_31736
112×associate-*r*_binary64_31731
108×cancel-sign-sub-inv_binary64_31757
106×distribute-lft-neg-out_binary64_31750
100×distribute-rgt-neg-out_binary64_31751
99×distribute-rgt-neg-in_binary64_31749
96×distribute-lft-neg-in_binary64_31748
78×exp-prod_binary64_31843
66×sqr-pow_binary64_31763
64×associate-/r*_binary64_31735
63×unsub-neg_binary64_31785
53×associate-/r/_binary64_31737
44×neg-sub0_binary64_31786
43×neg-mul-1_binary64_31787
33×sub-neg_binary64_31784
31×pow-sqr_binary64_31764
27×log-prod_binary64_31877 *-rgt-identity_binary64_31781
26×*-lft-identity_binary64_31780
24×associate-/l/_binary64_31738
23×cube-prod_binary64_31819
20×exp-sum_binary64_31837
18×pow-plus_binary64_31854
17×exp-sqrt_binary64_31844 swap-sqr_binary64_31758
13×+-commutative_binary64_31721
12×distribute-rgt-out_binary64_31744
11×mul0-rgt_binary64_31774 mul0-lft_binary64_31773
10×exp-diff_binary64_31839 cube-div_binary64_31820 difference-of-squares_binary64_31760
log-div_binary64_31878 div-sub_binary64_31796 distribute-neg-frac_binary64_31755
unpow3_binary64_31857 exp-lft-sqr_binary64_31846 cube-unmult_binary64_31828 distribute-rgt-out--_binary64_31745 associate-+r-_binary64_31725
log-pow_binary64_31880 cube-mult_binary64_31821 associate-+r+_binary64_31723
sub0-neg_binary64_31778 +-rgt-identity_binary64_31776 associate-+l-_binary64_31726 associate-+l+_binary64_31724
distribute-rgt1-in_binary64_31747 count-2_binary64_31739
exp-lft-cube_binary64_31847
unpow2_binary64_31856 unpow1_binary64_31849 prod-exp_binary64_31840 1-exp_binary64_31835 exp-1-e_binary64_31834 rem-log-exp_binary64_31832 sqr-neg_binary64_31805 *-inverses_binary64_31771 rgt-mult-inverse_binary64_31768 distribute-lft1-in_binary64_31746 distribute-lft-out_binary64_31742
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_32054 erf-erfc_binary64_32053 erf-odd_binary64_32052 if-if-and-not_binary64_32051 if-if-and_binary64_32050 if-if-or-not_binary64_32049 if-if-or_binary64_32048 if-not_binary64_32047 if-same_binary64_32046 if-false_binary64_32045 if-true_binary64_32044 not-gte_binary64_32043 not-lte_binary64_32042 not-gt_binary64_32041 not-lt_binary64_32040 gte-same_binary64_32039 lte-same_binary64_32038 gt-same_binary64_32037 lt-same_binary64_32036 sinh---cosh_binary64_31983 sinh-+-cosh_binary64_31982 sinh-cosh_binary64_31981 tanh-def-c_binary64_31980 tanh-def-b_binary64_31979 tanh-def-a_binary64_31978 cosh-def_binary64_31977 sinh-def_binary64_31976 tan-neg_binary64_31923 cos-neg_binary64_31922 sin-neg_binary64_31921 tan-0_binary64_31920 cos-0_binary64_31919 sin-0_binary64_31918 hang-m-tan_binary64_31917 hang-p-tan_binary64_31916 hang-m0-tan_binary64_31915 hang-p0-tan_binary64_31914 hang-0m-tan_binary64_31913 hang-0p-tan_binary64_31912 tan-+PI/2_binary64_31911 tan-+PI_binary64_31910 tan-PI_binary64_31909 tan-PI/3_binary64_31908 tan-PI/4_binary64_31907 tan-PI/6_binary64_31906 cos-+PI/2_binary64_31905 cos-+PI_binary64_31904 cos-PI_binary64_31903 cos-PI/2_binary64_31902 cos-PI/3_binary64_31901 cos-PI/4_binary64_31900 cos-PI/6_binary64_31899 sin-+PI/2_binary64_31898 sin-+PI_binary64_31897 sin-PI_binary64_31896 sin-PI/2_binary64_31895 sin-PI/3_binary64_31894 sin-PI/4_binary64_31893 sin-PI/6_binary64_31892 sub-1-sin_binary64_31891 sub-1-cos_binary64_31890 -1-add-sin_binary64_31889 -1-add-cos_binary64_31888 1-sub-sin_binary64_31887 1-sub-cos_binary64_31886 cos-sin-sum_binary64_31885 log-E_binary64_31881 log-rec_binary64_31879 pow-base-0_binary64_31875 unpow1/3_binary64_31858 unpow1/2_binary64_31855 exp-to-pow_binary64_31853 pow-base-1_binary64_31851 unpow0_binary64_31850 unpow-1_binary64_31848 exp-cbrt_binary64_31845 div-exp_binary64_31842 rec-exp_binary64_31841 exp-neg_binary64_31838 e-exp-1_binary64_31836 exp-0_binary64_31833 rem-exp-log_binary64_31831 cube-neg_binary64_31818 rem-3cbrt-rft_binary64_31817 rem-3cbrt-lft_binary64_31816 rem-cbrt-cube_binary64_31815 rem-cube-cbrt_binary64_31814 sqr-abs_binary64_31806 rem-sqrt-square_binary64_31804 rem-square-sqrt_binary64_31803 mul-1-neg_binary64_31783 /-rgt-identity_binary64_31782 remove-double-neg_binary64_31779 --rgt-identity_binary64_31777 +-lft-identity_binary64_31775 div0_binary64_31772 +-inverses_binary64_31770 lft-mult-inverse_binary64_31769 remove-double-div_binary64_31767 difference-of-sqr--1_binary64_31762 difference-of-sqr-1_binary64_31761 cancel-sign-sub_binary64_31756 distribute-frac-neg_binary64_31754 distribute-neg-out_binary64_31753 distribute-neg-in_binary64_31752 distribute-lft-out--_binary64_31743 associate--r-_binary64_31730 associate--l-_binary64_31729 associate--l+_binary64_31728 associate--r+_binary64_31727
Counts
31 → 61
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
062554
1173455
2686455
31588455

prune71.0ms (1.4%)

Pruning

5 alts after pruning (5 fresh and 0 done)

PrunedKeptTotal
New57461
Fresh011
Picked101
Done000
Total58563
Error
0b
Counts
63 → 5
Compiler

Compiled 1024 to 712 computations (30.5% saved)

localize10.0ms (0.2%)

Local error

Found 3 expressions with local error:

0.0b
(*.f64 2 (pow.f64 x 3))
0.0b
(-.f64 (*.f64 3 (*.f64 x x)) (*.f64 2 (pow.f64 x 3)))
0.2b
(*.f64 3 (*.f64 x x))

rewrite99.0ms (2%)

Algorithm
rewrite-expression-head
Error
0b
Rules
16×add-sqr-sqrt_binary64_31813
13×add-exp-log_binary64_31829 associate-*r*_binary64_31731
10×add-cbrt-cube_binary64_31827
pow1_binary64_31852 add-cube-cbrt_binary64_31826 *-un-lft-identity_binary64_31791
prod-exp_binary64_31840 associate-*l*_binary64_31732
add-log-exp_binary64_31830 unswap-sqr_binary64_31759
cbrt-unprod_binary64_31824 unpow-prod-down_binary64_31870 cube-prod_binary64_31819
pow-prod-down_binary64_31862
*-commutative_binary64_31722 sqr-pow_binary64_31763
diff-log_binary64_31883 flip3--_binary64_31795 sub-neg_binary64_31784 flip--_binary64_31766 cancel-sign-sub-inv_binary64_31757 pow-to-exp_binary64_31860 pow-exp_binary64_31859 unpow3_binary64_31857 cube-mult_binary64_31821
Counts
3 → 62
Calls

3 calls:

7.0ms
(*.f64 2 (pow.f64 x 3))
6.0ms
(-.f64 (*.f64 3 (*.f64 x x)) (*.f64 2 (pow.f64 x 3)))
6.0ms
(*.f64 3 (*.f64 x x))
Compiler

Compiled 1113 to 760 computations (31.7% saved)

series208.0ms (4.2%)

Error
0b
Counts
3 → 12
Calls

3 calls:

111.0ms
(-.f64 (*.f64 3 (*.f64 x x)) (*.f64 2 (pow.f64 x 3)))
44.0ms
(*.f64 2 (pow.f64 x 3))
44.0ms
(*.f64 3 (*.f64 x x))
Compiler

Compiled 327 to 278 computations (15% saved)

simplify229.0ms (4.6%)

Algorithm
egg-herbie
Rules
403×distribute-rgt-neg-in_binary64_31749
389×distribute-lft-neg-in_binary64_31748
328×cancel-sign-sub-inv_binary64_31757
216×*-commutative_binary64_31722
210×distribute-lft-out_binary64_31742
204×distribute-rgt-out_binary64_31744
186×exp-prod_binary64_31843
165×unswap-sqr_binary64_31759
151×associate-*l*_binary64_31732
148×associate-*r*_binary64_31731
141×log-prod_binary64_31877
125×sqr-pow_binary64_31763
108×cube-prod_binary64_31819
95×difference-of-squares_binary64_31760
78×swap-sqr_binary64_31758 distribute-rgt-out--_binary64_31745
69×neg-mul-1_binary64_31787
68×neg-sub0_binary64_31786
62×pow-sqr_binary64_31764
56×times-frac_binary64_31797
49×associate-*l/_binary64_31734
48×sub-neg_binary64_31784
42×unsub-neg_binary64_31785 distribute-neg-frac_binary64_31755
41×log-div_binary64_31878
37×pow-plus_binary64_31854 cube-div_binary64_31820
34×distribute-rgt-in_binary64_31741
33×distribute-lft-in_binary64_31740
29×log-pow_binary64_31880
26×unpow3_binary64_31857
24×exp-sum_binary64_31837
23×exp-sqrt_binary64_31844
22×distribute-lft-neg-out_binary64_31750
21×associate-/l*_binary64_31736
19×rem-sqrt-square_binary64_31804 associate-/r*_binary64_31735
18×*-lft-identity_binary64_31780 +-commutative_binary64_31721
17×*-rgt-identity_binary64_31781
16×cube-mult_binary64_31821 distribute-rgt-neg-out_binary64_31751 associate-*r/_binary64_31733
12×exp-lft-sqr_binary64_31846
/-rgt-identity_binary64_31782 mul0-rgt_binary64_31774 mul0-lft_binary64_31773
div-exp_binary64_31842 prod-exp_binary64_31840 div-sub_binary64_31796 associate-+l+_binary64_31724
exp-diff_binary64_31839 cube-unmult_binary64_31828 distribute-neg-out_binary64_31753 associate-+r+_binary64_31723
distribute-rgt1-in_binary64_31747
pow-base-1_binary64_31851 distribute-lft1-in_binary64_31746
log-rec_binary64_31879 associate-/l/_binary64_31738 associate-/r/_binary64_31737
exp-lft-cube_binary64_31847 rec-exp_binary64_31841 exp-neg_binary64_31838 sub0-neg_binary64_31778 +-rgt-identity_binary64_31776 count-2_binary64_31739 associate-+l-_binary64_31726 associate-+r-_binary64_31725
unpow2_binary64_31856 unpow1_binary64_31849 distribute-neg-in_binary64_31752
1-exp_binary64_31835 exp-1-e_binary64_31834 rem-log-exp_binary64_31832 rem-cbrt-cube_binary64_31815 rem-cube-cbrt_binary64_31814 sqr-neg_binary64_31805 rem-square-sqrt_binary64_31803 *-inverses_binary64_31771 distribute-lft-out--_binary64_31743
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_32054 erf-erfc_binary64_32053 erf-odd_binary64_32052 if-if-and-not_binary64_32051 if-if-and_binary64_32050 if-if-or-not_binary64_32049 if-if-or_binary64_32048 if-not_binary64_32047 if-same_binary64_32046 if-false_binary64_32045 if-true_binary64_32044 not-gte_binary64_32043 not-lte_binary64_32042 not-gt_binary64_32041 not-lt_binary64_32040 gte-same_binary64_32039 lte-same_binary64_32038 gt-same_binary64_32037 lt-same_binary64_32036 sinh---cosh_binary64_31983 sinh-+-cosh_binary64_31982 sinh-cosh_binary64_31981 tanh-def-c_binary64_31980 tanh-def-b_binary64_31979 tanh-def-a_binary64_31978 cosh-def_binary64_31977 sinh-def_binary64_31976 tan-neg_binary64_31923 cos-neg_binary64_31922 sin-neg_binary64_31921 tan-0_binary64_31920 cos-0_binary64_31919 sin-0_binary64_31918 hang-m-tan_binary64_31917 hang-p-tan_binary64_31916 hang-m0-tan_binary64_31915 hang-p0-tan_binary64_31914 hang-0m-tan_binary64_31913 hang-0p-tan_binary64_31912 tan-+PI/2_binary64_31911 tan-+PI_binary64_31910 tan-PI_binary64_31909 tan-PI/3_binary64_31908 tan-PI/4_binary64_31907 tan-PI/6_binary64_31906 cos-+PI/2_binary64_31905 cos-+PI_binary64_31904 cos-PI_binary64_31903 cos-PI/2_binary64_31902 cos-PI/3_binary64_31901 cos-PI/4_binary64_31900 cos-PI/6_binary64_31899 sin-+PI/2_binary64_31898 sin-+PI_binary64_31897 sin-PI_binary64_31896 sin-PI/2_binary64_31895 sin-PI/3_binary64_31894 sin-PI/4_binary64_31893 sin-PI/6_binary64_31892 sub-1-sin_binary64_31891 sub-1-cos_binary64_31890 -1-add-sin_binary64_31889 -1-add-cos_binary64_31888 1-sub-sin_binary64_31887 1-sub-cos_binary64_31886 cos-sin-sum_binary64_31885 log-E_binary64_31881 pow-base-0_binary64_31875 unpow1/3_binary64_31858 unpow1/2_binary64_31855 exp-to-pow_binary64_31853 unpow0_binary64_31850 unpow-1_binary64_31848 exp-cbrt_binary64_31845 e-exp-1_binary64_31836 exp-0_binary64_31833 rem-exp-log_binary64_31831 cube-neg_binary64_31818 rem-3cbrt-rft_binary64_31817 rem-3cbrt-lft_binary64_31816 sqr-abs_binary64_31806 mul-1-neg_binary64_31783 remove-double-neg_binary64_31779 --rgt-identity_binary64_31777 +-lft-identity_binary64_31775 div0_binary64_31772 +-inverses_binary64_31770 lft-mult-inverse_binary64_31769 rgt-mult-inverse_binary64_31768 remove-double-div_binary64_31767 difference-of-sqr--1_binary64_31762 difference-of-sqr-1_binary64_31761 cancel-sign-sub_binary64_31756 distribute-frac-neg_binary64_31754 associate--r-_binary64_31730 associate--l-_binary64_31729 associate--l+_binary64_31728 associate--r+_binary64_31727
Counts
74 → 109
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
0105928
1235867
2866822
32195816

prune133.0ms (2.7%)

Pruning

4 alts after pruning (3 fresh and 1 done)

PrunedKeptTotal
New1081109
Fresh224
Picked011
Done000
Total1104114
Error
0b
Counts
114 → 4
Compiler

Compiled 2134 to 1453 computations (31.9% saved)

localize6.0ms (0.1%)

Local error

Found 2 expressions with local error:

0.0b
(*.f64 x (-.f64 3 (*.f64 x 2)))
0.2b
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))

rewrite65.0ms (1.3%)

Algorithm
rewrite-expression-head
Error
0b
Rules
10×distribute-rgt-in_binary64_31741 distribute-lft-in_binary64_31740
pow1_binary64_31852 add-exp-log_binary64_31829 add-cbrt-cube_binary64_31827
add-sqr-sqrt_binary64_31813
sub-neg_binary64_31784 cancel-sign-sub-inv_binary64_31757 associate-*r/_binary64_31733 associate-*l*_binary64_31732
add-cube-cbrt_binary64_31826 *-un-lft-identity_binary64_31791
pow-prod-down_binary64_31862 prod-exp_binary64_31840 cbrt-unprod_binary64_31824 associate-*r*_binary64_31731
add-log-exp_binary64_31830 flip3--_binary64_31795 flip--_binary64_31766 *-commutative_binary64_31722
unswap-sqr_binary64_31759
Counts
2 → 52
Calls

2 calls:

7.0ms
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
6.0ms
(*.f64 x (-.f64 3 (*.f64 x 2)))
Compiler

Compiled 844 to 581 computations (31.2% saved)

series169.0ms (3.4%)

Error
0b
Counts
2 → 12
Calls

2 calls:

86.0ms
(*.f64 x (*.f64 x (-.f64 3 (*.f64 x 2))))
74.0ms
(*.f64 x (-.f64 3 (*.f64 x 2)))
Compiler

Compiled 266 to 222 computations (16.5% saved)

simplify388.0ms (7.8%)

Algorithm
egg-herbie
Rules
359×times-frac_binary64_31797
261×distribute-rgt-in_binary64_31741
255×distribute-lft-in_binary64_31740
195×unswap-sqr_binary64_31759 *-commutative_binary64_31722
172×distribute-lft-neg-out_binary64_31750
167×distribute-rgt-neg-out_binary64_31751 associate-/l*_binary64_31736
158×associate-*l*_binary64_31732
133×associate-*r*_binary64_31731
114×+-commutative_binary64_31721
101×cancel-sign-sub-inv_binary64_31757
98×distribute-rgt-neg-in_binary64_31749
96×exp-prod_binary64_31843 unsub-neg_binary64_31785
94×log-prod_binary64_31877
90×associate-/r*_binary64_31735
87×distribute-lft-neg-in_binary64_31748
71×associate-/r/_binary64_31737
67×associate-+r+_binary64_31723
65×log-div_binary64_31878
63×sqr-pow_binary64_31763
54×neg-mul-1_binary64_31787 neg-sub0_binary64_31786 associate-+l+_binary64_31724
53×exp-sqrt_binary64_31844
47×exp-lft-sqr_binary64_31846
40×associate-*l/_binary64_31734
39×sub-neg_binary64_31784
38×associate-/l/_binary64_31738
36×*-rgt-identity_binary64_31781
33×*-lft-identity_binary64_31780 swap-sqr_binary64_31758
27×associate-*r/_binary64_31733
25×exp-sum_binary64_31837
24×pow-sqr_binary64_31764 associate-+l-_binary64_31726
23×cube-prod_binary64_31819
22×unpow3_binary64_31857 associate-+r-_binary64_31725
20×pow-plus_binary64_31854
19×div-sub_binary64_31796 associate--l-_binary64_31729
16×exp-to-pow_binary64_31853
15×mul0-rgt_binary64_31774 mul0-lft_binary64_31773
13×exp-diff_binary64_31839 cube-div_binary64_31820
12×log-pow_binary64_31880
10×difference-of-squares_binary64_31760
distribute-rgt-out_binary64_31744
log-rec_binary64_31879 cube-unmult_binary64_31828 distribute-rgt-out--_binary64_31745
exp-lft-cube_binary64_31847 cube-mult_binary64_31821 sub0-neg_binary64_31778 +-rgt-identity_binary64_31776 distribute-neg-frac_binary64_31755
pow-base-1_binary64_31851
exp-neg_binary64_31838 distribute-rgt1-in_binary64_31747 count-2_binary64_31739 associate--r+_binary64_31727
unpow2_binary64_31856 unpow1_binary64_31849 prod-exp_binary64_31840 1-exp_binary64_31835 exp-1-e_binary64_31834 rem-log-exp_binary64_31832 sqr-neg_binary64_31805 rem-sqrt-square_binary64_31804 /-rgt-identity_binary64_31782 *-inverses_binary64_31771 distribute-lft1-in_binary64_31746
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_32054 erf-erfc_binary64_32053 erf-odd_binary64_32052 if-if-and-not_binary64_32051 if-if-and_binary64_32050 if-if-or-not_binary64_32049 if-if-or_binary64_32048 if-not_binary64_32047 if-same_binary64_32046 if-false_binary64_32045 if-true_binary64_32044 not-gte_binary64_32043 not-lte_binary64_32042 not-gt_binary64_32041 not-lt_binary64_32040 gte-same_binary64_32039 lte-same_binary64_32038 gt-same_binary64_32037 lt-same_binary64_32036 sinh---cosh_binary64_31983 sinh-+-cosh_binary64_31982 sinh-cosh_binary64_31981 tanh-def-c_binary64_31980 tanh-def-b_binary64_31979 tanh-def-a_binary64_31978 cosh-def_binary64_31977 sinh-def_binary64_31976 tan-neg_binary64_31923 cos-neg_binary64_31922 sin-neg_binary64_31921 tan-0_binary64_31920 cos-0_binary64_31919 sin-0_binary64_31918 hang-m-tan_binary64_31917 hang-p-tan_binary64_31916 hang-m0-tan_binary64_31915 hang-p0-tan_binary64_31914 hang-0m-tan_binary64_31913 hang-0p-tan_binary64_31912 tan-+PI/2_binary64_31911 tan-+PI_binary64_31910 tan-PI_binary64_31909 tan-PI/3_binary64_31908 tan-PI/4_binary64_31907 tan-PI/6_binary64_31906 cos-+PI/2_binary64_31905 cos-+PI_binary64_31904 cos-PI_binary64_31903 cos-PI/2_binary64_31902 cos-PI/3_binary64_31901 cos-PI/4_binary64_31900 cos-PI/6_binary64_31899 sin-+PI/2_binary64_31898 sin-+PI_binary64_31897 sin-PI_binary64_31896 sin-PI/2_binary64_31895 sin-PI/3_binary64_31894 sin-PI/4_binary64_31893 sin-PI/6_binary64_31892 sub-1-sin_binary64_31891 sub-1-cos_binary64_31890 -1-add-sin_binary64_31889 -1-add-cos_binary64_31888 1-sub-sin_binary64_31887 1-sub-cos_binary64_31886 cos-sin-sum_binary64_31885 log-E_binary64_31881 pow-base-0_binary64_31875 unpow1/3_binary64_31858 unpow1/2_binary64_31855 unpow0_binary64_31850 unpow-1_binary64_31848 exp-cbrt_binary64_31845 div-exp_binary64_31842 rec-exp_binary64_31841 e-exp-1_binary64_31836 exp-0_binary64_31833 rem-exp-log_binary64_31831 cube-neg_binary64_31818 rem-3cbrt-rft_binary64_31817 rem-3cbrt-lft_binary64_31816 rem-cbrt-cube_binary64_31815 rem-cube-cbrt_binary64_31814 sqr-abs_binary64_31806 rem-square-sqrt_binary64_31803 mul-1-neg_binary64_31783 remove-double-neg_binary64_31779 --rgt-identity_binary64_31777 +-lft-identity_binary64_31775 div0_binary64_31772 +-inverses_binary64_31770 lft-mult-inverse_binary64_31769 rgt-mult-inverse_binary64_31768 remove-double-div_binary64_31767 difference-of-sqr--1_binary64_31762 difference-of-sqr-1_binary64_31761 cancel-sign-sub_binary64_31756 distribute-frac-neg_binary64_31754 distribute-neg-out_binary64_31753 distribute-neg-in_binary64_31752 distribute-lft-out--_binary64_31743 distribute-lft-out_binary64_31742 associate--r-_binary64_31730 associate--l+_binary64_31728
Counts
64 → 123
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
0891034
1203854
2755854
32120854
44671854

prune110.0ms (2.2%)

Pruning

4 alts after pruning (2 fresh and 2 done)

PrunedKeptTotal
New1230123
Fresh022
Picked011
Done011
Total1234127
Error
0b
Counts
127 → 4
Compiler

Compiled 1760 to 1102 computations (37.4% saved)

localize10.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.0b
(-.f64 (*.f64 (*.f64 (sqrt.f64 3) x) (*.f64 x (sqrt.f64 3))) (*.f64 2 (pow.f64 x 3)))
0.3b
(*.f64 (*.f64 (sqrt.f64 3) x) (*.f64 x (sqrt.f64 3)))
0.3b
(*.f64 x (sqrt.f64 3))
0.3b
(*.f64 (sqrt.f64 3) x)

rewrite157.0ms (3.2%)

Algorithm
rewrite-expression-head
Error
0b
Rules
20×pow1_binary64_31852 add-exp-log_binary64_31829 add-cbrt-cube_binary64_31827
18×add-sqr-sqrt_binary64_31813
10×pow-prod-down_binary64_31862 prod-exp_binary64_31840 add-cube-cbrt_binary64_31826 cbrt-unprod_binary64_31824 *-un-lft-identity_binary64_31791 associate-*l*_binary64_31732 associate-*r*_binary64_31731
sqrt-prod_binary64_31807
add-log-exp_binary64_31830
unswap-sqr_binary64_31759
*-commutative_binary64_31722
diff-log_binary64_31883 flip3--_binary64_31795 sub-neg_binary64_31784 flip--_binary64_31766 cancel-sign-sub-inv_binary64_31757
Counts
4 → 78
Calls

4 calls:

13.0ms
(*.f64 (*.f64 (sqrt.f64 3) x) (*.f64 x (sqrt.f64 3)))
9.0ms
(-.f64 (*.f64 (*.f64 (sqrt.f64 3) x) (*.f64 x (sqrt.f64 3))) (*.f64 2 (pow.f64 x 3)))
6.0ms
(*.f64 (sqrt.f64 3) x)
5.0ms
(*.f64 x (sqrt.f64 3))
Compiler

Compiled 1761 to 1416 computations (19.6% saved)

series349.0ms (7%)

Error
0b
Counts
4 → 15
Calls

4 calls:

141.0ms
(-.f64 (*.f64 (*.f64 (sqrt.f64 3) x) (*.f64 x (sqrt.f64 3))) (*.f64 2 (pow.f64 x 3)))
83.0ms
(*.f64 (*.f64 (sqrt.f64 3) x) (*.f64 x (sqrt.f64 3)))
56.0ms
(*.f64 (sqrt.f64 3) x)
54.0ms
(*.f64 x (sqrt.f64 3))
Compiler

Compiled 558 to 490 computations (12.2% saved)

simplify281.0ms (5.7%)

Algorithm
egg-herbie
Rules
525×unswap-sqr_binary64_31759
362×times-frac_binary64_31797
241×cancel-sign-sub-inv_binary64_31757
209×*-commutative_binary64_31722
194×associate-*l*_binary64_31732
178×distribute-rgt-in_binary64_31741
167×distribute-rgt-neg-in_binary64_31749
162×distribute-lft-neg-in_binary64_31748
161×associate-*r*_binary64_31731
152×distribute-lft-out_binary64_31742
145×distribute-lft-in_binary64_31740
140×distribute-rgt-out_binary64_31744
138×sqr-pow_binary64_31763
122×swap-sqr_binary64_31758
118×exp-prod_binary64_31843
77×cube-prod_binary64_31819
74×log-prod_binary64_31877
44×neg-mul-1_binary64_31787 neg-sub0_binary64_31786 pow-sqr_binary64_31764
40×sub-neg_binary64_31784
33×associate-*r/_binary64_31733
32×unsub-neg_binary64_31785
30×distribute-rgt-out--_binary64_31745 associate-*l/_binary64_31734
26×difference-of-squares_binary64_31760
22×pow-plus_binary64_31854
21×distribute-lft-neg-out_binary64_31750 associate-/l*_binary64_31736
19×unpow3_binary64_31857
18×exp-sum_binary64_31837
16×distribute-rgt-neg-out_binary64_31751
15×cube-mult_binary64_31821
14×+-commutative_binary64_31721
13×cube-div_binary64_31820 *-rgt-identity_binary64_31781
12×log-div_binary64_31878
11×log-pow_binary64_31880 exp-sqrt_binary64_31844
exp-lft-sqr_binary64_31846 rem-sqrt-square_binary64_31804 *-lft-identity_binary64_31780 mul0-rgt_binary64_31774 mul0-lft_binary64_31773 associate-+l+_binary64_31724 associate-+r+_binary64_31723
exp-diff_binary64_31839 distribute-neg-frac_binary64_31755
associate-/r*_binary64_31735 associate-+r-_binary64_31725
exp-lft-cube_binary64_31847 div-exp_binary64_31842 prod-exp_binary64_31840 cube-unmult_binary64_31828
exp-neg_binary64_31838 sub0-neg_binary64_31778 +-rgt-identity_binary64_31776 distribute-rgt1-in_binary64_31747 distribute-lft-out--_binary64_31743 associate-/l/_binary64_31738 associate-+l-_binary64_31726
unpow2_binary64_31856 pow-base-1_binary64_31851 unpow1_binary64_31849 distribute-neg-in_binary64_31752
rec-exp_binary64_31841 1-exp_binary64_31835 exp-1-e_binary64_31834 rem-log-exp_binary64_31832 sqr-neg_binary64_31805 rem-square-sqrt_binary64_31803 /-rgt-identity_binary64_31782 *-inverses_binary64_31771 distribute-lft1-in_binary64_31746 count-2_binary64_31739 associate-/r/_binary64_31737
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_32054 erf-erfc_binary64_32053 erf-odd_binary64_32052 if-if-and-not_binary64_32051 if-if-and_binary64_32050 if-if-or-not_binary64_32049 if-if-or_binary64_32048 if-not_binary64_32047 if-same_binary64_32046 if-false_binary64_32045 if-true_binary64_32044 not-gte_binary64_32043 not-lte_binary64_32042 not-gt_binary64_32041 not-lt_binary64_32040 gte-same_binary64_32039 lte-same_binary64_32038 gt-same_binary64_32037 lt-same_binary64_32036 sinh---cosh_binary64_31983 sinh-+-cosh_binary64_31982 sinh-cosh_binary64_31981 tanh-def-c_binary64_31980 tanh-def-b_binary64_31979 tanh-def-a_binary64_31978 cosh-def_binary64_31977 sinh-def_binary64_31976 tan-neg_binary64_31923 cos-neg_binary64_31922 sin-neg_binary64_31921 tan-0_binary64_31920 cos-0_binary64_31919 sin-0_binary64_31918 hang-m-tan_binary64_31917 hang-p-tan_binary64_31916 hang-m0-tan_binary64_31915 hang-p0-tan_binary64_31914 hang-0m-tan_binary64_31913 hang-0p-tan_binary64_31912 tan-+PI/2_binary64_31911 tan-+PI_binary64_31910 tan-PI_binary64_31909 tan-PI/3_binary64_31908 tan-PI/4_binary64_31907 tan-PI/6_binary64_31906 cos-+PI/2_binary64_31905 cos-+PI_binary64_31904 cos-PI_binary64_31903 cos-PI/2_binary64_31902 cos-PI/3_binary64_31901 cos-PI/4_binary64_31900 cos-PI/6_binary64_31899 sin-+PI/2_binary64_31898 sin-+PI_binary64_31897 sin-PI_binary64_31896 sin-PI/2_binary64_31895 sin-PI/3_binary64_31894 sin-PI/4_binary64_31893 sin-PI/6_binary64_31892 sub-1-sin_binary64_31891 sub-1-cos_binary64_31890 -1-add-sin_binary64_31889 -1-add-cos_binary64_31888 1-sub-sin_binary64_31887 1-sub-cos_binary64_31886 cos-sin-sum_binary64_31885 log-E_binary64_31881 log-rec_binary64_31879 pow-base-0_binary64_31875 unpow1/3_binary64_31858 unpow1/2_binary64_31855 exp-to-pow_binary64_31853 unpow0_binary64_31850 unpow-1_binary64_31848 exp-cbrt_binary64_31845 e-exp-1_binary64_31836 exp-0_binary64_31833 rem-exp-log_binary64_31831 cube-neg_binary64_31818 rem-3cbrt-rft_binary64_31817 rem-3cbrt-lft_binary64_31816 rem-cbrt-cube_binary64_31815 rem-cube-cbrt_binary64_31814 sqr-abs_binary64_31806 div-sub_binary64_31796 mul-1-neg_binary64_31783 remove-double-neg_binary64_31779 --rgt-identity_binary64_31777 +-lft-identity_binary64_31775 div0_binary64_31772 +-inverses_binary64_31770 lft-mult-inverse_binary64_31769 rgt-mult-inverse_binary64_31768 remove-double-div_binary64_31767 difference-of-sqr--1_binary64_31762 difference-of-sqr-1_binary64_31761 cancel-sign-sub_binary64_31756 distribute-frac-neg_binary64_31754 distribute-neg-out_binary64_31753 associate--r-_binary64_31730 associate--l-_binary64_31729 associate--l+_binary64_31728 associate--r+_binary64_31727
Counts
93 → 186
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01061074
12251006
2894962
31840960

prune292.0ms (5.9%)

Pruning

4 alts after pruning (1 fresh and 3 done)

PrunedKeptTotal
New1860186
Fresh011
Picked011
Done022
Total1864190
Error
0b
Counts
190 → 4
Compiler

Compiled 4292 to 3211 computations (25.2% saved)

regimes167.0ms (3.4%)

Accuracy

Total 0.1b remaining (99.5%)

Threshold costs 0.1b (99.5%)

Compiler

Compiled 1488 to 1178 computations (20.8% saved)

bsearch0.0ms (0%)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64_31722
sub-neg_binary64_31784 +-commutative_binary64_31721
neg-mul-1_binary64_31787 neg-sub0_binary64_31786
cancel-sign-sub-inv_binary64_31757 distribute-rgt-neg-in_binary64_31749
distribute-lft-neg-out_binary64_31750 distribute-lft-neg-in_binary64_31748
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_32051 if-if-and_binary64_32050 if-if-or-not_binary64_32049 if-if-or_binary64_32048 if-not_binary64_32047 if-same_binary64_32046 if-false_binary64_32045 if-true_binary64_32044 tan-0_binary64_31920 cos-0_binary64_31919 sin-0_binary64_31918 unpow1_binary64_31849 e-exp-1_binary64_31836 1-exp_binary64_31835 exp-1-e_binary64_31834 exp-0_binary64_31833 sqr-abs_binary64_31806 sqr-neg_binary64_31805 unsub-neg_binary64_31785 mul-1-neg_binary64_31783 /-rgt-identity_binary64_31782 *-rgt-identity_binary64_31781 *-lft-identity_binary64_31780 remove-double-neg_binary64_31779 sub0-neg_binary64_31778 --rgt-identity_binary64_31777 +-rgt-identity_binary64_31776 +-lft-identity_binary64_31775 cancel-sign-sub_binary64_31756 distribute-neg-frac_binary64_31755 distribute-frac-neg_binary64_31754 distribute-neg-out_binary64_31753 distribute-neg-in_binary64_31752 distribute-rgt-neg-out_binary64_31751
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0916
11616
22616
33216
43616
53716
Proof
(- f64 (* f64 3 (* f64 h0 h0)) (* f64 2 (pow f64 h0 3)))

end0.0ms (0%)

sample1.1s (21.5%)

Algorithm
intervals
Results
194.0ms8000×body128valid
0.0msbody128invalid
Compiler

Compiled 709 to 567 computations (20% saved)

Profiling

Loading profile data...