Details

Time bar (total: 13.5s)

analyze1.0s (7.5%)

Algorithm
search
Search
TrueOtherFalseIter
0%99.9%0.1%0
0%99.9%0.1%1
0%99.9%0.1%2
0%99.9%0.1%3
0%99.9%0.1%4
0%99.9%0.1%5
25%74.9%0.1%6
25%74.9%0.1%7
25%74.9%0.1%8
25%74.9%0.1%9
25%64%11.1%10
31.2%54.6%14.2%11
39%44.1%16.9%12
39%41.5%19.5%13
42.9%37%20.1%14
Compiler

Compiled 20 to 16 computations (20% saved)

sample109.0ms (0.8%)

Algorithm
intervals
Results
31.0ms58×body1024valid
26.0ms47×body1024invalid
15.0ms148×body128valid
9.0ms32×body512valid
5.0ms18×body512invalid
4.0ms18×body256valid
3.0ms16×body256invalid
2.0ms19×body128invalid
Compiler

Compiled 39 to 34 computations (12.8% saved)

simplify42.0ms (0.3%)

Algorithm
egg-herbie
Rules
21×*-commutative_binary64_691
20×associate-/l*_binary64_705
11×associate-/r/_binary64_706
distribute-rgt-out_binary64_713 associate-*r/_binary64_702
associate-*r*_binary64_700
associate-*l/_binary64_703
associate-/l/_binary64_707 associate-*l*_binary64_701
+-commutative_binary64_690
distribute-rgt-in_binary64_710 associate-/r*_binary64_704
distribute-lft-out_binary64_711
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_1023 erf-erfc_binary64_1022 erf-odd_binary64_1021 if-if-and-not_binary64_1020 if-if-and_binary64_1019 if-if-or-not_binary64_1018 if-if-or_binary64_1017 if-not_binary64_1016 if-same_binary64_1015 if-false_binary64_1014 if-true_binary64_1013 not-gte_binary64_1012 not-lte_binary64_1011 not-gt_binary64_1010 not-lt_binary64_1009 gte-same_binary64_1008 lte-same_binary64_1007 gt-same_binary64_1006 lt-same_binary64_1005 sinh---cosh_binary64_952 sinh-+-cosh_binary64_951 sinh-cosh_binary64_950 tanh-def-c_binary64_949 tanh-def-b_binary64_948 tanh-def-a_binary64_947 cosh-def_binary64_946 sinh-def_binary64_945 tan-neg_binary64_892 cos-neg_binary64_891 sin-neg_binary64_890 tan-0_binary64_889 cos-0_binary64_888 sin-0_binary64_887 hang-m-tan_binary64_886 hang-p-tan_binary64_885 hang-m0-tan_binary64_884 hang-p0-tan_binary64_883 hang-0m-tan_binary64_882 hang-0p-tan_binary64_881 tan-+PI/2_binary64_880 tan-+PI_binary64_879 tan-PI_binary64_878 tan-PI/3_binary64_877 tan-PI/4_binary64_876 tan-PI/6_binary64_875 cos-+PI/2_binary64_874 cos-+PI_binary64_873 cos-PI_binary64_872 cos-PI/2_binary64_871 cos-PI/3_binary64_870 cos-PI/4_binary64_869 cos-PI/6_binary64_868 sin-+PI/2_binary64_867 sin-+PI_binary64_866 sin-PI_binary64_865 sin-PI/2_binary64_864 sin-PI/3_binary64_863 sin-PI/4_binary64_862 sin-PI/6_binary64_861 sub-1-sin_binary64_860 sub-1-cos_binary64_859 -1-add-sin_binary64_858 -1-add-cos_binary64_857 1-sub-sin_binary64_856 1-sub-cos_binary64_855 cos-sin-sum_binary64_854 log-E_binary64_850 log-pow_binary64_849 log-rec_binary64_848 log-div_binary64_847 log-prod_binary64_846 pow-base-0_binary64_844 unpow1/3_binary64_827 unpow3_binary64_826 unpow2_binary64_825 unpow1/2_binary64_824 pow-plus_binary64_823 exp-to-pow_binary64_822 pow-base-1_binary64_820 unpow0_binary64_819 unpow1_binary64_818 unpow-1_binary64_817 exp-lft-cube_binary64_816 exp-lft-sqr_binary64_815 exp-cbrt_binary64_814 exp-sqrt_binary64_813 exp-prod_binary64_812 div-exp_binary64_811 rec-exp_binary64_810 prod-exp_binary64_809 exp-diff_binary64_808 exp-neg_binary64_807 exp-sum_binary64_806 e-exp-1_binary64_805 1-exp_binary64_804 exp-1-e_binary64_803 exp-0_binary64_802 rem-log-exp_binary64_801 rem-exp-log_binary64_800 cube-unmult_binary64_797 cube-mult_binary64_790 cube-div_binary64_789 cube-prod_binary64_788 cube-neg_binary64_787 rem-3cbrt-rft_binary64_786 rem-3cbrt-lft_binary64_785 rem-cbrt-cube_binary64_784 rem-cube-cbrt_binary64_783 sqr-abs_binary64_775 sqr-neg_binary64_774 rem-sqrt-square_binary64_773 rem-square-sqrt_binary64_772 times-frac_binary64_766 div-sub_binary64_765 neg-mul-1_binary64_756 neg-sub0_binary64_755 unsub-neg_binary64_754 sub-neg_binary64_753 mul-1-neg_binary64_752 /-rgt-identity_binary64_751 *-rgt-identity_binary64_750 *-lft-identity_binary64_749 remove-double-neg_binary64_748 sub0-neg_binary64_747 --rgt-identity_binary64_746 +-rgt-identity_binary64_745 +-lft-identity_binary64_744 mul0-rgt_binary64_743 mul0-lft_binary64_742 div0_binary64_741 *-inverses_binary64_740 +-inverses_binary64_739 lft-mult-inverse_binary64_738 rgt-mult-inverse_binary64_737 remove-double-div_binary64_736 pow-sqr_binary64_733 sqr-pow_binary64_732 difference-of-sqr--1_binary64_731 difference-of-sqr-1_binary64_730 difference-of-squares_binary64_729 unswap-sqr_binary64_728 swap-sqr_binary64_727 cancel-sign-sub-inv_binary64_726 cancel-sign-sub_binary64_725 distribute-neg-frac_binary64_724 distribute-frac-neg_binary64_723 distribute-neg-out_binary64_722 distribute-neg-in_binary64_721 distribute-rgt-neg-out_binary64_720 distribute-lft-neg-out_binary64_719 distribute-rgt-neg-in_binary64_718 distribute-lft-neg-in_binary64_717 distribute-rgt1-in_binary64_716 distribute-lft1-in_binary64_715 distribute-rgt-out--_binary64_714 distribute-lft-out--_binary64_712 distribute-lft-in_binary64_709 count-2_binary64_708 associate--r-_binary64_699 associate--l-_binary64_698 associate--l+_binary64_697 associate--r+_binary64_696 associate-+l-_binary64_695 associate-+r-_binary64_694 associate-+l+_binary64_693 associate-+r+_binary64_692
Counts
1 → 2
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01320
12620
24620
36620
48520
59720
610820
710620

