Details

Time bar (total: 5.5s)

analyze358.0ms (6.5%)

Algorithm
search
egg-herbie
Rules
478×sub-neg_binary64_1776
434×distribute-rgt-in_binary64_1733 associate-+l+_binary64_1716
406×associate-*l*_binary64_1724
374×associate-+r+_binary64_1715
354×associate--l+_binary64_1720
350×*-commutative_binary64_1714
326×associate-*r*_binary64_1723
291×distribute-lft-in_binary64_1732
286×distribute-rgt-out_binary64_1736
280×neg-mul-1_binary64_1779
244×unsub-neg_binary64_1777
194×neg-sub0_binary64_1778
142×associate-+l-_binary64_1718
130×+-commutative_binary64_1713
119×distribute-rgt-neg-out_binary64_1743
118×distribute-lft-neg-out_binary64_1742
112×distribute-lft-out_binary64_1734
93×cancel-sign-sub-inv_binary64_1749
84×associate-+r-_binary64_1717
58×associate--r+_binary64_1719
40×distribute-rgt-neg-in_binary64_1741
38×unswap-sqr_binary64_1751
29×distribute-lft-neg-in_binary64_1740
22×associate--r-_binary64_1722
20×*-rgt-identity_binary64_1773
19×*-lft-identity_binary64_1772
18×distribute-neg-in_binary64_1744
14×sqr-pow_binary64_1755
difference-of-sqr--1_binary64_1754
pow-plus_binary64_1846
mul0-rgt_binary64_1766 mul0-lft_binary64_1765 swap-sqr_binary64_1750 distribute-lft1-in_binary64_1738
cube-unmult_binary64_1820
difference-of-sqr-1_binary64_1753
unpow2_binary64_1848 mul-1-neg_binary64_1775 sub0-neg_binary64_1770
unpow3_binary64_1849 unpow1/2_binary64_1847 unpow1_binary64_1841 1-exp_binary64_1827 cube-prod_binary64_1811 rem-sqrt-square_binary64_1796 distribute-rgt1-in_binary64_1739
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_2046 erf-erfc_binary64_2045 erf-odd_binary64_2044 if-if-and-not_binary64_2043 if-if-and_binary64_2042 if-if-or-not_binary64_2041 if-if-or_binary64_2040 if-not_binary64_2039 if-same_binary64_2038 if-false_binary64_2037 if-true_binary64_2036 not-gte_binary64_2035 not-lte_binary64_2034 not-gt_binary64_2033 not-lt_binary64_2032 gte-same_binary64_2031 lte-same_binary64_2030 gt-same_binary64_2029 lt-same_binary64_2028 sinh---cosh_binary64_1975 sinh-+-cosh_binary64_1974 sinh-cosh_binary64_1973 tanh-def-c_binary64_1972 tanh-def-b_binary64_1971 tanh-def-a_binary64_1970 cosh-def_binary64_1969 sinh-def_binary64_1968 tan-neg_binary64_1915 cos-neg_binary64_1914 sin-neg_binary64_1913 tan-0_binary64_1912 cos-0_binary64_1911 sin-0_binary64_1910 hang-m-tan_binary64_1909 hang-p-tan_binary64_1908 hang-m0-tan_binary64_1907 hang-p0-tan_binary64_1906 hang-0m-tan_binary64_1905 hang-0p-tan_binary64_1904 tan-+PI/2_binary64_1903 tan-+PI_binary64_1902 tan-PI_binary64_1901 tan-PI/3_binary64_1900 tan-PI/4_binary64_1899 tan-PI/6_binary64_1898 cos-+PI/2_binary64_1897 cos-+PI_binary64_1896 cos-PI_binary64_1895 cos-PI/2_binary64_1894 cos-PI/3_binary64_1893 cos-PI/4_binary64_1892 cos-PI/6_binary64_1891 sin-+PI/2_binary64_1890 sin-+PI_binary64_1889 sin-PI_binary64_1888 sin-PI/2_binary64_1887 sin-PI/3_binary64_1886 sin-PI/4_binary64_1885 sin-PI/6_binary64_1884 sub-1-sin_binary64_1883 sub-1-cos_binary64_1882 -1-add-sin_binary64_1881 -1-add-cos_binary64_1880 1-sub-sin_binary64_1879 1-sub-cos_binary64_1878 cos-sin-sum_binary64_1877 log-E_binary64_1873 log-pow_binary64_1872 log-rec_binary64_1871 log-div_binary64_1870 log-prod_binary64_1869 pow-base-0_binary64_1867 unpow1/3_binary64_1850 exp-to-pow_binary64_1845 pow-base-1_binary64_1843 unpow0_binary64_1842 unpow-1_binary64_1840 exp-lft-cube_binary64_1839 exp-lft-sqr_binary64_1838 exp-cbrt_binary64_1837 exp-sqrt_binary64_1836 exp-prod_binary64_1835 div-exp_binary64_1834 rec-exp_binary64_1833 prod-exp_binary64_1832 exp-diff_binary64_1831 exp-neg_binary64_1830 exp-sum_binary64_1829 e-exp-1_binary64_1828 exp-1-e_binary64_1826 exp-0_binary64_1825 rem-log-exp_binary64_1824 rem-exp-log_binary64_1823 cube-mult_binary64_1813 cube-div_binary64_1812 cube-neg_binary64_1810 rem-3cbrt-rft_binary64_1809 rem-3cbrt-lft_binary64_1808 rem-cbrt-cube_binary64_1807 rem-cube-cbrt_binary64_1806 sqr-abs_binary64_1798 sqr-neg_binary64_1797 rem-square-sqrt_binary64_1795 times-frac_binary64_1789 div-sub_binary64_1788 /-rgt-identity_binary64_1774 remove-double-neg_binary64_1771 --rgt-identity_binary64_1769 +-rgt-identity_binary64_1768 +-lft-identity_binary64_1767 div0_binary64_1764 *-inverses_binary64_1763 +-inverses_binary64_1762 lft-mult-inverse_binary64_1761 rgt-mult-inverse_binary64_1760 remove-double-div_binary64_1759 pow-sqr_binary64_1756 difference-of-squares_binary64_1752 cancel-sign-sub_binary64_1748 distribute-neg-frac_binary64_1747 distribute-frac-neg_binary64_1746 distribute-neg-out_binary64_1745 distribute-rgt-out--_binary64_1737 distribute-lft-out--_binary64_1735 count-2_binary64_1731 associate-/l/_binary64_1730 associate-/r/_binary64_1729 associate-/l*_binary64_1728 associate-/r*_binary64_1727 associate-*l/_binary64_1726 associate-*r/_binary64_1725 associate--l-_binary64_1721
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
03192
110092
225492
376592
4220192
5420792
6497992
7501292
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%68.7%6.3%6
25%56.2%18.8%7
25%48.4%26.6%8
25%35.1%39.9%9
28.1%18.3%53.6%10
31.6%12.3%56.1%11
33.4%5.9%60.8%12
35.2%3.8%61%13
36.1%2.9%61%14
Compiler

