Details

Time bar (total: 22.0s)

analyze2.5s (11.6%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.8%0.2%0
0%99.8%0.2%1
0%99.8%0.2%2
0%99.8%0.2%3
0%99.8%0.2%4
0%99.8%0.2%5
0%99.8%0.2%6
0%99.8%0.2%7
0%99.8%0.2%8
7.8%92%0.2%9
7.8%92%0.2%10
10.1%89.7%0.2%11
10.1%89.7%0.2%12
13.9%85.9%0.2%13
13.9%85.9%0.2%14
Compiler

Compiled 25 to 18 computations (28% saved)

sample221.0ms (1%)

Algorithm
intervals
Results
148.0ms168×body1024valid
25.0ms11×body2048valid
22.0ms38×body512valid
5.0ms15×body256valid
4.0ms24×body128valid
Compiler

Compiled 49 to 39 computations (20.4% saved)

simplify116.0ms (0.5%)

Algorithm
egg-herbie
Rules
83×cancel-sign-sub-inv_binary64_1749
59×distribute-rgt-neg-in_binary64_1741
56×sub-neg_binary64_1776
47×distribute-rgt-in_binary64_1733
42×unsub-neg_binary64_1777
41×neg-mul-1_binary64_1779
35×neg-sub0_binary64_1778
34×distribute-lft-neg-in_binary64_1740 distribute-lft-in_binary64_1732
28×distribute-lft-neg-out_binary64_1742 associate--r+_binary64_1719
25×associate-*r*_binary64_1723
23×*-commutative_binary64_1714
21×+-commutative_binary64_1713
18×+-lft-identity_binary64_1767 mul0-rgt_binary64_1766 mul0-lft_binary64_1765 distribute-neg-in_binary64_1744 distribute-rgt-neg-out_binary64_1743
16×associate-+l-_binary64_1718
14×sub0-neg_binary64_1770
13×associate-*l*_binary64_1724
12×remove-double-neg_binary64_1771
10×*-lft-identity_binary64_1772
--rgt-identity_binary64_1769 associate--r-_binary64_1722
associate-+l+_binary64_1716
*-rgt-identity_binary64_1773
sin-neg_binary64_1913
cos-neg_binary64_1914 +-rgt-identity_binary64_1768 associate--l+_binary64_1720 associate-+r-_binary64_1717 associate-+r+_binary64_1715
1-exp_binary64_1827 cancel-sign-sub_binary64_1748
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 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 unpow3_binary64_1849 unpow2_binary64_1848 unpow1/2_binary64_1847 pow-plus_binary64_1846 exp-to-pow_binary64_1845 pow-base-1_binary64_1843 unpow0_binary64_1842 unpow1_binary64_1841 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-unmult_binary64_1820 cube-mult_binary64_1813 cube-div_binary64_1812 cube-prod_binary64_1811 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-sqrt-square_binary64_1796 rem-square-sqrt_binary64_1795 times-frac_binary64_1789 div-sub_binary64_1788 mul-1-neg_binary64_1775 /-rgt-identity_binary64_1774 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 sqr-pow_binary64_1755 difference-of-sqr--1_binary64_1754 difference-of-sqr-1_binary64_1753 difference-of-squares_binary64_1752 unswap-sqr_binary64_1751 swap-sqr_binary64_1750 distribute-neg-frac_binary64_1747 distribute-frac-neg_binary64_1746 distribute-neg-out_binary64_1745 distribute-rgt1-in_binary64_1739 distribute-lft1-in_binary64_1738 distribute-rgt-out--_binary64_1737 distribute-rgt-out_binary64_1736 distribute-lft-out--_binary64_1735 distribute-lft-out_binary64_1734 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
01839
13139
25939
310539
412939
519639
624839
730939
842039
943039
1043639
1138539

prune4.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 48 to 34 computations (29.2% saved)

localize25.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.2b
(*.f64 (sin.f64 phi1) (cos.f64 phi2))
0.2b
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
3.7b
(sin.f64 (-.f64 lambda1 lambda2))
3.7b
(cos.f64 (-.f64 lambda1 lambda2))

rewrite114.0ms (0.5%)

Algorithm
rewrite-expression-head
Error
6.8b
Rules
11×add-sqr-sqrt_binary64_1805 pow1_binary64_1844 add-exp-log_binary64_1821 add-cbrt-cube_binary64_1819
add-cube-cbrt_binary64_1818 *-un-lft-identity_binary64_1783
cancel-sign-sub-inv_binary64_1749 associate-*r*_binary64_1723
cos-sum_binary64_1917 add-log-exp_binary64_1822 sin-sum_binary64_1916 pow-prod-down_binary64_1854 prod-exp_binary64_1832 cbrt-unprod_binary64_1816 associate-*l*_binary64_1724
cos-diff_binary64_1920
sub-neg_binary64_1776 sin-cos-mult_binary64_1939 *-commutative_binary64_1714
sin-diff_binary64_1919 distribute-rgt-in_binary64_1733 distribute-lft-in_binary64_1732 associate-*l/_binary64_1726 unswap-sqr_binary64_1751
Counts
4 → 64
Calls

4 calls:

7.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
5.0ms
(*.f64 (sin.f64 phi1) (cos.f64 phi2))
5.0ms
(cos.f64 (-.f64 lambda1 lambda2))
4.0ms
(sin.f64 (-.f64 lambda1 lambda2))
Compiler

Compiled 2042 to 375 computations (81.6% saved)

series662.0ms (3%)

Error
9.7b
Counts
4 → 52
Calls

4 calls:

387.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
101.0ms
(*.f64 (sin.f64 phi1) (cos.f64 phi2))
58.0ms
(sin.f64 (-.f64 lambda1 lambda2))
56.0ms
(cos.f64 (-.f64 lambda1 lambda2))
Compiler

Compiled 3926 to 1900 computations (51.6% saved)

simplify126.0ms (0.6%)

Algorithm
egg-herbie
Rules
563×sub-neg_binary64_1776
552×distribute-rgt-neg-in_binary64_1741
472×distribute-lft-neg-in_binary64_1740
442×cancel-sign-sub-inv_binary64_1749
316×neg-mul-1_binary64_1779
303×associate-*r*_binary64_1723
293×neg-sub0_binary64_1778
283×associate-*l*_binary64_1724
183×*-commutative_binary64_1714
152×distribute-lft-out--_binary64_1735
126×unsub-neg_binary64_1777
120×distribute-lft-out_binary64_1734
110×distribute-rgt-out--_binary64_1737
87×+-commutative_binary64_1713
86×distribute-rgt-out_binary64_1736
84×sqr-pow_binary64_1755
76×distribute-lft-neg-out_binary64_1742
58×distribute-rgt-neg-out_binary64_1743 associate-+l-_binary64_1718
49×associate--l+_binary64_1720 associate-+r-_binary64_1717
42×associate-+l+_binary64_1716
40×cancel-sign-sub_binary64_1748
35×cube-prod_binary64_1811
32×sub0-neg_binary64_1770 +-rgt-identity_binary64_1768 associate-+r+_binary64_1715
31×exp-prod_binary64_1835
30×*-rgt-identity_binary64_1773
29×unswap-sqr_binary64_1751 associate--r+_binary64_1719
28×log-prod_binary64_1869 *-lft-identity_binary64_1772 remove-double-neg_binary64_1771
25×swap-sqr_binary64_1750
17×distribute-rgt-in_binary64_1733
13×pow-sqr_binary64_1756 distribute-neg-in_binary64_1744
12×rem-sqrt-square_binary64_1796
11×cube-unmult_binary64_1820
10×unpow3_binary64_1849
unpow1/2_binary64_1847 distribute-neg-out_binary64_1745 distribute-rgt1-in_binary64_1739
associate--l-_binary64_1721
sin-neg_binary64_1913
cos-neg_binary64_1914 cube-mult_binary64_1813 distribute-lft-in_binary64_1732
unpow2_binary64_1848 unpow1_binary64_1841 mul0-rgt_binary64_1766 mul0-lft_binary64_1765 difference-of-squares_binary64_1752
pow-plus_binary64_1846 exp-sum_binary64_1829 distribute-lft1-in_binary64_1738
1-exp_binary64_1827 exp-1-e_binary64_1826 cube-neg_binary64_1810 rem-3cbrt-lft_binary64_1808 sqr-neg_binary64_1797 rem-square-sqrt_binary64_1795 associate-/l*_binary64_1728
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 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 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 prod-exp_binary64_1832 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 rem-3cbrt-rft_binary64_1809 rem-cbrt-cube_binary64_1807 rem-cube-cbrt_binary64_1806 sqr-abs_binary64_1798 times-frac_binary64_1789 div-sub_binary64_1788 mul-1-neg_binary64_1775 /-rgt-identity_binary64_1774 --rgt-identity_binary64_1769 +-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-sqr-1_binary64_1753 distribute-neg-frac_binary64_1747 distribute-frac-neg_binary64_1746 count-2_binary64_1731 associate-/l/_binary64_1730 associate-/r/_binary64_1729 associate-/r*_binary64_1727 associate-*l/_binary64_1726 associate-*r/_binary64_1725 associate--r-_binary64_1722
Counts
116 → 165
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02262109
15801916
217321797
330451736
447281736
551291736

prune251.0ms (1.1%)

Pruning

16 alts after pruning (16 fresh and 0 done)

PrunedKeptTotal
New14916165
Fresh000
Picked101
Done000
Total15016166
Error
6.7b
Counts
166 → 16
Compiler

Compiled 6170 to 1428 computations (76.9% saved)

localize29.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.2b
(*.f64 (cos.f64 phi1) (sin.f64 phi2))
0.2b
(*.f64 (sin.f64 phi1) (cos.f64 phi2))
0.2b
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
3.7b
(cos.f64 (-.f64 lambda1 lambda2))

rewrite126.0ms (0.6%)

Algorithm
rewrite-expression-head
Error
0.1b
Rules
14×add-sqr-sqrt_binary64_1805
13×pow1_binary64_1844 add-exp-log_binary64_1821 add-cbrt-cube_binary64_1819
10×add-cube-cbrt_binary64_1818 *-un-lft-identity_binary64_1783
associate-*r*_binary64_1723
associate-*l*_binary64_1724
pow-prod-down_binary64_1854 prod-exp_binary64_1832 cbrt-unprod_binary64_1816
cos-sum_binary64_1917 add-log-exp_binary64_1822
cos-diff_binary64_1920 cancel-sign-sub-inv_binary64_1749 *-commutative_binary64_1714
sin-cos-mult_binary64_1939 unswap-sqr_binary64_1751
sub-neg_binary64_1776 distribute-rgt-in_binary64_1733 distribute-lft-in_binary64_1732 associate-*l/_binary64_1726
Counts
4 → 70
Calls

4 calls:

7.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
5.0ms
(*.f64 (sin.f64 phi1) (cos.f64 phi2))
5.0ms
(cos.f64 (-.f64 lambda1 lambda2))
4.0ms
(*.f64 (cos.f64 phi1) (sin.f64 phi2))
Compiler

Compiled 2672 to 399 computations (85.1% saved)

series762.0ms (3.5%)

Error
6.1b
Counts
4 → 52
Calls

4 calls:

405.0ms
(*.f64 (*.f64 (sin.f64 phi1) (cos.f64 phi2)) (cos.f64 (-.f64 lambda1 lambda2)))
111.0ms
(*.f64 (cos.f64 phi1) (sin.f64 phi2))
111.0ms
(*.f64 (sin.f64 phi1) (cos.f64 phi2))
64.0ms
(cos.f64 (-.f64 lambda1 lambda2))
Compiler

Compiled 4832 to 2333 computations (51.7% saved)

simplify135.0ms (0.6%)

Algorithm
egg-herbie
Rules
607×distribute-rgt-neg-in_binary64_1741
531×cancel-sign-sub-inv_binary64_1749
447×neg-mul-1_binary64_1779
423×neg-sub0_binary64_1778
361×associate-*r*_binary64_1723
339×associate-*l*_binary64_1724
326×sub-neg_binary64_1776
272×distribute-lft-neg-in_binary64_1740
199×*-commutative_binary64_1714
151×distribute-lft-neg-out_binary64_1742
128×unsub-neg_binary64_1777
108×sqr-pow_binary64_1755
96×distribute-rgt-neg-out_binary64_1743
95×+-commutative_binary64_1713
60×unswap-sqr_binary64_1751
56×cancel-sign-sub_binary64_1748
55×associate--l+_binary64_1720
54×distribute-rgt-out--_binary64_1737 associate-+l-_binary64_1718
50×distribute-neg-out_binary64_1745 distribute-rgt-out_binary64_1736
48×associate-+l+_binary64_1716
47×associate-+r-_binary64_1717
41×exp-prod_binary64_1835 *-rgt-identity_binary64_1773
39×cube-prod_binary64_1811
38×associate-+r+_binary64_1715
37×log-prod_binary64_1869
36×*-lft-identity_binary64_1772
34×+-rgt-identity_binary64_1768
33×swap-sqr_binary64_1750
32×associate--r+_binary64_1719
27×sub0-neg_binary64_1770
21×remove-double-neg_binary64_1771
20×cube-unmult_binary64_1820
18×pow-sqr_binary64_1756
15×rem-sqrt-square_binary64_1796
14×distribute-rgt-in_binary64_1733
13×unpow3_binary64_1849 distribute-neg-in_binary64_1744
12×distribute-lft-out--_binary64_1735
11×unpow1/2_binary64_1847
distribute-lft-out_binary64_1734
pow-plus_binary64_1846 difference-of-squares_binary64_1752 distribute-rgt1-in_binary64_1739
cos-neg_binary64_1914 sin-neg_binary64_1913 cube-mult_binary64_1813
unpow2_binary64_1848 unpow1_binary64_1841 distribute-lft-in_binary64_1732
exp-sum_binary64_1829
mul0-rgt_binary64_1766 mul0-lft_binary64_1765 associate--l-_binary64_1721
1-exp_binary64_1827 exp-1-e_binary64_1826 cube-neg_binary64_1810 rem-3cbrt-lft_binary64_1808 sqr-neg_binary64_1797 rem-square-sqrt_binary64_1795 associate-/l*_binary64_1728
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 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 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 prod-exp_binary64_1832 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 rem-3cbrt-rft_binary64_1809 rem-cbrt-cube_binary64_1807 rem-cube-cbrt_binary64_1806 sqr-abs_binary64_1798 times-frac_binary64_1789 div-sub_binary64_1788 mul-1-neg_binary64_1775 /-rgt-identity_binary64_1774 --rgt-identity_binary64_1769 +-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-sqr-1_binary64_1753 distribute-neg-frac_binary64_1747 distribute-frac-neg_binary64_1746 distribute-lft1-in_binary64_1738 count-2_binary64_1731 associate-/l/_binary64_1730 associate-/r/_binary64_1729 associate-/r*_binary64_1727 associate-*l/_binary64_1726 associate-*r/_binary64_1725 associate--r-_binary64_1722
Counts
122 → 163
Iterations

Useful iterations: 3 (0.0ms)

IterNodesCost
02482257
16412031
220081891
335061889
447491889
550661889

prune242.0ms (1.1%)

Pruning

11 alts after pruning (11 fresh and 0 done)

PrunedKeptTotal
New1585163
Fresh9615
Picked101
Done000
Total16811179
Error
0.1b
Counts
179 → 11
Compiler

Compiled 7052 to 1257 computations (82.2% saved)

localize35.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.2b
(*.f64 (cos.f64 phi2) (sin.f64 phi1))
0.2b
(*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2)))
0.3b
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
0.3b
(*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))