prune4.0ms (0%)

Pruning

2 alts after pruning (2 fresh and 0 done)

PrunedKeptTotal
New022
Fresh101
Picked000
Done000
Total123
Error
0.4b
Counts
3 → 2
Compiler

Compiled 52 to 37 computations (28.8% saved)

localize16.0ms (0.1%)

Local error

Found 3 expressions with local error:

0.0b
(+.f64 (*.f64 a1 a1) (*.f64 a2 a2))
0.1b
(*.f64 (cos.f64 th) (/.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)) (sqrt.f64 2)))
0.4b
(/.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)) (sqrt.f64 2))

rewrite98.0ms (0.7%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
40×add-sqr-sqrt_binary64_782
38×times-frac_binary64_766
32×add-cube-cbrt_binary64_795 *-un-lft-identity_binary64_760
22×sqrt-prod_binary64_776 associate-*r*_binary64_700
10×add-exp-log_binary64_798 add-cbrt-cube_binary64_796
associate-/r*_binary64_704
pow1_binary64_821 add-log-exp_binary64_799
associate-/l*_binary64_705 unswap-sqr_binary64_728 associate-*l*_binary64_701
div-exp_binary64_811 cbrt-undiv_binary64_794 div-inv_binary64_757 flip3-+_binary64_763 associate-/l/_binary64_707 flip-+_binary64_734 prod-exp_binary64_809 cbrt-unprod_binary64_793
frac-2neg_binary64_771 clear-num_binary64_759 pow-prod-down_binary64_831 associate-*r/_binary64_702 *-commutative_binary64_691 sum-log_binary64_851 +-commutative_binary64_690
Counts
3 → 94
Calls

3 calls:

10.0ms
(*.f64 (cos.f64 th) (/.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)) (sqrt.f64 2)))
6.0ms
(/.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)) (sqrt.f64 2))
3.0ms
(+.f64 (*.f64 a1 a1) (*.f64 a2 a2))
Compiler

Compiled 2362 to 862 computations (63.5% saved)

series330.0ms (2.5%)

Error
0.4b
Counts
3 → 41
Calls

3 calls:

184.0ms
(*.f64 (cos.f64 th) (/.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)) (sqrt.f64 2)))
77.0ms
(/.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)) (sqrt.f64 2))
44.0ms
(+.f64 (*.f64 a1 a1) (*.f64 a2 a2))
Compiler

Compiled 1585 to 1399 computations (11.7% saved)

simplify484.0ms (3.6%)