Compiled 32 to 22 computations (31.3% saved)

sample30.0ms (0.5%)

Algorithm
intervals
Results
19.0ms256×body128valid
Compiler

Compiled 63 to 45 computations (28.6% saved)

simplify63.0ms (1.1%)

Algorithm
egg-herbie
Rules
669×unsub-neg_binary64_1777
596×cancel-sign-sub-inv_binary64_1749
373×neg-mul-1_binary64_1779 neg-sub0_binary64_1778
340×+-commutative_binary64_1713
277×sub-neg_binary64_1776
242×distribute-rgt-neg-in_binary64_1741
232×associate-+l+_binary64_1716
220×*-commutative_binary64_1714
212×associate-*l*_binary64_1724
192×associate-+r+_binary64_1715
188×associate--l+_binary64_1720
185×associate-*r*_binary64_1723
174×distribute-rgt-in_binary64_1733
149×distribute-rgt-out_binary64_1736
147×distribute-lft-in_binary64_1732
146×distribute-neg-in_binary64_1744
134×distribute-lft-neg-out_binary64_1742
113×distribute-rgt-neg-out_binary64_1743
84×unswap-sqr_binary64_1751
72×associate-+l-_binary64_1718
66×cancel-sign-sub_binary64_1748
45×associate-+r-_binary64_1717
38×distribute-lft-out_binary64_1734 associate--r+_binary64_1719
27×*-rgt-identity_binary64_1773
26×distribute-lft-neg-in_binary64_1740
20×*-lft-identity_binary64_1772
19×sqr-pow_binary64_1755
11×associate--r-_binary64_1722
10×sub0-neg_binary64_1770
pow-plus_binary64_1846 mul0-rgt_binary64_1766 mul0-lft_binary64_1765
+-rgt-identity_binary64_1768 difference-of-sqr--1_binary64_1754
cube-unmult_binary64_1820 swap-sqr_binary64_1750
rem-sqrt-square_binary64_1796 difference-of-sqr-1_binary64_1753 distribute-lft1-in_binary64_1738
distribute-neg-out_binary64_1745
unpow2_binary64_1848 cube-prod_binary64_1811
mul-1-neg_binary64_1775
unpow3_binary64_1849 unpow1/2_binary64_1847 unpow1_binary64_1841 1-exp_binary64_1827 remove-double-neg_binary64_1771 --rgt-identity_binary64_1769 pow-sqr_binary64_1756 distribute-rgt1-in_binary64_1739
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_2046 erf-erfc_binary64_2045 erf-odd_binary64_2044 if-if-and-not_binary64_2043 if-if-and_binary64_2042 if-if-or-not_binary64_2041 if-if-or_binary64_2040 if-not_binary64_2039 if-same_binary64_2038 if-false_binary64_2037 if-true_binary64_2036 not-gte_binary64_2035 not-lte_binary64_2034 not-gt_binary64_2033 not-lt_binary64_2032 gte-same_binary64_2031 lte-same_binary64_2030 gt-same_binary64_2029 lt-same_binary64_2028 sinh---cosh_binary64_1975 sinh-+-cosh_binary64_1974 sinh-cosh_binary64_1973 tanh-def-c_binary64_1972 tanh-def-b_binary64_1971 tanh-def-a_binary64_1970 cosh-def_binary64_1969 sinh-def_binary64_1968 tan-neg_binary64_1915 cos-neg_binary64_1914 sin-neg_binary64_1913 tan-0_binary64_1912 cos-0_binary64_1911 sin-0_binary64_1910 hang-m-tan_binary64_1909 hang-p-tan_binary64_1908 hang-m0-tan_binary64_1907 hang-p0-tan_binary64_1906 hang-0m-tan_binary64_1905 hang-0p-tan_binary64_1904 tan-+PI/2_binary64_1903 tan-+PI_binary64_1902 tan-PI_binary64_1901 tan-PI/3_binary64_1900 tan-PI/4_binary64_1899 tan-PI/6_binary64_1898 cos-+PI/2_binary64_1897 cos-+PI_binary64_1896 cos-PI_binary64_1895 cos-PI/2_binary64_1894 cos-PI/3_binary64_1893 cos-PI/4_binary64_1892 cos-PI/6_binary64_1891 sin-+PI/2_binary64_1890 sin-+PI_binary64_1889 sin-PI_binary64_1888 sin-PI/2_binary64_1887 sin-PI/3_binary64_1886 sin-PI/4_binary64_1885 sin-PI/6_binary64_1884 sub-1-sin_binary64_1883 sub-1-cos_binary64_1882 -1-add-sin_binary64_1881 -1-add-cos_binary64_1880 1-sub-sin_binary64_1879 1-sub-cos_binary64_1878 cos-sin-sum_binary64_1877 log-E_binary64_1873 log-pow_binary64_1872 log-rec_binary64_1871 log-div_binary64_1870 log-prod_binary64_1869 pow-base-0_binary64_1867 unpow1/3_binary64_1850 exp-to-pow_binary64_1845 pow-base-1_binary64_1843 unpow0_binary64_1842 unpow-1_binary64_1840 exp-lft-cube_binary64_1839 exp-lft-sqr_binary64_1838 exp-cbrt_binary64_1837 exp-sqrt_binary64_1836 exp-prod_binary64_1835 div-exp_binary64_1834 rec-exp_binary64_1833 prod-exp_binary64_1832 exp-diff_binary64_1831 exp-neg_binary64_1830 exp-sum_binary64_1829 e-exp-1_binary64_1828 exp-1-e_binary64_1826 exp-0_binary64_1825 rem-log-exp_binary64_1824 rem-exp-log_binary64_1823 cube-mult_binary64_1813 cube-div_binary64_1812 cube-neg_binary64_1810 rem-3cbrt-rft_binary64_1809 rem-3cbrt-lft_binary64_1808 rem-cbrt-cube_binary64_1807 rem-cube-cbrt_binary64_1806 sqr-abs_binary64_1798 sqr-neg_binary64_1797 rem-square-sqrt_binary64_1795 times-frac_binary64_1789 div-sub_binary64_1788 /-rgt-identity_binary64_1774 +-lft-identity_binary64_1767 div0_binary64_1764 *-inverses_binary64_1763 +-inverses_binary64_1762 lft-mult-inverse_binary64_1761 rgt-mult-inverse_binary64_1760 remove-double-div_binary64_1759 difference-of-squares_binary64_1752 distribute-neg-frac_binary64_1747 distribute-frac-neg_binary64_1746 distribute-rgt-out--_binary64_1737 distribute-lft-out--_binary64_1735 count-2_binary64_1731 associate-/l/_binary64_1730 associate-/r/_binary64_1729 associate-/l*_binary64_1728 associate-/r*_binary64_1727 associate-*l/_binary64_1726 associate-*r/_binary64_1725 associate--l-_binary64_1721
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02046
16146
215246
343846
4129746
5250846
6460546
7502946