rewrite161.0ms (0.7%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
32×pow1_binary64_1844 add-exp-log_binary64_1821 add-cbrt-cube_binary64_1819
18×pow-prod-down_binary64_1854 prod-exp_binary64_1832 cbrt-unprod_binary64_1816
12×add-sqr-sqrt_binary64_1805
add-cube-cbrt_binary64_1818 *-un-lft-identity_binary64_1783 associate-*l*_binary64_1724 associate-*r*_binary64_1723
add-log-exp_binary64_1822 *-commutative_binary64_1714
sin-mult_binary64_1938 associate-*r/_binary64_1725 unswap-sqr_binary64_1751 sin-cos-mult_binary64_1939 cos-mult_binary64_1937
frac-times_binary64_1793 associate-*l/_binary64_1726
Counts
4 → 85
Calls

4 calls:

10.0ms
(*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2)))
9.0ms
(*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
5.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
5.0ms
(*.f64 (cos.f64 phi2) (sin.f64 phi1))
Compiler

Compiled 4380 to 547 computations (87.5% saved)

series1.3s (6.1%)

Error
0.1b
Counts
4 → 60
Calls

4 calls:

519.0ms
(*.f64 (*.f64 (cos.f64 phi2) (sin.f64 phi1)) (*.f64 (sin.f64 lambda1) (sin.f64 lambda2)))
518.0ms
(*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2)))
110.0ms
(*.f64 (sin.f64 lambda1) (sin.f64 lambda2))
104.0ms
(*.f64 (cos.f64 phi2) (sin.f64 phi1))
Compiler