Algorithm
egg-herbie
Rules
536×times-frac_binary64_766
455×associate-/l*_binary64_705
438×associate-*l/_binary64_703
410×associate-*r/_binary64_702
315×associate-/l/_binary64_707
300×associate-/r/_binary64_706
226×*-commutative_binary64_691
154×associate-/r*_binary64_704
147×distribute-rgt-in_binary64_710
134×associate-*l*_binary64_701
129×distribute-lft-in_binary64_709
125×associate-*r*_binary64_700
108×unswap-sqr_binary64_728
89×cancel-sign-sub-inv_binary64_726
81×associate-+l+_binary64_693
69×log-div_binary64_847
68×cube-div_binary64_789
64×associate--l+_binary64_697
55×+-commutative_binary64_690
49×sub-neg_binary64_753
48×log-prod_binary64_846
46×exp-prod_binary64_812 associate-+r+_binary64_692
45×sqr-pow_binary64_732
39×distribute-rgt-neg-in_binary64_718
31×pow-plus_binary64_823
30×distribute-lft-neg-in_binary64_717
25×associate-+l-_binary64_695
24×*-lft-identity_binary64_749
23×pow-sqr_binary64_733
21×neg-mul-1_binary64_756
20×neg-sub0_binary64_755 distribute-neg-frac_binary64_724
18×associate--r+_binary64_696 associate-+r-_binary64_694
16×*-rgt-identity_binary64_750
14×unpow3_binary64_826 exp-sqrt_binary64_813 distribute-rgt-out_binary64_713
13×/-rgt-identity_binary64_751 difference-of-squares_binary64_729
12×cube-prod_binary64_788 distribute-lft-neg-out_binary64_719
10×prod-exp_binary64_809 cube-unmult_binary64_797
div-exp_binary64_811
log-rec_binary64_848
cube-mult_binary64_790 distribute-rgt-out--_binary64_714
swap-sqr_binary64_727 distribute-neg-in_binary64_721 distribute-lft-out_binary64_711
exp-lft-sqr_binary64_815 unsub-neg_binary64_754
rem-sqrt-square_binary64_773 div-sub_binary64_765
unpow2_binary64_825 unpow1_binary64_818 rec-exp_binary64_810 distribute-rgt-neg-out_binary64_720 associate--l-_binary64_698
exp-diff_binary64_808 exp-sum_binary64_806 *-inverses_binary64_740
log-pow_binary64_849 1-exp_binary64_804 exp-1-e_binary64_803 rem-log-exp_binary64_801 rem-square-sqrt_binary64_772 distribute-lft-out--_binary64_712
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_1023 erf-erfc_binary64_1022 erf-odd_binary64_1021 if-if-and-not_binary64_1020 if-if-and_binary64_1019 if-if-or-not_binary64_1018 if-if-or_binary64_1017 if-not_binary64_1016 if-same_binary64_1015 if-false_binary64_1014 if-true_binary64_1013 not-gte_binary64_1012 not-lte_binary64_1011 not-gt_binary64_1010 not-lt_binary64_1009 gte-same_binary64_1008 lte-same_binary64_1007 gt-same_binary64_1006 lt-same_binary64_1005 sinh---cosh_binary64_952 sinh-+-cosh_binary64_951 sinh-cosh_binary64_950 tanh-def-c_binary64_949 tanh-def-b_binary64_948 tanh-def-a_binary64_947 cosh-def_binary64_946 sinh-def_binary64_945 tan-neg_binary64_892 cos-neg_binary64_891 sin-neg_binary64_890 tan-0_binary64_889 cos-0_binary64_888 sin-0_binary64_887 hang-m-tan_binary64_886 hang-p-tan_binary64_885 hang-m0-tan_binary64_884 hang-p0-tan_binary64_883 hang-0m-tan_binary64_882 hang-0p-tan_binary64_881 tan-+PI/2_binary64_880 tan-+PI_binary64_879 tan-PI_binary64_878 tan-PI/3_binary64_877 tan-PI/4_binary64_876 tan-PI/6_binary64_875 cos-+PI/2_binary64_874 cos-+PI_binary64_873 cos-PI_binary64_872 cos-PI/2_binary64_871 cos-PI/3_binary64_870 cos-PI/4_binary64_869 cos-PI/6_binary64_868 sin-+PI/2_binary64_867 sin-+PI_binary64_866 sin-PI_binary64_865 sin-PI/2_binary64_864 sin-PI/3_binary64_863 sin-PI/4_binary64_862 sin-PI/6_binary64_861 sub-1-sin_binary64_860 sub-1-cos_binary64_859 -1-add-sin_binary64_858 -1-add-cos_binary64_857 1-sub-sin_binary64_856 1-sub-cos_binary64_855 cos-sin-sum_binary64_854 log-E_binary64_850 pow-base-0_binary64_844 unpow1/3_binary64_827 unpow1/2_binary64_824 exp-to-pow_binary64_822 pow-base-1_binary64_820 unpow0_binary64_819 unpow-1_binary64_817 exp-lft-cube_binary64_816 exp-cbrt_binary64_814 exp-neg_binary64_807 e-exp-1_binary64_805 exp-0_binary64_802 rem-exp-log_binary64_800 cube-neg_binary64_787 rem-3cbrt-rft_binary64_786 rem-3cbrt-lft_binary64_785 rem-cbrt-cube_binary64_784 rem-cube-cbrt_binary64_783 sqr-abs_binary64_775 sqr-neg_binary64_774 mul-1-neg_binary64_752 remove-double-neg_binary64_748 sub0-neg_binary64_747 --rgt-identity_binary64_746 +-rgt-identity_binary64_745 +-lft-identity_binary64_744 mul0-rgt_binary64_743 mul0-lft_binary64_742 div0_binary64_741 +-inverses_binary64_739 lft-mult-inverse_binary64_738 rgt-mult-inverse_binary64_737 remove-double-div_binary64_736 difference-of-sqr--1_binary64_731 difference-of-sqr-1_binary64_730 cancel-sign-sub_binary64_725 distribute-frac-neg_binary64_723 distribute-neg-out_binary64_722 distribute-rgt1-in_binary64_716 distribute-lft1-in_binary64_715 count-2_binary64_708 associate--r-_binary64_699
Counts
135 → 295
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01733172
14212954
216462939
347002939

prune212.0ms (1.6%)

Pruning

7 alts after pruning (7 fresh and 0 done)

PrunedKeptTotal
New2887295
Fresh101
Picked101
Done000
Total2907297
Error
0b
Counts
297 → 7
Compiler

Compiled 7547 to 2823 computations (62.6% saved)

localize10.0ms (0.1%)

Local error

Found 3 expressions with local error:

0.0b
(+.f64 (*.f64 a1 a1) (*.f64 a2 a2))
0.1b
(*.f64 (cos.f64 th) (*.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)) (/.f64 (sqrt.f64 2) 2)))
0.4b
(*.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)) (/.f64 (sqrt.f64 2) 2))

rewrite87.0ms (0.6%)