prune4.0ms (0.1%)

Pruning

1 alts after pruning (1 fresh and 0 done)

PrunedKeptTotal
New101
Fresh011
Picked000
Done000
Total112
Error
0.2b
Counts
2 → 1
Compiler

Compiled 62 to 42 computations (32.3% saved)

localize17.0ms (0.3%)

Local error

Found 4 expressions with local error:

0.0b
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
0.1b
(*.f64 (*.f64 a a) (+.f64 1 a))
0.3b
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
0.6b
(*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))

rewrite277.0ms (5%)

Algorithm
rewrite-expression-head
Error
0.2b
Rules
15×pow1_binary64_1844 add-exp-log_binary64_1821 add-sqr-sqrt_binary64_1805
14×add-cbrt-cube_binary64_1819 *-un-lft-identity_binary64_1783
add-log-exp_binary64_1822 add-cube-cbrt_binary64_1818
associate-*r*_binary64_1723
pow-prod-down_binary64_1854 prod-exp_binary64_1832 cbrt-unprod_binary64_1816
cancel-sign-sub-inv_binary64_1749
associate-*r/_binary64_1725
sub-neg_binary64_1776 distribute-rgt-in_binary64_1733 distribute-lft-in_binary64_1732 unpow-prod-down_binary64_1862 pow-unpow_binary64_1860
unswap-sqr_binary64_1751 flip3--_binary64_1787 flip--_binary64_1758 associate-*l*_binary64_1724 *-commutative_binary64_1714 diff-log_binary64_1875 difference-of-squares_binary64_1752
pow-pow_binary64_1855 pow-to-exp_binary64_1852 pow-exp_binary64_1851 unpow2_binary64_1848 sqr-pow_binary64_1755 flip3-+_binary64_1786 flip-+_binary64_1757 distribute-lft-out_binary64_1734 sum-log_binary64_1874 difference-of-sqr-1_binary64_1753 distribute-lft-out--_binary64_1735 associate--l+_binary64_1720
Counts
4 → 87
Calls

4 calls:

15.0ms
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
10.0ms
(*.f64 (*.f64 a a) (+.f64 1 a))
9.0ms
(*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))
5.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
Compiler

Compiled 3371 to 1831 computations (45.7% saved)

series1.2s (21.4%)

Error
0.0b
Counts
4 → 51
Calls

4 calls:

608.0ms
(-.f64 (+.f64 (pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2) (*.f64 4 (+.f64 (*.f64 (*.f64 a a) (+.f64 1 a)) (*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))))) 1)
301.0ms
(pow.f64 (+.f64 (*.f64 a a) (*.f64 b b)) 2)
145.0ms
(*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))
74.0ms
(*.f64 (*.f64 a a) (+.f64 1 a))
Compiler

Compiled 2735 to 2110 computations (22.9% saved)

simplify123.0ms (2.2%)

Algorithm
egg-herbie
Rules
652×distribute-rgt-in_binary64_1733
603×distribute-lft-in_binary64_1732
230×associate-*l*_binary64_1724
200×associate--l+_binary64_1720
188×associate-*r*_binary64_1723
185×exp-prod_binary64_1835
173×cancel-sign-sub-inv_binary64_1749
103×*-commutative_binary64_1714
96×unswap-sqr_binary64_1751
73×distribute-rgt-neg-in_binary64_1741
72×distribute-rgt-out_binary64_1736
67×sqr-pow_binary64_1755
66×log-prod_binary64_1869 +-commutative_binary64_1713
62×sub-neg_binary64_1776 distribute-lft-neg-in_binary64_1740
51×associate-+l+_binary64_1716
46×associate-+r+_binary64_1715
43×distribute-lft-out_binary64_1734
41×exp-sum_binary64_1829
30×*-lft-identity_binary64_1772
26×associate-+l-_binary64_1718
25×*-rgt-identity_binary64_1773
21×distribute-lft-neg-out_binary64_1742 associate--r+_binary64_1719
20×pow-plus_binary64_1846 cube-prod_binary64_1811 neg-mul-1_binary64_1779 neg-sub0_binary64_1778
19×swap-sqr_binary64_1750
15×log-pow_binary64_1872 exp-diff_binary64_1831 distribute-rgt-neg-out_binary64_1743
13×cube-unmult_binary64_1820 distribute-rgt-out--_binary64_1737
11×pow-sqr_binary64_1756
10×unsub-neg_binary64_1777
unpow3_binary64_1849 unpow1/2_binary64_1847
unpow2_binary64_1848 div-exp_binary64_1834
unpow1_binary64_1841 distribute-rgt1-in_binary64_1739 associate-/l*_binary64_1728
exp-lft-cube_binary64_1839 difference-of-sqr-1_binary64_1753 distribute-lft-out--_binary64_1735
cube-mult_binary64_1813 mul-1-neg_binary64_1775 difference-of-sqr--1_binary64_1754 distribute-lft1-in_binary64_1738 associate-/l/_binary64_1730 associate-*r/_binary64_1725
prod-exp_binary64_1832 rem-sqrt-square_binary64_1796 distribute-neg-in_binary64_1744 count-2_binary64_1731 associate-/r/_binary64_1729 associate-/r*_binary64_1727
1-exp_binary64_1827 exp-1-e_binary64_1826 rem-3cbrt-rft_binary64_1809 rem-3cbrt-lft_binary64_1808 rem-square-sqrt_binary64_1795 div-sub_binary64_1788
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_2046 erf-erfc_binary64_2045 erf-odd_binary64_2044 if-if-and-not_binary64_2043 if-if-and_binary64_2042 if-if-or-not_binary64_2041 if-if-or_binary64_2040 if-not_binary64_2039 if-same_binary64_2038 if-false_binary64_2037 if-true_binary64_2036 not-gte_binary64_2035 not-lte_binary64_2034 not-gt_binary64_2033 not-lt_binary64_2032 gte-same_binary64_2031 lte-same_binary64_2030 gt-same_binary64_2029 lt-same_binary64_2028 sinh---cosh_binary64_1975 sinh-+-cosh_binary64_1974 sinh-cosh_binary64_1973 tanh-def-c_binary64_1972 tanh-def-b_binary64_1971 tanh-def-a_binary64_1970 cosh-def_binary64_1969 sinh-def_binary64_1968 tan-neg_binary64_1915 cos-neg_binary64_1914 sin-neg_binary64_1913 tan-0_binary64_1912 cos-0_binary64_1911 sin-0_binary64_1910 hang-m-tan_binary64_1909 hang-p-tan_binary64_1908 hang-m0-tan_binary64_1907 hang-p0-tan_binary64_1906 hang-0m-tan_binary64_1905 hang-0p-tan_binary64_1904 tan-+PI/2_binary64_1903 tan-+PI_binary64_1902 tan-PI_binary64_1901 tan-PI/3_binary64_1900 tan-PI/4_binary64_1899 tan-PI/6_binary64_1898 cos-+PI/2_binary64_1897 cos-+PI_binary64_1896 cos-PI_binary64_1895 cos-PI/2_binary64_1894 cos-PI/3_binary64_1893 cos-PI/4_binary64_1892 cos-PI/6_binary64_1891 sin-+PI/2_binary64_1890 sin-+PI_binary64_1889 sin-PI_binary64_1888 sin-PI/2_binary64_1887 sin-PI/3_binary64_1886 sin-PI/4_binary64_1885 sin-PI/6_binary64_1884 sub-1-sin_binary64_1883 sub-1-cos_binary64_1882 -1-add-sin_binary64_1881 -1-add-cos_binary64_1880 1-sub-sin_binary64_1879 1-sub-cos_binary64_1878 cos-sin-sum_binary64_1877 log-E_binary64_1873 log-rec_binary64_1871 log-div_binary64_1870 pow-base-0_binary64_1867 unpow1/3_binary64_1850 exp-to-pow_binary64_1845 pow-base-1_binary64_1843 unpow0_binary64_1842 unpow-1_binary64_1840 exp-lft-sqr_binary64_1838 exp-cbrt_binary64_1837 exp-sqrt_binary64_1836 rec-exp_binary64_1833 exp-neg_binary64_1830 e-exp-1_binary64_1828 exp-0_binary64_1825 rem-log-exp_binary64_1824 rem-exp-log_binary64_1823 cube-div_binary64_1812 cube-neg_binary64_1810 rem-cbrt-cube_binary64_1807 rem-cube-cbrt_binary64_1806 sqr-abs_binary64_1798 sqr-neg_binary64_1797 times-frac_binary64_1789 /-rgt-identity_binary64_1774 remove-double-neg_binary64_1771 sub0-neg_binary64_1770 --rgt-identity_binary64_1769 +-rgt-identity_binary64_1768 +-lft-identity_binary64_1767 mul0-rgt_binary64_1766 mul0-lft_binary64_1765 div0_binary64_1764 *-inverses_binary64_1763 +-inverses_binary64_1762 lft-mult-inverse_binary64_1761 rgt-mult-inverse_binary64_1760 remove-double-div_binary64_1759 difference-of-squares_binary64_1752 cancel-sign-sub_binary64_1748 distribute-neg-frac_binary64_1747 distribute-frac-neg_binary64_1746 distribute-neg-out_binary64_1745 associate-*l/_binary64_1726 associate--r-_binary64_1722 associate--l-_binary64_1721 associate-+r-_binary64_1717
Counts
138 → 111
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
01983381
15043062
216682971
347512968
449412968