Compiled 7714 to 3173 computations (58.9% saved)

simplify107.0ms (0.5%)

Algorithm
egg-herbie
Rules
787×associate-*r*_binary64_1723
740×cancel-sign-sub-inv_binary64_1749
657×associate-*l*_binary64_1724
499×distribute-rgt-neg-in_binary64_1741
306×*-commutative_binary64_1714
99×sub-neg_binary64_1776
86×log-prod_binary64_1869
79×swap-sqr_binary64_1750
76×exp-prod_binary64_1835
72×+-commutative_binary64_1713
70×neg-mul-1_binary64_1779 neg-sub0_binary64_1778
67×sqr-pow_binary64_1755
47×cube-prod_binary64_1811
36×distribute-lft-neg-in_binary64_1740 associate--l+_binary64_1720
35×*-rgt-identity_binary64_1773
29×*-lft-identity_binary64_1772
24×associate--r+_binary64_1719
23×associate-+l+_binary64_1716
21×unsub-neg_binary64_1777
16×unswap-sqr_binary64_1751 distribute-rgt-in_binary64_1733 distribute-lft-in_binary64_1732
14×distribute-lft-neg-out_binary64_1742 associate-+r+_binary64_1715
13×cube-unmult_binary64_1820
12×distribute-neg-in_binary64_1744
pow-sqr_binary64_1756
unpow3_binary64_1849 unpow2_binary64_1848 unpow1/2_binary64_1847 unpow1_binary64_1841 cube-mult_binary64_1813
distribute-rgt-neg-out_binary64_1743
1-exp_binary64_1827 exp-1-e_binary64_1826 difference-of-squares_binary64_1752 distribute-rgt-out--_binary64_1737
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 pow-base-0_binary64_1867 unpow1/3_binary64_1850 pow-plus_binary64_1846 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 prod-exp_binary64_1832 exp-diff_binary64_1831 exp-neg_binary64_1830 exp-sum_binary64_1829 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 rem-cbrt-cube_binary64_1807 rem-cube-cbrt_binary64_1806 sqr-abs_binary64_1798 sqr-neg_binary64_1797 rem-sqrt-square_binary64_1796 rem-square-sqrt_binary64_1795 times-frac_binary64_1789 div-sub_binary64_1788 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 cancel-sign-sub_binary64_1748 distribute-neg-frac_binary64_1747 distribute-frac-neg_binary64_1746 distribute-neg-out_binary64_1745 distribute-rgt1-in_binary64_1739 distribute-lft1-in_binary64_1738 distribute-rgt-out_binary64_1736 distribute-lft-out--_binary64_1735 distribute-lft-out_binary64_1734 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--r-_binary64_1722 associate--l-_binary64_1721 associate-+l-_binary64_1718 associate-+r-_binary64_1717
Counts
145 → 164
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
03103433
18372990
231342990
349872990