Algorithm
rewrite-expression-head
Error
0b
Rules
26×add-sqr-sqrt_binary64_782
23×associate-*r*_binary64_700
20×times-frac_binary64_766
18×add-cube-cbrt_binary64_795 *-un-lft-identity_binary64_760
17×add-exp-log_binary64_798 add-cbrt-cube_binary64_796
10×pow1_binary64_821 sqrt-prod_binary64_776
prod-exp_binary64_809 cbrt-unprod_binary64_793 associate-*r/_binary64_702
associate-*l*_binary64_701
add-log-exp_binary64_799 flip3-+_binary64_763 flip-+_binary64_734
pow-prod-down_binary64_831 frac-times_binary64_770 associate-*l/_binary64_703
unswap-sqr_binary64_728
div-exp_binary64_811 cbrt-undiv_binary64_794 *-commutative_binary64_691
div-inv_binary64_757 sum-log_binary64_851 +-commutative_binary64_690
Counts
3 → 82
Calls

3 calls:

17.0ms
(*.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)) (/.f64 (sqrt.f64 2) 2))
10.0ms
(*.f64 (cos.f64 th) (*.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)) (/.f64 (sqrt.f64 2) 2)))
3.0ms
(+.f64 (*.f64 a1 a1) (*.f64 a2 a2))
Compiler

Compiled 2158 to 970 computations (55.1% saved)

series334.0ms (2.5%)

Error
0b
Counts
3 → 41
Calls

3 calls:

181.0ms
(*.f64 (cos.f64 th) (*.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)) (/.f64 (sqrt.f64 2) 2)))
85.0ms
(*.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)) (/.f64 (sqrt.f64 2) 2))
40.0ms
(+.f64 (*.f64 a1 a1) (*.f64 a2 a2))
Compiler

Compiled 1873 to 1687 computations (9.9% saved)

simplify657.0ms (4.9%)

Algorithm
egg-herbie
Rules
529×distribute-rgt-in_binary64_710
513×distribute-lft-in_binary64_709
439×associate-/l*_binary64_705
270×associate-*r*_binary64_700
255×associate-/l/_binary64_707
251×cancel-sign-sub-inv_binary64_726
246×associate-*l*_binary64_701
212×associate-/r/_binary64_706
116×*-commutative_binary64_691
106×unswap-sqr_binary64_728
78×distribute-rgt-neg-in_binary64_718
70×associate-*r/_binary64_702
67×distribute-lft-neg-in_binary64_717
63×distribute-rgt-out_binary64_713
59×associate-*l/_binary64_703
51×sqr-pow_binary64_732
48×sub-neg_binary64_753
39×exp-prod_binary64_812
32×times-frac_binary64_766
29×log-prod_binary64_846 associate-/r*_binary64_704
28×*-rgt-identity_binary64_750 +-commutative_binary64_690
25×*-lft-identity_binary64_749 pow-sqr_binary64_733
24×distribute-lft-out_binary64_711
21×neg-mul-1_binary64_756
20×neg-sub0_binary64_755
17×cube-prod_binary64_788
16×log-div_binary64_847 swap-sqr_binary64_727 distribute-lft-neg-out_binary64_719
14×distribute-rgt-out--_binary64_714
13×pow-plus_binary64_823 difference-of-squares_binary64_729 associate--l+_binary64_697
12×exp-sum_binary64_806 associate-+l+_binary64_693
10×prod-exp_binary64_809 cube-unmult_binary64_797 associate-+r+_binary64_692
div-exp_binary64_811
cube-div_binary64_789 /-rgt-identity_binary64_751 associate--r+_binary64_696
unpow3_binary64_826
distribute-neg-in_binary64_721 distribute-rgt-neg-out_binary64_720 distribute-lft-out--_binary64_712
exp-sqrt_binary64_813 rem-sqrt-square_binary64_773 unsub-neg_binary64_754 associate-+r-_binary64_694
unpow2_binary64_825 unpow1_binary64_818 rec-exp_binary64_810 div-sub_binary64_765 associate-+l-_binary64_695
log-rec_binary64_848 cube-mult_binary64_790 *-inverses_binary64_740
1-exp_binary64_804 exp-1-e_binary64_803 rem-log-exp_binary64_801 rem-square-sqrt_binary64_772 count-2_binary64_708
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_1023 erf-erfc_binary64_1022 erf-odd_binary64_1021 if-if-and-not_binary64_1020 if-if-and_binary64_1019 if-if-or-not_binary64_1018 if-if-or_binary64_1017 if-not_binary64_1016 if-same_binary64_1015 if-false_binary64_1014 if-true_binary64_1013 not-gte_binary64_1012 not-lte_binary64_1011 not-gt_binary64_1010 not-lt_binary64_1009 gte-same_binary64_1008 lte-same_binary64_1007 gt-same_binary64_1006 lt-same_binary64_1005 sinh---cosh_binary64_952 sinh-+-cosh_binary64_951 sinh-cosh_binary64_950 tanh-def-c_binary64_949 tanh-def-b_binary64_948 tanh-def-a_binary64_947 cosh-def_binary64_946 sinh-def_binary64_945 tan-neg_binary64_892 cos-neg_binary64_891 sin-neg_binary64_890 tan-0_binary64_889 cos-0_binary64_888 sin-0_binary64_887 hang-m-tan_binary64_886 hang-p-tan_binary64_885 hang-m0-tan_binary64_884 hang-p0-tan_binary64_883 hang-0m-tan_binary64_882 hang-0p-tan_binary64_881 tan-+PI/2_binary64_880 tan-+PI_binary64_879 tan-PI_binary64_878 tan-PI/3_binary64_877 tan-PI/4_binary64_876 tan-PI/6_binary64_875 cos-+PI/2_binary64_874 cos-+PI_binary64_873 cos-PI_binary64_872 cos-PI/2_binary64_871 cos-PI/3_binary64_870 cos-PI/4_binary64_869 cos-PI/6_binary64_868 sin-+PI/2_binary64_867 sin-+PI_binary64_866 sin-PI_binary64_865 sin-PI/2_binary64_864 sin-PI/3_binary64_863 sin-PI/4_binary64_862 sin-PI/6_binary64_861 sub-1-sin_binary64_860 sub-1-cos_binary64_859 -1-add-sin_binary64_858 -1-add-cos_binary64_857 1-sub-sin_binary64_856 1-sub-cos_binary64_855 cos-sin-sum_binary64_854 log-E_binary64_850 log-pow_binary64_849 pow-base-0_binary64_844 unpow1/3_binary64_827 unpow1/2_binary64_824 exp-to-pow_binary64_822 pow-base-1_binary64_820 unpow0_binary64_819 unpow-1_binary64_817 exp-lft-cube_binary64_816 exp-lft-sqr_binary64_815 exp-cbrt_binary64_814 exp-diff_binary64_808 exp-neg_binary64_807 e-exp-1_binary64_805 exp-0_binary64_802 rem-exp-log_binary64_800 cube-neg_binary64_787 rem-3cbrt-rft_binary64_786 rem-3cbrt-lft_binary64_785 rem-cbrt-cube_binary64_784 rem-cube-cbrt_binary64_783 sqr-abs_binary64_775 sqr-neg_binary64_774 mul-1-neg_binary64_752 remove-double-neg_binary64_748 sub0-neg_binary64_747 --rgt-identity_binary64_746 +-rgt-identity_binary64_745 +-lft-identity_binary64_744 mul0-rgt_binary64_743 mul0-lft_binary64_742 div0_binary64_741 +-inverses_binary64_739 lft-mult-inverse_binary64_738 rgt-mult-inverse_binary64_737 remove-double-div_binary64_736 difference-of-sqr--1_binary64_731 difference-of-sqr-1_binary64_730 cancel-sign-sub_binary64_725 distribute-neg-frac_binary64_724 distribute-frac-neg_binary64_723 distribute-neg-out_binary64_722 distribute-rgt1-in_binary64_716 distribute-lft1-in_binary64_715 associate--r-_binary64_699 associate--l-_binary64_698
Counts
123 → 293
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01852995
15022564
221762435