prune149.0ms (2.7%)

Pruning

3 alts after pruning (2 fresh and 1 done)

PrunedKeptTotal
New1092111
Fresh000
Picked011
Done000
Total1093112
Error
0.0b
Counts
112 → 3
Compiler

Compiled 2312 to 1262 computations (45.4% saved)

localize25.0ms (0.4%)

Local error

Found 4 expressions with local error:

0.1b
(*.f64 (*.f64 a a) (+.f64 1 a))
0.6b
(*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))
0.7b
(*.f64 a (*.f64 b b))
1.0b
(*.f64 a (*.f64 a (*.f64 b b)))

rewrite261.0ms (4.7%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
28×pow1_binary64_1844 add-exp-log_binary64_1821 add-cbrt-cube_binary64_1819
15×pow-prod-down_binary64_1854 prod-exp_binary64_1832 cbrt-unprod_binary64_1816
11×add-sqr-sqrt_binary64_1805
10×*-un-lft-identity_binary64_1783
associate-*r*_binary64_1723
add-cube-cbrt_binary64_1818 associate-*l*_binary64_1724
add-log-exp_binary64_1822 *-commutative_binary64_1714 associate-*r/_binary64_1725
unswap-sqr_binary64_1751 distribute-rgt-in_binary64_1733 distribute-lft-in_binary64_1732
sub-neg_binary64_1776 cancel-sign-sub-inv_binary64_1749
flip3--_binary64_1787 flip--_binary64_1758 flip3-+_binary64_1786 flip-+_binary64_1757 distribute-lft-out_binary64_1734
Counts
4 → 89
Calls

4 calls:

9.0ms
(*.f64 (*.f64 a a) (+.f64 1 a))
9.0ms
(*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))
8.0ms
(*.f64 a (*.f64 a (*.f64 b b)))
6.0ms
(*.f64 a (*.f64 b b))
Compiler

Compiled 3575 to 2031 computations (43.2% saved)

series463.0ms (8.4%)

Error
0.0b
Counts
4 → 27
Calls

4 calls:

157.0ms
(*.f64 (*.f64 b b) (-.f64 1 (*.f64 3 a)))
122.0ms
(*.f64 a (*.f64 a (*.f64 b b)))
87.0ms
(*.f64 a (*.f64 b b))
72.0ms
(*.f64 (*.f64 a a) (+.f64 1 a))
Compiler

Compiled 2199 to 1646 computations (25.1% saved)

simplify98.0ms (1.8%)