prune261.0ms (1.2%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New1613164
Fresh01010
Picked101
Done000
Total16213175
Error
0.0b
Counts
175 → 13
Compiler

Compiled 9563 to 1434 computations (85% saved)

localize34.0ms (0.2%)

Local error

Found 4 expressions with local error:

0.2b
(*.f64 (sin.f64 phi1) (cos.f64 phi2))
0.2b
(*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2)))
0.3b
(*.f64 (sin.f64 lambda2) (sin.f64 lambda1))
4.1b
(log.f64 (exp.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))

rewrite136.0ms (0.6%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
21×pow1_binary64_1844
20×add-exp-log_binary64_1821 add-cbrt-cube_binary64_1819
13×add-sqr-sqrt_binary64_1805
10×pow-prod-down_binary64_1854 prod-exp_binary64_1832 cbrt-unprod_binary64_1816
add-cube-cbrt_binary64_1818 *-un-lft-identity_binary64_1783
associate-*l*_binary64_1724 associate-*r*_binary64_1723
add-log-exp_binary64_1822
log-pow_binary64_1872 log-prod_binary64_1869 *-commutative_binary64_1714 sin-cos-mult_binary64_1939
unswap-sqr_binary64_1751 cos-mult_binary64_1937
exp-to-pow_binary64_1845 exp-prod_binary64_1835 rem-log-exp_binary64_1824 sin-mult_binary64_1938 frac-times_binary64_1793 associate-*l/_binary64_1726 associate-*r/_binary64_1725
Counts
4 → 77
Calls

4 calls:

11.0ms
(*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2)))
5.0ms
(*.f64 (sin.f64 lambda2) (sin.f64 lambda1))
5.0ms
(*.f64 (sin.f64 phi1) (cos.f64 phi2))
2.0ms
(log.f64 (exp.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))
Compiler