prune191.0ms (1.4%)

Pruning

7 alts after pruning (6 fresh and 1 done)

PrunedKeptTotal
New2930293
Fresh066
Picked011
Done000
Total2937300
Error
0b
Counts
300 → 7
Compiler

Compiled 7263 to 3329 computations (54.2% saved)

localize14.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.2b
(*.f64 (sqrt.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (/.f64 (sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (sqrt.f64 2)))
0.5b
(/.f64 (sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (sqrt.f64 2))
6.4b
(sqrt.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
6.4b
(sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))

rewrite157.0ms (1.2%)

Algorithm
rewrite-expression-head
Error
0b
Rules
100×sqrt-prod_binary64_776
91×add-sqr-sqrt_binary64_782
80×times-frac_binary64_766
61×add-cube-cbrt_binary64_795 *-un-lft-identity_binary64_760
40×associate-*r*_binary64_700
11×add-exp-log_binary64_798 add-cbrt-cube_binary64_796
10×sqrt-div_binary64_777 unswap-sqr_binary64_728
pow1_binary64_821
associate-/l*_binary64_705 associate-/r*_binary64_704 associate-*l*_binary64_701
flip3-+_binary64_763 flip-+_binary64_734
add-log-exp_binary64_799
pow1/2_binary64_840 sqrt-pow1_binary64_778 rem-sqrt-square_binary64_773 div-exp_binary64_811 cbrt-undiv_binary64_794 sqrt-undiv_binary64_781 div-inv_binary64_757 associate-/l/_binary64_707 prod-exp_binary64_809 cbrt-unprod_binary64_793 frac-times_binary64_770 associate-*l/_binary64_703
frac-2neg_binary64_771 clear-num_binary64_759 pow-prod-down_binary64_831 sqrt-unprod_binary64_780 associate-*r/_binary64_702 *-commutative_binary64_691
Counts
4 → 168
Calls

4 calls:

19.0ms
(*.f64 (sqrt.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (/.f64 (sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (sqrt.f64 2)))
9.0ms
(/.f64 (sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (sqrt.f64 2))
3.0ms
(sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
3.0ms
(sqrt.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
Compiler

Compiled 6288 to 1712 computations (72.8% saved)

series438.0ms (3.3%)

Error
0b
Counts
4 → 66
Calls

4 calls:

196.0ms
(*.f64 (sqrt.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1))) (/.f64 (sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (sqrt.f64 2)))
90.0ms
(/.f64 (sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (sqrt.f64 2))
55.0ms
(sqrt.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
53.0ms
(sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
Compiler

Compiled 3897 to 2767 computations (29% saved)

simplify607.0ms (4.5%)

Algorithm
egg-herbie
Rules
487×associate-/r*_binary64_704
422×associate-/r/_binary64_706
291×*-commutative_binary64_691
185×sub-neg_binary64_753
158×cancel-sign-sub-inv_binary64_726
136×sqr-pow_binary64_732
135×associate-*l*_binary64_701
125×distribute-rgt-in_binary64_710
123×associate-*r*_binary64_700
121×associate-*r/_binary64_702
117×associate-/l*_binary64_705
107×distribute-lft-in_binary64_709
105×neg-mul-1_binary64_756
104×neg-sub0_binary64_755
99×associate-*l/_binary64_703
95×distribute-rgt-neg-in_binary64_718
88×associate-/l/_binary64_707
85×log-prod_binary64_846
84×difference-of-squares_binary64_729
79×pow-sqr_binary64_733
77×distribute-lft-neg-in_binary64_717
72×cube-prod_binary64_788 +-commutative_binary64_690
67×div-sub_binary64_765 distribute-neg-frac_binary64_724
65×unswap-sqr_binary64_728
64×times-frac_binary64_766
59×unsub-neg_binary64_754
56×log-div_binary64_847
55×exp-prod_binary64_812
49×/-rgt-identity_binary64_751
47×associate-+l+_binary64_693
43×*-rgt-identity_binary64_750 associate-+r-_binary64_694
42×associate-+l-_binary64_695
41×cube-div_binary64_789
39×*-lft-identity_binary64_749
38×pow-plus_binary64_823
36×associate-+r+_binary64_692
31×+-rgt-identity_binary64_745
25×associate--l+_binary64_697
19×distribute-lft-neg-out_binary64_719
18×sub0-neg_binary64_747
15×unpow3_binary64_826
13×cube-unmult_binary64_797
12×distribute-rgt-out--_binary64_714
11×swap-sqr_binary64_727
10×cube-mult_binary64_790 rem-sqrt-square_binary64_773
div-exp_binary64_811 prod-exp_binary64_809
associate--r+_binary64_696
exp-lft-sqr_binary64_815
log-rec_binary64_848
rem-square-sqrt_binary64_772
exp-diff_binary64_808 mul-1-neg_binary64_752 distribute-neg-in_binary64_721 distribute-rgt-out_binary64_713 associate--l-_binary64_698
rec-exp_binary64_810 *-inverses_binary64_740
unpow2_binary64_825 unpow1_binary64_818 distribute-rgt-neg-out_binary64_720 distribute-lft-out--_binary64_712 associate--r-_binary64_699
log-pow_binary64_849 exp-sqrt_binary64_813 exp-sum_binary64_806 1-exp_binary64_804 exp-1-e_binary64_803 rem-log-exp_binary64_801 mul0-rgt_binary64_743 mul0-lft_binary64_742 div0_binary64_741 rgt-mult-inverse_binary64_737 remove-double-div_binary64_736 count-2_binary64_708
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_1023 erf-erfc_binary64_1022 erf-odd_binary64_1021 if-if-and-not_binary64_1020 if-if-and_binary64_1019 if-if-or-not_binary64_1018 if-if-or_binary64_1017 if-not_binary64_1016 if-same_binary64_1015 if-false_binary64_1014 if-true_binary64_1013 not-gte_binary64_1012 not-lte_binary64_1011 not-gt_binary64_1010 not-lt_binary64_1009 gte-same_binary64_1008 lte-same_binary64_1007 gt-same_binary64_1006 lt-same_binary64_1005 sinh---cosh_binary64_952 sinh-+-cosh_binary64_951 sinh-cosh_binary64_950 tanh-def-c_binary64_949 tanh-def-b_binary64_948 tanh-def-a_binary64_947 cosh-def_binary64_946 sinh-def_binary64_945 tan-neg_binary64_892 cos-neg_binary64_891 sin-neg_binary64_890 tan-0_binary64_889 cos-0_binary64_888 sin-0_binary64_887 hang-m-tan_binary64_886 hang-p-tan_binary64_885 hang-m0-tan_binary64_884 hang-p0-tan_binary64_883 hang-0m-tan_binary64_882 hang-0p-tan_binary64_881 tan-+PI/2_binary64_880 tan-+PI_binary64_879 tan-PI_binary64_878 tan-PI/3_binary64_877 tan-PI/4_binary64_876 tan-PI/6_binary64_875 cos-+PI/2_binary64_874 cos-+PI_binary64_873 cos-PI_binary64_872 cos-PI/2_binary64_871 cos-PI/3_binary64_870 cos-PI/4_binary64_869 cos-PI/6_binary64_868 sin-+PI/2_binary64_867 sin-+PI_binary64_866 sin-PI_binary64_865 sin-PI/2_binary64_864 sin-PI/3_binary64_863 sin-PI/4_binary64_862 sin-PI/6_binary64_861 sub-1-sin_binary64_860 sub-1-cos_binary64_859 -1-add-sin_binary64_858 -1-add-cos_binary64_857 1-sub-sin_binary64_856 1-sub-cos_binary64_855 cos-sin-sum_binary64_854 log-E_binary64_850 pow-base-0_binary64_844 unpow1/3_binary64_827 unpow1/2_binary64_824 exp-to-pow_binary64_822 pow-base-1_binary64_820 unpow0_binary64_819 unpow-1_binary64_817 exp-lft-cube_binary64_816 exp-cbrt_binary64_814 exp-neg_binary64_807 e-exp-1_binary64_805 exp-0_binary64_802 rem-exp-log_binary64_800 cube-neg_binary64_787 rem-3cbrt-rft_binary64_786 rem-3cbrt-lft_binary64_785 rem-cbrt-cube_binary64_784 rem-cube-cbrt_binary64_783 sqr-abs_binary64_775 sqr-neg_binary64_774 remove-double-neg_binary64_748 --rgt-identity_binary64_746 +-lft-identity_binary64_744 +-inverses_binary64_739 lft-mult-inverse_binary64_738 difference-of-sqr--1_binary64_731 difference-of-sqr-1_binary64_730 cancel-sign-sub_binary64_725 distribute-frac-neg_binary64_723 distribute-neg-out_binary64_722 distribute-rgt1-in_binary64_716 distribute-lft1-in_binary64_715 distribute-lft-out_binary64_711
Counts
234 → 384
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02536204
15686055
220485897
341515897

prune278.0ms (2.1%)

Pruning

7 alts after pruning (5 fresh and 2 done)

PrunedKeptTotal
New3840384
Fresh055
Picked011
Done011
Total3847391
Error
0b
Counts
391 → 7
Compiler

Compiled 13039 to 4848 computations (62.8% saved)

localize13.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.3b
(*.f64 (*.f64 (cos.f64 th) (sqrt.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))) (/.f64 (sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (sqrt.f64 2)))
0.5b
(/.f64 (sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (sqrt.f64 2))
6.4b
(sqrt.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
6.4b
(sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))

rewrite137.0ms (1%)

Algorithm
rewrite-expression-head
Error
0b
Rules
84×sqrt-prod_binary64_776
72×times-frac_binary64_766
61×add-sqr-sqrt_binary64_782
59×add-cube-cbrt_binary64_795 *-un-lft-identity_binary64_760
40×associate-*r*_binary64_700
18×add-exp-log_binary64_798 add-cbrt-cube_binary64_796
11×pow1_binary64_821
10×sqrt-div_binary64_777
associate-/l*_binary64_705 associate-/r*_binary64_704 prod-exp_binary64_809 cbrt-unprod_binary64_793
flip3-+_binary64_763 flip-+_binary64_734 associate-*r/_binary64_702
add-log-exp_binary64_799
div-exp_binary64_811 cbrt-undiv_binary64_794 pow-prod-down_binary64_831
pow1/2_binary64_840 sqrt-pow1_binary64_778 rem-sqrt-square_binary64_773 div-inv_binary64_757 associate-/l/_binary64_707 frac-times_binary64_770 associate-*l/_binary64_703
sqrt-undiv_binary64_781 frac-2neg_binary64_771 clear-num_binary64_759 associate-*l*_binary64_701 *-commutative_binary64_691
Counts
4 → 157
Calls

4 calls:

20.0ms
(*.f64 (*.f64 (cos.f64 th) (sqrt.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))) (/.f64 (sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (sqrt.f64 2)))
6.0ms
(/.f64 (sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (sqrt.f64 2))
3.0ms
(sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
3.0ms
(sqrt.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
Compiler

Compiled 5839 to 1470 computations (74.8% saved)

series447.0ms (3.3%)

Error
0b
Counts
4 → 71
Calls

4 calls:

194.0ms
(*.f64 (*.f64 (cos.f64 th) (sqrt.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))) (/.f64 (sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (sqrt.f64 2)))
94.0ms
(/.f64 (sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2))) (sqrt.f64 2))
55.0ms
(sqrt.f64 (+.f64 (*.f64 a1 a1) (*.f64 a2 a2)))
55.0ms
(sqrt.f64 (+.f64 (*.f64 a2 a2) (*.f64 a1 a1)))
Compiler

Compiled 4348 to 3099 computations (28.7% saved)

simplify724.0ms (5.4%)

Algorithm
egg-herbie
Rules
661×associate-/r/_binary64_706
274×associate-*l*_binary64_701
235×associate-*r*_binary64_700
206×cancel-sign-sub-inv_binary64_726
192×distribute-rgt-in_binary64_710
171×associate-*r/_binary64_702
169×distribute-lft-in_binary64_709
168×associate-/l*_binary64_705
150×*-commutative_binary64_691
143×associate-*l/_binary64_703
99×unswap-sqr_binary64_728
97×distribute-rgt-neg-in_binary64_718
93×sub-neg_binary64_753
89×associate-/l/_binary64_707
77×distribute-lft-neg-in_binary64_717
73×distribute-neg-frac_binary64_724
69×associate-/r*_binary64_704
68×times-frac_binary64_766
67×sqr-pow_binary64_732
51×+-commutative_binary64_690
42×neg-sub0_binary64_755
39×log-div_binary64_847 log-prod_binary64_846 neg-mul-1_binary64_756
34×pow-sqr_binary64_733
30×*-rgt-identity_binary64_750
29×*-lft-identity_binary64_749 associate--l+_binary64_697
27×associate-+l+_binary64_693
26×exp-prod_binary64_812
23×distribute-lft-neg-out_binary64_719
22×cube-prod_binary64_788
19×swap-sqr_binary64_727
18×pow-plus_binary64_823 difference-of-squares_binary64_729
16×cube-div_binary64_789
14×unsub-neg_binary64_754 associate--r+_binary64_696 associate-+r+_binary64_692
12×distribute-rgt-out--_binary64_714
10×/-rgt-identity_binary64_751
div-exp_binary64_811 prod-exp_binary64_809 cube-unmult_binary64_797
distribute-neg-in_binary64_721 distribute-rgt-out_binary64_713
rem-sqrt-square_binary64_773
unpow3_binary64_826 associate-+r-_binary64_694
cube-mult_binary64_790 rem-square-sqrt_binary64_772 div-sub_binary64_765 mul-1-neg_binary64_752
unpow2_binary64_825 unpow1_binary64_818 rec-exp_binary64_810 *-inverses_binary64_740 distribute-lft-out_binary64_711 associate-+l-_binary64_695
log-rec_binary64_848 +-rgt-identity_binary64_745 distribute-rgt-neg-out_binary64_720 distribute-lft-out--_binary64_712
exp-sqrt_binary64_813 1-exp_binary64_804 exp-1-e_binary64_803 rem-log-exp_binary64_801 count-2_binary64_708
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_1023 erf-erfc_binary64_1022 erf-odd_binary64_1021 if-if-and-not_binary64_1020 if-if-and_binary64_1019 if-if-or-not_binary64_1018 if-if-or_binary64_1017 if-not_binary64_1016 if-same_binary64_1015 if-false_binary64_1014 if-true_binary64_1013 not-gte_binary64_1012 not-lte_binary64_1011 not-gt_binary64_1010 not-lt_binary64_1009 gte-same_binary64_1008 lte-same_binary64_1007 gt-same_binary64_1006 lt-same_binary64_1005 sinh---cosh_binary64_952 sinh-+-cosh_binary64_951 sinh-cosh_binary64_950 tanh-def-c_binary64_949 tanh-def-b_binary64_948 tanh-def-a_binary64_947 cosh-def_binary64_946 sinh-def_binary64_945 tan-neg_binary64_892 cos-neg_binary64_891 sin-neg_binary64_890 tan-0_binary64_889 cos-0_binary64_888 sin-0_binary64_887 hang-m-tan_binary64_886 hang-p-tan_binary64_885 hang-m0-tan_binary64_884 hang-p0-tan_binary64_883 hang-0m-tan_binary64_882 hang-0p-tan_binary64_881 tan-+PI/2_binary64_880 tan-+PI_binary64_879 tan-PI_binary64_878 tan-PI/3_binary64_877 tan-PI/4_binary64_876 tan-PI/6_binary64_875 cos-+PI/2_binary64_874 cos-+PI_binary64_873 cos-PI_binary64_872 cos-PI/2_binary64_871 cos-PI/3_binary64_870 cos-PI/4_binary64_869 cos-PI/6_binary64_868 sin-+PI/2_binary64_867 sin-+PI_binary64_866 sin-PI_binary64_865 sin-PI/2_binary64_864 sin-PI/3_binary64_863 sin-PI/4_binary64_862 sin-PI/6_binary64_861 sub-1-sin_binary64_860 sub-1-cos_binary64_859 -1-add-sin_binary64_858 -1-add-cos_binary64_857 1-sub-sin_binary64_856 1-sub-cos_binary64_855 cos-sin-sum_binary64_854 log-E_binary64_850 log-pow_binary64_849 pow-base-0_binary64_844 unpow1/3_binary64_827 unpow1/2_binary64_824 exp-to-pow_binary64_822 pow-base-1_binary64_820 unpow0_binary64_819 unpow-1_binary64_817 exp-lft-cube_binary64_816 exp-lft-sqr_binary64_815 exp-cbrt_binary64_814 exp-diff_binary64_808 exp-neg_binary64_807 exp-sum_binary64_806 e-exp-1_binary64_805 exp-0_binary64_802 rem-exp-log_binary64_800 cube-neg_binary64_787 rem-3cbrt-rft_binary64_786 rem-3cbrt-lft_binary64_785 rem-cbrt-cube_binary64_784 rem-cube-cbrt_binary64_783 sqr-abs_binary64_775 sqr-neg_binary64_774 remove-double-neg_binary64_748 sub0-neg_binary64_747 --rgt-identity_binary64_746 +-lft-identity_binary64_744 mul0-rgt_binary64_743 mul0-lft_binary64_742 div0_binary64_741 +-inverses_binary64_739 lft-mult-inverse_binary64_738 rgt-mult-inverse_binary64_737 remove-double-div_binary64_736 difference-of-sqr--1_binary64_731 difference-of-sqr-1_binary64_730 cancel-sign-sub_binary64_725 distribute-frac-neg_binary64_723 distribute-neg-out_binary64_722 distribute-rgt1-in_binary64_716 distribute-lft1-in_binary64_715 associate--r-_binary64_699 associate--l-_binary64_698
Counts
228 → 384
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
02996339
17516078
229656063

prune271.0ms (2%)

Pruning

7 alts after pruning (4 fresh and 3 done)

PrunedKeptTotal
New3840384
Fresh044
Picked011
Done022
Total3847391
Error
0b
Counts
391 → 7
Compiler

Compiled 12869 to 4594 computations (64.3% saved)

regimes1.4s (10.2%)

Accuracy

Total 0.5b remaining (92.1%)

Threshold costs 0.5b (92.1%)

Compiler

Compiled 24396 to 17313 computations (29% saved)

bsearch0.0ms (0%)

simplify4.0ms (0%)

Algorithm
egg-herbie
Rules
*-commutative_binary64_691
+-commutative_binary64_690
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_1020 if-if-and_binary64_1019 if-if-or-not_binary64_1018 if-if-or_binary64_1017 if-not_binary64_1016 if-same_binary64_1015 if-false_binary64_1014 if-true_binary64_1013 tan-0_binary64_889 cos-0_binary64_888 sin-0_binary64_887 unpow1_binary64_818 e-exp-1_binary64_805 1-exp_binary64_804 exp-1-e_binary64_803 exp-0_binary64_802 sqr-abs_binary64_775 sqr-neg_binary64_774 neg-mul-1_binary64_756 neg-sub0_binary64_755 unsub-neg_binary64_754 sub-neg_binary64_753 mul-1-neg_binary64_752 /-rgt-identity_binary64_751 *-rgt-identity_binary64_750 *-lft-identity_binary64_749 remove-double-neg_binary64_748 sub0-neg_binary64_747 --rgt-identity_binary64_746 +-rgt-identity_binary64_745 +-lft-identity_binary64_744 cancel-sign-sub-inv_binary64_726 cancel-sign-sub_binary64_725 distribute-neg-frac_binary64_724 distribute-frac-neg_binary64_723 distribute-neg-out_binary64_722 distribute-neg-in_binary64_721 distribute-rgt-neg-out_binary64_720 distribute-lft-neg-out_binary64_719 distribute-rgt-neg-in_binary64_718 distribute-lft-neg-in_binary64_717
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
01528
12028
Proof
(* f64 (cos f64 h0) (* f64 1/2 (+ f64 (* f64 (sqrt f64 2) (* f64 h1 h1)) (* f64 (sqrt f64 2) (* f64 h2 h2)))))

end0.0ms (0%)

sample5.4s (40.2%)

Algorithm
intervals
Results
979.0ms1796×body1024valid
819.0ms1539×body1024invalid
497.0ms4891×body128valid
266.0ms843×body512valid
239.0ms773×body512invalid
99.0ms464×body256valid
85.0ms427×body256invalid
79.0ms738×body128invalid
5.0msbody2048valid
Compiler

Compiled 3065 to 2175 computations (29% saved)

Profiling

Loading profile data...