Algorithm
egg-herbie
Rules
471×*-commutative_binary64_1714
355×distribute-rgt-in_binary64_1733
316×distribute-lft-in_binary64_1732
300×associate-*l*_binary64_1724
299×sqr-pow_binary64_1755
253×associate-*r*_binary64_1723
229×neg-mul-1_binary64_1779
227×unsub-neg_binary64_1777
225×neg-sub0_binary64_1778
223×exp-prod_binary64_1835
200×+-commutative_binary64_1713
141×unswap-sqr_binary64_1751
127×distribute-rgt-neg-in_binary64_1741
118×sub-neg_binary64_1776
112×distribute-lft-neg-in_binary64_1740
100×distribute-lft-neg-out_binary64_1742
96×cancel-sign-sub-inv_binary64_1749
95×distribute-rgt-neg-out_binary64_1743
85×pow-sqr_binary64_1756 distribute-rgt-out_binary64_1736
73×log-prod_binary64_1869
65×cube-prod_binary64_1811
58×*-lft-identity_binary64_1772
54×*-rgt-identity_binary64_1773
43×associate-/l*_binary64_1728 associate-+l+_binary64_1716
41×associate-+r+_binary64_1715
32×swap-sqr_binary64_1750
31×exp-sum_binary64_1829
29×associate-+l-_binary64_1718
25×exp-diff_binary64_1831
21×unpow3_binary64_1849
19×sub0-neg_binary64_1770
18×div-sub_binary64_1788
17×cube-mult_binary64_1813 associate-/r*_binary64_1727
16×distribute-rgt1-in_binary64_1739
14×cube-unmult_binary64_1820 distribute-lft-out_binary64_1734 associate-+r-_binary64_1717
13×pow-plus_binary64_1846 times-frac_binary64_1789
12×unpow1/2_binary64_1847 associate-/l/_binary64_1730 associate-*r/_binary64_1725
10×exp-lft-cube_binary64_1839 rem-sqrt-square_binary64_1796
+-rgt-identity_binary64_1768 mul0-rgt_binary64_1766 mul0-lft_binary64_1765 associate-/r/_binary64_1729
distribute-lft1-in_binary64_1738
log-pow_binary64_1872 distribute-rgt-out--_binary64_1737
count-2_binary64_1731
sqr-neg_binary64_1797
exp-neg_binary64_1830 difference-of-sqr-1_binary64_1753
unpow2_binary64_1848 unpow1_binary64_1841 cube-neg_binary64_1810
1-exp_binary64_1827 exp-1-e_binary64_1826 /-rgt-identity_binary64_1774 remove-double-neg_binary64_1771 --rgt-identity_binary64_1769
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_2046 erf-erfc_binary64_2045 erf-odd_binary64_2044 if-if-and-not_binary64_2043 if-if-and_binary64_2042 if-if-or-not_binary64_2041 if-if-or_binary64_2040 if-not_binary64_2039 if-same_binary64_2038 if-false_binary64_2037 if-true_binary64_2036 not-gte_binary64_2035 not-lte_binary64_2034 not-gt_binary64_2033 not-lt_binary64_2032 gte-same_binary64_2031 lte-same_binary64_2030 gt-same_binary64_2029 lt-same_binary64_2028 sinh---cosh_binary64_1975 sinh-+-cosh_binary64_1974 sinh-cosh_binary64_1973 tanh-def-c_binary64_1972 tanh-def-b_binary64_1971 tanh-def-a_binary64_1970 cosh-def_binary64_1969 sinh-def_binary64_1968 tan-neg_binary64_1915 cos-neg_binary64_1914 sin-neg_binary64_1913 tan-0_binary64_1912 cos-0_binary64_1911 sin-0_binary64_1910 hang-m-tan_binary64_1909 hang-p-tan_binary64_1908 hang-m0-tan_binary64_1907 hang-p0-tan_binary64_1906 hang-0m-tan_binary64_1905 hang-0p-tan_binary64_1904 tan-+PI/2_binary64_1903 tan-+PI_binary64_1902 tan-PI_binary64_1901 tan-PI/3_binary64_1900 tan-PI/4_binary64_1899 tan-PI/6_binary64_1898 cos-+PI/2_binary64_1897 cos-+PI_binary64_1896 cos-PI_binary64_1895 cos-PI/2_binary64_1894 cos-PI/3_binary64_1893 cos-PI/4_binary64_1892 cos-PI/6_binary64_1891 sin-+PI/2_binary64_1890 sin-+PI_binary64_1889 sin-PI_binary64_1888 sin-PI/2_binary64_1887 sin-PI/3_binary64_1886 sin-PI/4_binary64_1885 sin-PI/6_binary64_1884 sub-1-sin_binary64_1883 sub-1-cos_binary64_1882 -1-add-sin_binary64_1881 -1-add-cos_binary64_1880 1-sub-sin_binary64_1879 1-sub-cos_binary64_1878 cos-sin-sum_binary64_1877 log-E_binary64_1873 log-rec_binary64_1871 log-div_binary64_1870 pow-base-0_binary64_1867 unpow1/3_binary64_1850 exp-to-pow_binary64_1845 pow-base-1_binary64_1843 unpow0_binary64_1842 unpow-1_binary64_1840 exp-lft-sqr_binary64_1838 exp-cbrt_binary64_1837 exp-sqrt_binary64_1836 div-exp_binary64_1834 rec-exp_binary64_1833 prod-exp_binary64_1832 e-exp-1_binary64_1828 exp-0_binary64_1825 rem-log-exp_binary64_1824 rem-exp-log_binary64_1823 cube-div_binary64_1812 rem-3cbrt-rft_binary64_1809 rem-3cbrt-lft_binary64_1808 rem-cbrt-cube_binary64_1807 rem-cube-cbrt_binary64_1806 sqr-abs_binary64_1798 rem-square-sqrt_binary64_1795 mul-1-neg_binary64_1775 +-lft-identity_binary64_1767 div0_binary64_1764 *-inverses_binary64_1763 +-inverses_binary64_1762 lft-mult-inverse_binary64_1761 rgt-mult-inverse_binary64_1760 remove-double-div_binary64_1759 difference-of-sqr--1_binary64_1754 difference-of-squares_binary64_1752 cancel-sign-sub_binary64_1748 distribute-neg-frac_binary64_1747 distribute-frac-neg_binary64_1746 distribute-neg-out_binary64_1745 distribute-neg-in_binary64_1744 distribute-lft-out--_binary64_1735 associate-*l/_binary64_1726 associate--r-_binary64_1722 associate--l-_binary64_1721 associate--l+_binary64_1720 associate--r+_binary64_1719
Counts
116 → 94
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
01381574
13601303
212661270
327041252
438611249
551151249

prune136.0ms (2.5%)

Pruning

3 alts after pruning (1 fresh and 2 done)

PrunedKeptTotal
New94094
Fresh011
Picked011
Done011
Total94397
Error
0.0b
Counts
97 → 3
Compiler