Compiled 4069 to 551 computations (86.5% saved)

series1.1s (4.9%)

Error
0.0b
Counts
4 → 50
Calls

4 calls:

499.0ms
(*.f64 (*.f64 (cos.f64 lambda1) (cos.f64 lambda2)) (*.f64 (sin.f64 phi1) (cos.f64 phi2)))
304.0ms
(log.f64 (exp.f64 (*.f64 (sin.f64 lambda2) (sin.f64 lambda1))))
111.0ms
(*.f64 (sin.f64 lambda2) (sin.f64 lambda1))
106.0ms
(*.f64 (sin.f64 phi1) (cos.f64 phi2))
Compiler

Compiled 6525 to 2772 computations (57.5% saved)

simplify111.0ms (0.5%)

Algorithm
egg-herbie
Rules
605×distribute-rgt-neg-in_binary64_1741
483×cancel-sign-sub-inv_binary64_1749
427×associate-*r*_binary64_1723
362×associate-*l*_binary64_1724
294×distribute-lft-neg-in_binary64_1740
290×sub-neg_binary64_1776
224×neg-mul-1_binary64_1779 neg-sub0_binary64_1778
198×*-commutative_binary64_1714
138×sqr-pow_binary64_1755
84×+-commutative_binary64_1713
82×log-prod_binary64_1869 exp-prod_binary64_1835
77×swap-sqr_binary64_1750
74×cube-prod_binary64_1811
73×unswap-sqr_binary64_1751
63×distribute-rgt-out_binary64_1736
62×associate-+r+_binary64_1715
58×associate-+l+_binary64_1716
50×distribute-rgt-out--_binary64_1737
44×associate-+l-_binary64_1718
43×associate--l+_binary64_1720
39×associate-+r-_binary64_1717
34×distribute-rgt-in_binary64_1733
27×+-rgt-identity_binary64_1768
26×distribute-lft-in_binary64_1732
25×*-rgt-identity_binary64_1773
24×sub0-neg_binary64_1770 associate--r+_binary64_1719
22×*-lft-identity_binary64_1772 distribute-lft-out--_binary64_1735 distribute-lft-out_binary64_1734
18×unpow3_binary64_1849
17×pow-sqr_binary64_1756
16×unsub-neg_binary64_1777
15×cube-unmult_binary64_1820 cube-mult_binary64_1813
distribute-neg-in_binary64_1744 distribute-lft-neg-out_binary64_1742
cancel-sign-sub_binary64_1748
unpow1/2_binary64_1847 rem-sqrt-square_binary64_1796
log-pow_binary64_1872 exp-to-pow_binary64_1845 difference-of-squares_binary64_1752
unpow2_binary64_1848 pow-plus_binary64_1846 unpow1_binary64_1841 rem-log-exp_binary64_1824 associate-/l*_binary64_1728
distribute-rgt1-in_binary64_1739
log-E_binary64_1873 exp-sum_binary64_1829 1-exp_binary64_1827 exp-1-e_binary64_1826 rem-exp-log_binary64_1823 count-2_binary64_1731
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-rec_binary64_1871 log-div_binary64_1870 pow-base-0_binary64_1867 unpow1/3_binary64_1850 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 prod-exp_binary64_1832 exp-diff_binary64_1831 exp-neg_binary64_1830 e-exp-1_binary64_1828 exp-0_binary64_1825 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 mul-1-neg_binary64_1775 /-rgt-identity_binary64_1774 remove-double-neg_binary64_1771 --rgt-identity_binary64_1769 +-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 distribute-neg-frac_binary64_1747 distribute-frac-neg_binary64_1746 distribute-neg-out_binary64_1745 distribute-rgt-neg-out_binary64_1743 distribute-lft1-in_binary64_1738 associate-/l/_binary64_1730 associate-/r/_binary64_1729 associate-/r*_binary64_1727 associate-*l/_binary64_1726 associate-*r/_binary64_1725 associate--r-_binary64_1722 associate--l-_binary64_1721
Counts
127 → 164
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02442508
16062215
220162033
336992033
449672033