Compiled 2071 to 1225 computations (40.8% saved)

localize4.0ms (0.1%)

Local error

Found 1 expressions with local error:

0.1b
(*.f64 (pow.f64 a 3) (+.f64 a 4))

rewrite49.0ms (0.9%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
12×add-sqr-sqrt_binary64_1805 associate-*l*_binary64_1724
*-un-lft-identity_binary64_1783
add-exp-log_binary64_1821
add-cube-cbrt_binary64_1818
unpow-prod-down_binary64_1862 unswap-sqr_binary64_1751 cube-prod_binary64_1811 associate-*r*_binary64_1723
prod-exp_binary64_1832 add-cbrt-cube_binary64_1819
sqr-pow_binary64_1755 associate-*r/_binary64_1725
pow1_binary64_1844 pow-to-exp_binary64_1852 pow-exp_binary64_1851 add-log-exp_binary64_1822 cbrt-unprod_binary64_1816 distribute-rgt-in_binary64_1733 distribute-lft-in_binary64_1732 flip3-+_binary64_1786 flip-+_binary64_1757 unpow3_binary64_1849 cube-mult_binary64_1813 distribute-lft-out_binary64_1734 *-commutative_binary64_1714
Counts
1 → 36
Calls

1 calls:

9.0ms
(*.f64 (pow.f64 a 3) (+.f64 a 4))
Compiler

Compiled 417 to 312 computations (25.2% saved)

series82.0ms (1.5%)

Error
0.0b
Counts
1 → 6
Calls

1 calls:

79.0ms
(*.f64 (pow.f64 a 3) (+.f64 a 4))
Compiler

Compiled 82 to 83 computations (-1.2% saved)

simplify85.0ms (1.6%)

Algorithm
egg-herbie
Rules
373×sqr-pow_binary64_1755
364×exp-prod_binary64_1835
344×pow-sqr_binary64_1756
341×associate-+l+_binary64_1716
327×associate-+r+_binary64_1715
301×*-commutative_binary64_1714
288×distribute-rgt-in_binary64_1733
287×distribute-lft-in_binary64_1732
192×distribute-rgt-out_binary64_1736
189×log-prod_binary64_1869
154×unswap-sqr_binary64_1751
145×swap-sqr_binary64_1750
137×cube-prod_binary64_1811 associate-*l*_binary64_1724
118×associate-*r*_binary64_1723
85×+-commutative_binary64_1713
69×rem-sqrt-square_binary64_1796
52×unpow3_binary64_1849
47×cube-mult_binary64_1813
46×log-pow_binary64_1872
35×associate-/l*_binary64_1728
34×pow-plus_binary64_1846
30×exp-sum_binary64_1829
27×distribute-lft-out_binary64_1734
25×*-lft-identity_binary64_1772
24×*-rgt-identity_binary64_1773
13×cube-unmult_binary64_1820
12×unpow2_binary64_1848
unpow1/2_binary64_1847 count-2_binary64_1731
distribute-rgt1-in_binary64_1739
unpow1_binary64_1841 distribute-lft1-in_binary64_1738
prod-exp_binary64_1832 1-exp_binary64_1827 exp-1-e_binary64_1826 rem-cbrt-cube_binary64_1807 rem-cube-cbrt_binary64_1806 rem-square-sqrt_binary64_1795 sub-neg_binary64_1776 associate-/l/_binary64_1730 associate-*r/_binary64_1725
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_2046 erf-erfc_binary64_2045 erf-odd_binary64_2044 if-if-and-not_binary64_2043 if-if-and_binary64_2042 if-if-or-not_binary64_2041 if-if-or_binary64_2040 if-not_binary64_2039 if-same_binary64_2038 if-false_binary64_2037 if-true_binary64_2036 not-gte_binary64_2035 not-lte_binary64_2034 not-gt_binary64_2033 not-lt_binary64_2032 gte-same_binary64_2031 lte-same_binary64_2030 gt-same_binary64_2029 lt-same_binary64_2028 sinh---cosh_binary64_1975 sinh-+-cosh_binary64_1974 sinh-cosh_binary64_1973 tanh-def-c_binary64_1972 tanh-def-b_binary64_1971 tanh-def-a_binary64_1970 cosh-def_binary64_1969 sinh-def_binary64_1968 tan-neg_binary64_1915 cos-neg_binary64_1914 sin-neg_binary64_1913 tan-0_binary64_1912 cos-0_binary64_1911 sin-0_binary64_1910 hang-m-tan_binary64_1909 hang-p-tan_binary64_1908 hang-m0-tan_binary64_1907 hang-p0-tan_binary64_1906 hang-0m-tan_binary64_1905 hang-0p-tan_binary64_1904 tan-+PI/2_binary64_1903 tan-+PI_binary64_1902 tan-PI_binary64_1901 tan-PI/3_binary64_1900 tan-PI/4_binary64_1899 tan-PI/6_binary64_1898 cos-+PI/2_binary64_1897 cos-+PI_binary64_1896 cos-PI_binary64_1895 cos-PI/2_binary64_1894 cos-PI/3_binary64_1893 cos-PI/4_binary64_1892 cos-PI/6_binary64_1891 sin-+PI/2_binary64_1890 sin-+PI_binary64_1889 sin-PI_binary64_1888 sin-PI/2_binary64_1887 sin-PI/3_binary64_1886 sin-PI/4_binary64_1885 sin-PI/6_binary64_1884 sub-1-sin_binary64_1883 sub-1-cos_binary64_1882 -1-add-sin_binary64_1881 -1-add-cos_binary64_1880 1-sub-sin_binary64_1879 1-sub-cos_binary64_1878 cos-sin-sum_binary64_1877 log-E_binary64_1873 log-rec_binary64_1871 log-div_binary64_1870 pow-base-0_binary64_1867 unpow1/3_binary64_1850 exp-to-pow_binary64_1845 pow-base-1_binary64_1843 unpow0_binary64_1842 unpow-1_binary64_1840 exp-lft-cube_binary64_1839 exp-lft-sqr_binary64_1838 exp-cbrt_binary64_1837 exp-sqrt_binary64_1836 div-exp_binary64_1834 rec-exp_binary64_1833 exp-diff_binary64_1831 exp-neg_binary64_1830 e-exp-1_binary64_1828 exp-0_binary64_1825 rem-log-exp_binary64_1824 rem-exp-log_binary64_1823 cube-div_binary64_1812 cube-neg_binary64_1810 rem-3cbrt-rft_binary64_1809 rem-3cbrt-lft_binary64_1808 sqr-abs_binary64_1798 sqr-neg_binary64_1797 times-frac_binary64_1789 div-sub_binary64_1788 neg-mul-1_binary64_1779 neg-sub0_binary64_1778 unsub-neg_binary64_1777 mul-1-neg_binary64_1775 /-rgt-identity_binary64_1774 remove-double-neg_binary64_1771 sub0-neg_binary64_1770 --rgt-identity_binary64_1769 +-rgt-identity_binary64_1768 +-lft-identity_binary64_1767 mul0-rgt_binary64_1766 mul0-lft_binary64_1765 div0_binary64_1764 *-inverses_binary64_1763 +-inverses_binary64_1762 lft-mult-inverse_binary64_1761 rgt-mult-inverse_binary64_1760 remove-double-div_binary64_1759 difference-of-sqr--1_binary64_1754 difference-of-sqr-1_binary64_1753 difference-of-squares_binary64_1752 cancel-sign-sub-inv_binary64_1749 cancel-sign-sub_binary64_1748 distribute-neg-frac_binary64_1747 distribute-frac-neg_binary64_1746 distribute-neg-out_binary64_1745 distribute-neg-in_binary64_1744 distribute-rgt-neg-out_binary64_1743 distribute-lft-neg-out_binary64_1742 distribute-rgt-neg-in_binary64_1741 distribute-lft-neg-in_binary64_1740 distribute-rgt-out--_binary64_1737 distribute-lft-out--_binary64_1735 associate-/r/_binary64_1729 associate-/r*_binary64_1727 associate-*l/_binary64_1726 associate--r-_binary64_1722 associate--l-_binary64_1721 associate--l+_binary64_1720 associate--r+_binary64_1719 associate-+l-_binary64_1718 associate-+r-_binary64_1717
Counts
42 → 36
Iterations

Useful iterations: 4 (0.0ms)

IterNodesCost
067539
1172509
2761509
31922509
43737491
54713491
65198491

prune28.0ms (0.5%)

Pruning

3 alts after pruning (0 fresh and 3 done)

PrunedKeptTotal
New36036
Fresh000
Picked011
Done022
Total36339
Error
0.0b
Counts
39 → 3
Compiler

Compiled 299 to 223 computations (25.4% saved)

regimes1.2s (21.5%)

Accuracy

Total 0.0b remaining (42.6%)

Threshold costs 0.0b (42.6%)

Compiler

Compiled 16075 to 11527 computations (28.3% saved)

bsearch0.0ms (0%)

simplify5.0ms (0.1%)

Algorithm
egg-herbie
Rules
*-commutative_binary64_1714 +-commutative_binary64_1713
sub-neg_binary64_1776
neg-mul-1_binary64_1779 neg-sub0_binary64_1778 cancel-sign-sub-inv_binary64_1749 distribute-rgt-neg-in_binary64_1741 distribute-lft-neg-in_binary64_1740
1-exp_binary64_1827
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_2043 if-if-and_binary64_2042 if-if-or-not_binary64_2041 if-if-or_binary64_2040 if-not_binary64_2039 if-same_binary64_2038 if-false_binary64_2037 if-true_binary64_2036 tan-0_binary64_1912 cos-0_binary64_1911 sin-0_binary64_1910 unpow1_binary64_1841 e-exp-1_binary64_1828 exp-1-e_binary64_1826 exp-0_binary64_1825 sqr-abs_binary64_1798 sqr-neg_binary64_1797 unsub-neg_binary64_1777 mul-1-neg_binary64_1775 /-rgt-identity_binary64_1774 *-rgt-identity_binary64_1773 *-lft-identity_binary64_1772 remove-double-neg_binary64_1771 sub0-neg_binary64_1770 --rgt-identity_binary64_1769 +-rgt-identity_binary64_1768 +-lft-identity_binary64_1767 cancel-sign-sub_binary64_1748 distribute-neg-frac_binary64_1747 distribute-frac-neg_binary64_1746 distribute-neg-out_binary64_1745 distribute-neg-in_binary64_1744 distribute-rgt-neg-out_binary64_1743 distribute-lft-neg-out_binary64_1742
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02558
14858
25558
35958
46258
56358
66058

end2.0ms (0%)

Compiler

Compiled 39 to 28 computations (28.2% saved)

sample878.0ms (16%)

Algorithm
intervals
Results
503.0ms8000×body128valid
0.0msbody128invalid
Compiler

Compiled 151 to 117 computations (22.5% saved)

Profiling

Loading profile data...