prune232.0ms (1.1%)

Pruning

13 alts after pruning (13 fresh and 0 done)

PrunedKeptTotal
New1631164
Fresh01212
Picked101
Done000
Total16413177
Error
0.0b
Counts
177 → 13
Compiler

Compiled 9205 to 1295 computations (85.9% saved)

regimes2.5s (11.5%)

Accuracy

Total 0.1b remaining (65.5%)

Threshold costs 0.1b (65.5%)

Compiler

Compiled 31596 to 20879 computations (33.9% saved)

bsearch0.0ms (0%)

simplify10.0ms (0%)

Algorithm
egg-herbie
Rules
22×*-commutative_binary64_1714
16×+-commutative_binary64_1713
15×sub-neg_binary64_1776
13×neg-mul-1_binary64_1779 neg-sub0_binary64_1778
12×distribute-rgt-neg-in_binary64_1741
11×distribute-lft-neg-in_binary64_1740
unsub-neg_binary64_1777 cancel-sign-sub-inv_binary64_1749 distribute-neg-in_binary64_1744
distribute-lft-neg-out_binary64_1742
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 1-exp_binary64_1827 exp-1-e_binary64_1826 exp-0_binary64_1825 sqr-abs_binary64_1798 sqr-neg_binary64_1797 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-rgt-neg-out_binary64_1743
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02773
14373
26073
38573
411673
513373
614473
714873
814873

end0.0ms (0%)

sample10.6s (48.2%)

Algorithm
intervals
Results
4.9s5419×body1024valid
696.0ms1232×body512valid
382.0ms192×body2048valid
140.0ms407×body256valid
131.0ms750×body128valid
Compiler

Compiled 5129 to 3395 computations (33.8% saved)

Profiling

Loading profile data...