Details

Time bar (total: 45.0s)

analyze3.9s (8.8%)

Algorithm
search
egg-herbie
Rules
966×distribute-rgt-in_binary64_4802
910×unsub-neg_binary64_4846
843×distribute-lft-in_binary64_4801
580×distribute-rgt-neg-out_binary64_4812
450×distribute-lft-neg-out_binary64_4811
437×neg-sub0_binary64_4847
376×neg-mul-1_binary64_4848
344×distribute-rgt-neg-in_binary64_4810
295×sub-neg_binary64_4845
276×*-commutative_binary64_4783
230×cancel-sign-sub-inv_binary64_4818
180×distribute-neg-out_binary64_4814
165×distribute-lft-neg-in_binary64_4809
160×associate-*l*_binary64_4793 associate-*r*_binary64_4792 associate--r+_binary64_4788
137×remove-double-neg_binary64_4840
130×distribute-neg-in_binary64_4813
113×+-commutative_binary64_4782
100×associate-+l-_binary64_4787
73×*-lft-identity_binary64_4841
67×mul0-rgt_binary64_4835 mul0-lft_binary64_4834
60×+-lft-identity_binary64_4836
55×sub0-neg_binary64_4839
51×*-rgt-identity_binary64_4842
50×associate--r-_binary64_4791
30×distribute-lft-out_binary64_4803
25×--rgt-identity_binary64_4838
20×cancel-sign-sub_binary64_4817 associate--l+_binary64_4789
10×associate-+r-_binary64_4786 associate-+l+_binary64_4785 associate-+r+_binary64_4784
distribute-rgt-out--_binary64_4806
+-rgt-identity_binary64_4837
distribute-lft-out--_binary64_4804
1-exp_binary64_4896
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_5115 erf-erfc_binary64_5114 erf-odd_binary64_5113 if-if-and-not_binary64_5112 if-if-and_binary64_5111 if-if-or-not_binary64_5110 if-if-or_binary64_5109 if-not_binary64_5108 if-same_binary64_5107 if-false_binary64_5106 if-true_binary64_5105 not-gte_binary64_5104 not-lte_binary64_5103 not-gt_binary64_5102 not-lt_binary64_5101 gte-same_binary64_5100 lte-same_binary64_5099 gt-same_binary64_5098 lt-same_binary64_5097 sinh---cosh_binary64_5044 sinh-+-cosh_binary64_5043 sinh-cosh_binary64_5042 tanh-def-c_binary64_5041 tanh-def-b_binary64_5040 tanh-def-a_binary64_5039 cosh-def_binary64_5038 sinh-def_binary64_5037 tan-neg_binary64_4984 cos-neg_binary64_4983 sin-neg_binary64_4982 tan-0_binary64_4981 cos-0_binary64_4980 sin-0_binary64_4979 hang-m-tan_binary64_4978 hang-p-tan_binary64_4977 hang-m0-tan_binary64_4976 hang-p0-tan_binary64_4975 hang-0m-tan_binary64_4974 hang-0p-tan_binary64_4973 tan-+PI/2_binary64_4972 tan-+PI_binary64_4971 tan-PI_binary64_4970 tan-PI/3_binary64_4969 tan-PI/4_binary64_4968 tan-PI/6_binary64_4967 cos-+PI/2_binary64_4966 cos-+PI_binary64_4965 cos-PI_binary64_4964 cos-PI/2_binary64_4963 cos-PI/3_binary64_4962 cos-PI/4_binary64_4961 cos-PI/6_binary64_4960 sin-+PI/2_binary64_4959 sin-+PI_binary64_4958 sin-PI_binary64_4957 sin-PI/2_binary64_4956 sin-PI/3_binary64_4955 sin-PI/4_binary64_4954 sin-PI/6_binary64_4953 sub-1-sin_binary64_4952 sub-1-cos_binary64_4951 -1-add-sin_binary64_4950 -1-add-cos_binary64_4949 1-sub-sin_binary64_4948 1-sub-cos_binary64_4947 cos-sin-sum_binary64_4946 log-E_binary64_4942 log-pow_binary64_4941 log-rec_binary64_4940 log-div_binary64_4939 log-prod_binary64_4938 pow-base-0_binary64_4936 unpow1/3_binary64_4919 unpow3_binary64_4918 unpow2_binary64_4917 unpow1/2_binary64_4916 pow-plus_binary64_4915 exp-to-pow_binary64_4914 pow-base-1_binary64_4912 unpow0_binary64_4911 unpow1_binary64_4910 unpow-1_binary64_4909 exp-lft-cube_binary64_4908 exp-lft-sqr_binary64_4907 exp-cbrt_binary64_4906 exp-sqrt_binary64_4905 exp-prod_binary64_4904 div-exp_binary64_4903 rec-exp_binary64_4902 prod-exp_binary64_4901 exp-diff_binary64_4900 exp-neg_binary64_4899 exp-sum_binary64_4898 e-exp-1_binary64_4897 exp-1-e_binary64_4895 exp-0_binary64_4894 rem-log-exp_binary64_4893 rem-exp-log_binary64_4892 cube-unmult_binary64_4889 cube-mult_binary64_4882 cube-div_binary64_4881 cube-prod_binary64_4880 cube-neg_binary64_4879 rem-3cbrt-rft_binary64_4878 rem-3cbrt-lft_binary64_4877 rem-cbrt-cube_binary64_4876 rem-cube-cbrt_binary64_4875 sqr-abs_binary64_4867 sqr-neg_binary64_4866 rem-sqrt-square_binary64_4865 rem-square-sqrt_binary64_4864 times-frac_binary64_4858 div-sub_binary64_4857 mul-1-neg_binary64_4844 /-rgt-identity_binary64_4843 div0_binary64_4833 *-inverses_binary64_4832 +-inverses_binary64_4831 lft-mult-inverse_binary64_4830 rgt-mult-inverse_binary64_4829 remove-double-div_binary64_4828 pow-sqr_binary64_4825 sqr-pow_binary64_4824 difference-of-sqr--1_binary64_4823 difference-of-sqr-1_binary64_4822 difference-of-squares_binary64_4821 unswap-sqr_binary64_4820 swap-sqr_binary64_4819 distribute-neg-frac_binary64_4816 distribute-frac-neg_binary64_4815 distribute-rgt1-in_binary64_4808 distribute-lft1-in_binary64_4807 distribute-rgt-out_binary64_4805 count-2_binary64_4800 associate-/l/_binary64_4799 associate-/r/_binary64_4798 associate-/l*_binary64_4797 associate-/r*_binary64_4796 associate-*l/_binary64_4795 associate-*r/_binary64_4794 associate--l-_binary64_4790
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
0131605
1263605
2417605
3512605
4598605
51028605
6994605
71659605
82449605
92458605
102534605
112537605
122537605
132903605
142948605
152948605
164374605
174909605
055
155
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
0%99.8%0.2%9
0%99.8%0.2%10
1.2%98.6%0.2%11
1.4%98.4%0.2%12
10.8%88.9%0.2%13
10.8%88.9%0.2%14
Compiler

Compiled 34 to 24 computations (29.4% saved)

sample218.0ms (0.5%)

Algorithm
intervals
Results
147.0ms121×body1024valid
27.0ms38×body512valid
16.0ms79×body128valid
9.0ms18×body256valid
Compiler

Compiled 67 to 52 computations (22.4% saved)

simplify46.0ms (0.1%)

Algorithm
egg-herbie
Rules
103×unsub-neg_binary64_4846
90×associate-*l*_binary64_4793
88×distribute-rgt-in_binary64_4802
82×cancel-sign-sub-inv_binary64_4818
80×associate-*r*_binary64_4792
70×distribute-rgt-neg-in_binary64_4810
58×distribute-lft-neg-out_binary64_4811
57×distribute-lft-in_binary64_4801
56×distribute-rgt-neg-out_binary64_4812
49×sub-neg_binary64_4845
41×neg-sub0_binary64_4847
40×distribute-lft-neg-in_binary64_4809
34×neg-mul-1_binary64_4848
33×associate--r+_binary64_4788
28×*-commutative_binary64_4783
25×distribute-neg-in_binary64_4813
21×mul0-rgt_binary64_4835 mul0-lft_binary64_4834
17×+-commutative_binary64_4782
14×associate-+l-_binary64_4787
13×*-lft-identity_binary64_4841
12×remove-double-neg_binary64_4840
sub0-neg_binary64_4839 +-lft-identity_binary64_4836
*-rgt-identity_binary64_4842
associate--l+_binary64_4789 associate-+l+_binary64_4785
mul-1-neg_binary64_4844
--rgt-identity_binary64_4838 associate--r-_binary64_4791 associate--l-_binary64_4790 associate-+r+_binary64_4784
+-rgt-identity_binary64_4837
1-exp_binary64_4896 cancel-sign-sub_binary64_4817 associate-+r-_binary64_4786
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_5115 erf-erfc_binary64_5114 erf-odd_binary64_5113 if-if-and-not_binary64_5112 if-if-and_binary64_5111 if-if-or-not_binary64_5110 if-if-or_binary64_5109 if-not_binary64_5108 if-same_binary64_5107 if-false_binary64_5106 if-true_binary64_5105 not-gte_binary64_5104 not-lte_binary64_5103 not-gt_binary64_5102 not-lt_binary64_5101 gte-same_binary64_5100 lte-same_binary64_5099 gt-same_binary64_5098 lt-same_binary64_5097 sinh---cosh_binary64_5044 sinh-+-cosh_binary64_5043 sinh-cosh_binary64_5042 tanh-def-c_binary64_5041 tanh-def-b_binary64_5040 tanh-def-a_binary64_5039 cosh-def_binary64_5038 sinh-def_binary64_5037 tan-neg_binary64_4984 cos-neg_binary64_4983 sin-neg_binary64_4982 tan-0_binary64_4981 cos-0_binary64_4980 sin-0_binary64_4979 hang-m-tan_binary64_4978 hang-p-tan_binary64_4977 hang-m0-tan_binary64_4976 hang-p0-tan_binary64_4975 hang-0m-tan_binary64_4974 hang-0p-tan_binary64_4973 tan-+PI/2_binary64_4972 tan-+PI_binary64_4971 tan-PI_binary64_4970 tan-PI/3_binary64_4969 tan-PI/4_binary64_4968 tan-PI/6_binary64_4967 cos-+PI/2_binary64_4966 cos-+PI_binary64_4965 cos-PI_binary64_4964 cos-PI/2_binary64_4963 cos-PI/3_binary64_4962 cos-PI/4_binary64_4961 cos-PI/6_binary64_4960 sin-+PI/2_binary64_4959 sin-+PI_binary64_4958 sin-PI_binary64_4957 sin-PI/2_binary64_4956 sin-PI/3_binary64_4955 sin-PI/4_binary64_4954 sin-PI/6_binary64_4953 sub-1-sin_binary64_4952 sub-1-cos_binary64_4951 -1-add-sin_binary64_4950 -1-add-cos_binary64_4949 1-sub-sin_binary64_4948 1-sub-cos_binary64_4947 cos-sin-sum_binary64_4946 log-E_binary64_4942 log-pow_binary64_4941 log-rec_binary64_4940 log-div_binary64_4939 log-prod_binary64_4938 pow-base-0_binary64_4936 unpow1/3_binary64_4919 unpow3_binary64_4918 unpow2_binary64_4917 unpow1/2_binary64_4916 pow-plus_binary64_4915 exp-to-pow_binary64_4914 pow-base-1_binary64_4912 unpow0_binary64_4911 unpow1_binary64_4910 unpow-1_binary64_4909 exp-lft-cube_binary64_4908 exp-lft-sqr_binary64_4907 exp-cbrt_binary64_4906 exp-sqrt_binary64_4905 exp-prod_binary64_4904 div-exp_binary64_4903 rec-exp_binary64_4902 prod-exp_binary64_4901 exp-diff_binary64_4900 exp-neg_binary64_4899 exp-sum_binary64_4898 e-exp-1_binary64_4897 exp-1-e_binary64_4895 exp-0_binary64_4894 rem-log-exp_binary64_4893 rem-exp-log_binary64_4892 cube-unmult_binary64_4889 cube-mult_binary64_4882 cube-div_binary64_4881 cube-prod_binary64_4880 cube-neg_binary64_4879 rem-3cbrt-rft_binary64_4878 rem-3cbrt-lft_binary64_4877 rem-cbrt-cube_binary64_4876 rem-cube-cbrt_binary64_4875 sqr-abs_binary64_4867 sqr-neg_binary64_4866 rem-sqrt-square_binary64_4865 rem-square-sqrt_binary64_4864 times-frac_binary64_4858 div-sub_binary64_4857 /-rgt-identity_binary64_4843 div0_binary64_4833 *-inverses_binary64_4832 +-inverses_binary64_4831 lft-mult-inverse_binary64_4830 rgt-mult-inverse_binary64_4829 remove-double-div_binary64_4828 pow-sqr_binary64_4825 sqr-pow_binary64_4824 difference-of-sqr--1_binary64_4823 difference-of-sqr-1_binary64_4822 difference-of-squares_binary64_4821 unswap-sqr_binary64_4820 swap-sqr_binary64_4819 distribute-neg-frac_binary64_4816 distribute-frac-neg_binary64_4815 distribute-neg-out_binary64_4814 distribute-rgt1-in_binary64_4808 distribute-lft1-in_binary64_4807 distribute-rgt-out--_binary64_4806 distribute-rgt-out_binary64_4805 distribute-lft-out--_binary64_4804 distribute-lft-out_binary64_4803 count-2_binary64_4800 associate-/l/_binary64_4799 associate-/r/_binary64_4798 associate-/l*_binary64_4797 associate-/r*_binary64_4796 associate-*l/_binary64_4795 associate-*r/_binary64_4794
Counts
1 → 1
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
02355
13955
26155
37255
48355
510755
613455
716455
821755
921655
1024055
1127555
1231755
1343155
1448655
1553455
1656755
1752155
1852355
1952555
2052655
2146355

prune5.0ms (0%)

Pruning

1 alts after pruning (1 fresh and 0 done)

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

Compiled 66 to 46 computations (30.3% saved)

localize33.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.2b
(atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))))
0.3b
(*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))
0.3b
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))
0.7b
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))

rewrite179.0ms (0.4%)

Algorithm
rewrite-expression-head
Error
0.1b
Rules
add-sqr-sqrt_binary64_4874
add-log-exp_binary64_4891 pow1_binary64_4913 add-exp-log_binary64_4890 add-cbrt-cube_binary64_4888 add-cube-cbrt_binary64_4887 *-un-lft-identity_binary64_4852
associate-*l*_binary64_4793 associate-*r*_binary64_4792
diff-log_binary64_4944 flip3--_binary64_4856 sub-neg_binary64_4845 flip--_binary64_4827 cancel-sign-sub-inv_binary64_4818 asin-acos_binary64_5032 sin-mult_binary64_5007 pow-prod-down_binary64_4923 prod-exp_binary64_4901 cbrt-unprod_binary64_4885 unswap-sqr_binary64_4820 *-commutative_binary64_4783
Counts
4 → 46
Calls

4 calls:

6.0ms
(*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))
4.0ms
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))
1.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))
1.0ms
(atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))))
Compiler

Compiled 2251 to 271 computations (88% saved)

series1.5s (3.4%)

Error
0.2b
Counts
4 → 42
Calls

4 calls:

656.0ms
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta)))))))
545.0ms
(*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))
180.0ms
(atan2.f64 (*.f64 (*.f64 (sin.f64 theta) (sin.f64 delta)) (cos.f64 phi1)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))))))
103.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (*.f64 (cos.f64 phi1) (sin.f64 delta)) (cos.f64 theta))))
Compiler

Compiled 3103 to 1913 computations (38.3% saved)

simplify175.0ms (0.4%)

Algorithm
egg-herbie
Rules
429×cancel-sign-sub-inv_binary64_4818
393×neg-mul-1_binary64_4848
360×neg-sub0_binary64_4847
358×unsub-neg_binary64_4846
356×sub-neg_binary64_4845
291×*-commutative_binary64_4783
258×associate-*l*_binary64_4793
222×distribute-rgt-neg-in_binary64_4810
221×distribute-rgt-in_binary64_4802
210×associate-*r*_binary64_4792
207×distribute-lft-neg-in_binary64_4809
185×unswap-sqr_binary64_4820
176×distribute-lft-in_binary64_4801
152×distribute-rgt-neg-out_binary64_4812
149×distribute-neg-in_binary64_4813
139×associate-+l+_binary64_4785
137×associate-+l-_binary64_4787
128×associate-+r+_binary64_4784
102×sqr-pow_binary64_4824
94×times-frac_binary64_4858
86×associate--l+_binary64_4789
85×+-commutative_binary64_4782
58×sub0-neg_binary64_4839
55×distribute-neg-out_binary64_4814 associate--r+_binary64_4788
51×distribute-lft-neg-out_binary64_4811
45×associate-+r-_binary64_4786
39×exp-prod_binary64_4904
37×cube-prod_binary64_4880
34×distribute-rgt-out_binary64_4805
32×exp-sum_binary64_4898 mul0-rgt_binary64_4835 mul0-lft_binary64_4834
27×+-rgt-identity_binary64_4837
26×cube-unmult_binary64_4889 *-lft-identity_binary64_4841
22×distribute-lft-out_binary64_4803 associate--l-_binary64_4790
20×*-rgt-identity_binary64_4842 pow-sqr_binary64_4825
19×difference-of-squares_binary64_4821
18×unpow3_binary64_4918 pow-plus_binary64_4915 rem-sqrt-square_binary64_4865
17×cancel-sign-sub_binary64_4817 distribute-rgt-out--_binary64_4806
16×swap-sqr_binary64_4819 distribute-lft-out--_binary64_4804
14×exp-diff_binary64_4900
12×log-prod_binary64_4938
10×div-sub_binary64_4857
unpow1/2_binary64_4916
+-lft-identity_binary64_4836
sqr-neg_binary64_4866 mul-1-neg_binary64_4844 remove-double-neg_binary64_4840 associate-/r*_binary64_4796
cube-mult_binary64_4882
cube-neg_binary64_4879 --rgt-identity_binary64_4838
distribute-frac-neg_binary64_4815 distribute-rgt1-in_binary64_4808
cos-neg_binary64_4983 associate-/l*_binary64_4797 associate--r-_binary64_4791
sin-neg_binary64_4982 unpow2_binary64_4917 unpow1_binary64_4910 div-exp_binary64_4903 1-exp_binary64_4896 exp-1-e_binary64_4895 distribute-lft1-in_binary64_4807 count-2_binary64_4800 associate-/l/_binary64_4799 associate-*r/_binary64_4794
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_5115 erf-erfc_binary64_5114 erf-odd_binary64_5113 if-if-and-not_binary64_5112 if-if-and_binary64_5111 if-if-or-not_binary64_5110 if-if-or_binary64_5109 if-not_binary64_5108 if-same_binary64_5107 if-false_binary64_5106 if-true_binary64_5105 not-gte_binary64_5104 not-lte_binary64_5103 not-gt_binary64_5102 not-lt_binary64_5101 gte-same_binary64_5100 lte-same_binary64_5099 gt-same_binary64_5098 lt-same_binary64_5097 sinh---cosh_binary64_5044 sinh-+-cosh_binary64_5043 sinh-cosh_binary64_5042 tanh-def-c_binary64_5041 tanh-def-b_binary64_5040 tanh-def-a_binary64_5039 cosh-def_binary64_5038 sinh-def_binary64_5037 tan-neg_binary64_4984 tan-0_binary64_4981 cos-0_binary64_4980 sin-0_binary64_4979 hang-m-tan_binary64_4978 hang-p-tan_binary64_4977 hang-m0-tan_binary64_4976 hang-p0-tan_binary64_4975 hang-0m-tan_binary64_4974 hang-0p-tan_binary64_4973 tan-+PI/2_binary64_4972 tan-+PI_binary64_4971 tan-PI_binary64_4970 tan-PI/3_binary64_4969 tan-PI/4_binary64_4968 tan-PI/6_binary64_4967 cos-+PI/2_binary64_4966 cos-+PI_binary64_4965 cos-PI_binary64_4964 cos-PI/2_binary64_4963 cos-PI/3_binary64_4962 cos-PI/4_binary64_4961 cos-PI/6_binary64_4960 sin-+PI/2_binary64_4959 sin-+PI_binary64_4958 sin-PI_binary64_4957 sin-PI/2_binary64_4956 sin-PI/3_binary64_4955 sin-PI/4_binary64_4954 sin-PI/6_binary64_4953 sub-1-sin_binary64_4952 sub-1-cos_binary64_4951 -1-add-sin_binary64_4950 -1-add-cos_binary64_4949 1-sub-sin_binary64_4948 1-sub-cos_binary64_4947 cos-sin-sum_binary64_4946 log-E_binary64_4942 log-pow_binary64_4941 log-rec_binary64_4940 log-div_binary64_4939 pow-base-0_binary64_4936 unpow1/3_binary64_4919 exp-to-pow_binary64_4914 pow-base-1_binary64_4912 unpow0_binary64_4911 unpow-1_binary64_4909 exp-lft-cube_binary64_4908 exp-lft-sqr_binary64_4907 exp-cbrt_binary64_4906 exp-sqrt_binary64_4905 rec-exp_binary64_4902 prod-exp_binary64_4901 exp-neg_binary64_4899 e-exp-1_binary64_4897 exp-0_binary64_4894 rem-log-exp_binary64_4893 rem-exp-log_binary64_4892 cube-div_binary64_4881 rem-3cbrt-rft_binary64_4878 rem-3cbrt-lft_binary64_4877 rem-cbrt-cube_binary64_4876 rem-cube-cbrt_binary64_4875 sqr-abs_binary64_4867 rem-square-sqrt_binary64_4864 /-rgt-identity_binary64_4843 div0_binary64_4833 *-inverses_binary64_4832 +-inverses_binary64_4831 lft-mult-inverse_binary64_4830 rgt-mult-inverse_binary64_4829 remove-double-div_binary64_4828 difference-of-sqr--1_binary64_4823 difference-of-sqr-1_binary64_4822 distribute-neg-frac_binary64_4816 associate-/r/_binary64_4798 associate-*l/_binary64_4795
Counts
88 → 69
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01303897
12663666
26323608
315913608
432103608
543223608
648633608

prune161.0ms (0.4%)

Pruning

9 alts after pruning (9 fresh and 0 done)

PrunedKeptTotal
New60969
Fresh000
Picked101
Done000
Total61970
Error
0.1b
Counts
70 → 9
Compiler

Compiled 2422 to 512 computations (78.9% saved)

localize26.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.2b
(atan2.f64 (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (sin.f64 theta)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))))))
0.3b
(*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))))
0.3b
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))
0.7b
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))

rewrite251.0ms (0.6%)

Algorithm
rewrite-expression-head
Error
0.1b
Rules
add-sqr-sqrt_binary64_4874
add-log-exp_binary64_4891 pow1_binary64_4913 add-exp-log_binary64_4890 add-cbrt-cube_binary64_4888 add-cube-cbrt_binary64_4887 *-un-lft-identity_binary64_4852
associate-*l*_binary64_4793 associate-*r*_binary64_4792
diff-log_binary64_4944 flip3--_binary64_4856 sub-neg_binary64_4845 flip--_binary64_4827 cancel-sign-sub-inv_binary64_4818 asin-acos_binary64_5032 sin-mult_binary64_5007 pow-prod-down_binary64_4923 prod-exp_binary64_4901 cbrt-unprod_binary64_4885 unswap-sqr_binary64_4820 *-commutative_binary64_4783
Counts
4 → 46
Calls

4 calls:

6.0ms
(*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))))
4.0ms
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))
1.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))
1.0ms
(atan2.f64 (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (sin.f64 theta)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))))))
Compiler

Compiled 2251 to 270 computations (88% saved)

series1.5s (3.3%)

Error
0.1b
Counts
4 → 42
Calls

4 calls:

643.0ms
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))
526.0ms
(*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))))
181.0ms
(atan2.f64 (*.f64 (*.f64 (sin.f64 delta) (cos.f64 phi1)) (sin.f64 theta)) (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))))))
103.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))
Compiler

Compiled 3103 to 1854 computations (40.3% saved)

simplify174.0ms (0.4%)

Algorithm
egg-herbie
Rules
429×cancel-sign-sub-inv_binary64_4818
393×neg-mul-1_binary64_4848
360×neg-sub0_binary64_4847
358×unsub-neg_binary64_4846
356×sub-neg_binary64_4845
291×*-commutative_binary64_4783
257×associate-*l*_binary64_4793
222×distribute-rgt-neg-in_binary64_4810
221×distribute-rgt-in_binary64_4802
210×associate-*r*_binary64_4792
207×distribute-lft-neg-in_binary64_4809
185×unswap-sqr_binary64_4820
176×distribute-lft-in_binary64_4801
152×distribute-rgt-neg-out_binary64_4812
149×distribute-neg-in_binary64_4813
139×associate-+l+_binary64_4785
137×associate-+l-_binary64_4787
128×associate-+r+_binary64_4784
102×sqr-pow_binary64_4824
94×times-frac_binary64_4858
86×associate--l+_binary64_4789
84×+-commutative_binary64_4782
58×sub0-neg_binary64_4839
55×distribute-neg-out_binary64_4814 associate--r+_binary64_4788
51×distribute-lft-neg-out_binary64_4811
45×associate-+r-_binary64_4786
39×exp-prod_binary64_4904
37×cube-prod_binary64_4880
34×distribute-rgt-out_binary64_4805
32×exp-sum_binary64_4898 mul0-rgt_binary64_4835 mul0-lft_binary64_4834
27×+-rgt-identity_binary64_4837
26×cube-unmult_binary64_4889 *-lft-identity_binary64_4841
22×distribute-lft-out_binary64_4803 associate--l-_binary64_4790
20×*-rgt-identity_binary64_4842 pow-sqr_binary64_4825
19×difference-of-squares_binary64_4821
18×unpow3_binary64_4918 pow-plus_binary64_4915 rem-sqrt-square_binary64_4865
17×cancel-sign-sub_binary64_4817 distribute-rgt-out--_binary64_4806
16×swap-sqr_binary64_4819 distribute-lft-out--_binary64_4804
14×exp-diff_binary64_4900
12×log-prod_binary64_4938
10×div-sub_binary64_4857
unpow1/2_binary64_4916
+-lft-identity_binary64_4836
sqr-neg_binary64_4866 mul-1-neg_binary64_4844 remove-double-neg_binary64_4840 associate-/r*_binary64_4796
cube-mult_binary64_4882
cube-neg_binary64_4879 --rgt-identity_binary64_4838
distribute-frac-neg_binary64_4815 distribute-rgt1-in_binary64_4808
cos-neg_binary64_4983 associate-/l*_binary64_4797 associate--r-_binary64_4791
sin-neg_binary64_4982 unpow2_binary64_4917 unpow1_binary64_4910 div-exp_binary64_4903 1-exp_binary64_4896 exp-1-e_binary64_4895 distribute-lft1-in_binary64_4807 count-2_binary64_4800 associate-/l/_binary64_4799 associate-*r/_binary64_4794
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_5115 erf-erfc_binary64_5114 erf-odd_binary64_5113 if-if-and-not_binary64_5112 if-if-and_binary64_5111 if-if-or-not_binary64_5110 if-if-or_binary64_5109 if-not_binary64_5108 if-same_binary64_5107 if-false_binary64_5106 if-true_binary64_5105 not-gte_binary64_5104 not-lte_binary64_5103 not-gt_binary64_5102 not-lt_binary64_5101 gte-same_binary64_5100 lte-same_binary64_5099 gt-same_binary64_5098 lt-same_binary64_5097 sinh---cosh_binary64_5044 sinh-+-cosh_binary64_5043 sinh-cosh_binary64_5042 tanh-def-c_binary64_5041 tanh-def-b_binary64_5040 tanh-def-a_binary64_5039 cosh-def_binary64_5038 sinh-def_binary64_5037 tan-neg_binary64_4984 tan-0_binary64_4981 cos-0_binary64_4980 sin-0_binary64_4979 hang-m-tan_binary64_4978 hang-p-tan_binary64_4977 hang-m0-tan_binary64_4976 hang-p0-tan_binary64_4975 hang-0m-tan_binary64_4974 hang-0p-tan_binary64_4973 tan-+PI/2_binary64_4972 tan-+PI_binary64_4971 tan-PI_binary64_4970 tan-PI/3_binary64_4969 tan-PI/4_binary64_4968 tan-PI/6_binary64_4967 cos-+PI/2_binary64_4966 cos-+PI_binary64_4965 cos-PI_binary64_4964 cos-PI/2_binary64_4963 cos-PI/3_binary64_4962 cos-PI/4_binary64_4961 cos-PI/6_binary64_4960 sin-+PI/2_binary64_4959 sin-+PI_binary64_4958 sin-PI_binary64_4957 sin-PI/2_binary64_4956 sin-PI/3_binary64_4955 sin-PI/4_binary64_4954 sin-PI/6_binary64_4953 sub-1-sin_binary64_4952 sub-1-cos_binary64_4951 -1-add-sin_binary64_4950 -1-add-cos_binary64_4949 1-sub-sin_binary64_4948 1-sub-cos_binary64_4947 cos-sin-sum_binary64_4946 log-E_binary64_4942 log-pow_binary64_4941 log-rec_binary64_4940 log-div_binary64_4939 pow-base-0_binary64_4936 unpow1/3_binary64_4919 exp-to-pow_binary64_4914 pow-base-1_binary64_4912 unpow0_binary64_4911 unpow-1_binary64_4909 exp-lft-cube_binary64_4908 exp-lft-sqr_binary64_4907 exp-cbrt_binary64_4906 exp-sqrt_binary64_4905 rec-exp_binary64_4902 prod-exp_binary64_4901 exp-neg_binary64_4899 e-exp-1_binary64_4897 exp-0_binary64_4894 rem-log-exp_binary64_4893 rem-exp-log_binary64_4892 cube-div_binary64_4881 rem-3cbrt-rft_binary64_4878 rem-3cbrt-lft_binary64_4877 rem-cbrt-cube_binary64_4876 rem-cube-cbrt_binary64_4875 sqr-abs_binary64_4867 rem-square-sqrt_binary64_4864 /-rgt-identity_binary64_4843 div0_binary64_4833 *-inverses_binary64_4832 +-inverses_binary64_4831 lft-mult-inverse_binary64_4830 rgt-mult-inverse_binary64_4829 remove-double-div_binary64_4828 difference-of-sqr--1_binary64_4823 difference-of-sqr-1_binary64_4822 distribute-neg-frac_binary64_4816 associate-/r/_binary64_4798 associate-*l/_binary64_4795
Counts
88 → 44
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01243897
12633666
26283608
315913608
432103608
543223608
648633608

prune104.0ms (0.2%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New44044
Fresh088
Picked011
Done000
Total44953
Error
0.1b
Counts
53 → 9
Compiler

Compiled 1138 to 351 computations (69.2% saved)

localize33.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.3b
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))
0.4b
(cbrt.f64 (pow.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))))) 3))
0.5b
(pow.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))))) 3)
0.7b
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))

rewrite383.0ms (0.9%)

Algorithm
rewrite-expression-head
Error
0.1b
Rules
12×cbrt-prod_binary64_4883
10×add-cube-cbrt_binary64_4887 add-sqr-sqrt_binary64_4874 *-un-lft-identity_binary64_4852
add-log-exp_binary64_4891 unpow-prod-down_binary64_4931 cube-prod_binary64_4880
pow1_binary64_4913 add-exp-log_binary64_4890 add-cbrt-cube_binary64_4888
cube-div_binary64_4881
flip3--_binary64_4856 flip--_binary64_4827 pow-unpow_binary64_4929
unpow3_binary64_4918 cube-mult_binary64_4882 sqr-pow_binary64_4824 cbrt-div_binary64_4884
diff-log_binary64_4944 sub-neg_binary64_4845 cancel-sign-sub-inv_binary64_4818 pow-pow_binary64_4924 pow-to-exp_binary64_4921 pow-exp_binary64_4920 rem-cube-cbrt_binary64_4875 pow1/3_binary64_4934 rem-cbrt-cube_binary64_4876 asin-acos_binary64_5032
Counts
4 → 68
Calls

4 calls:

4.0ms
(pow.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))))) 3)
4.0ms
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))
4.0ms
(cbrt.f64 (pow.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))))) 3))
1.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))
Compiler

Compiled 3419 to 535 computations (84.4% saved)

series3.0s (6.6%)

Error
0.1b
Counts
4 → 50
Calls

4 calls:

1.4s
(pow.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))))) 3)
683.0ms
(-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))
675.0ms
(cbrt.f64 (pow.f64 (-.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))))) 3))
108.0ms
(asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))
Compiler

Compiled 4931 to 2738 computations (44.5% saved)

simplify193.0ms (0.4%)

Algorithm
egg-herbie
Rules
553×cancel-sign-sub-inv_binary64_4818
355×unswap-sqr_binary64_4820
289×distribute-rgt-in_binary64_4802
270×distribute-lft-in_binary64_4801
169×exp-prod_binary64_4904
158×associate-*r*_binary64_4792
149×log-prod_binary64_4938
135×distribute-rgt-neg-in_binary64_4810
126×associate-*l*_binary64_4793
125×distribute-rgt-out_binary64_4805
122×distribute-lft-neg-in_binary64_4809
121×sub-neg_binary64_4845
84×sqr-pow_binary64_4824
83×distribute-neg-in_binary64_4813
81×+-commutative_binary64_4782
77×associate-+r+_binary64_4784
75×*-commutative_binary64_4783
54×associate-+l+_binary64_4785
53×unpow3_binary64_4918
40×neg-mul-1_binary64_4848 neg-sub0_binary64_4847 associate--r+_binary64_4788
38×cube-prod_binary64_4880
35×distribute-lft-out_binary64_4803 associate--l+_binary64_4789
32×swap-sqr_binary64_4819
23×distribute-lft-neg-out_binary64_4811
22×log-pow_binary64_4941 unsub-neg_binary64_4846
21×pow-plus_binary64_4915
16×cube-mult_binary64_4882
13×distribute-rgt-out--_binary64_4806
12×pow-sqr_binary64_4825
rem-sqrt-square_binary64_4865 distribute-rgt-neg-out_binary64_4812
exp-sum_binary64_4898 rem-cbrt-cube_binary64_4876
cube-unmult_binary64_4889
unpow1/2_binary64_4916 unpow1_binary64_4910 difference-of-squares_binary64_4821
unpow2_binary64_4917
exp-diff_binary64_4900 *-rgt-identity_binary64_4842 *-lft-identity_binary64_4841 distribute-rgt1-in_binary64_4808 distribute-lft-out--_binary64_4804
div-exp_binary64_4903 1-exp_binary64_4896 rem-3cbrt-lft_binary64_4877 rem-cube-cbrt_binary64_4875 rem-square-sqrt_binary64_4864 +-rgt-identity_binary64_4837 associate-/l*_binary64_4797 associate-+r-_binary64_4786
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_5115 erf-erfc_binary64_5114 erf-odd_binary64_5113 if-if-and-not_binary64_5112 if-if-and_binary64_5111 if-if-or-not_binary64_5110 if-if-or_binary64_5109 if-not_binary64_5108 if-same_binary64_5107 if-false_binary64_5106 if-true_binary64_5105 not-gte_binary64_5104 not-lte_binary64_5103 not-gt_binary64_5102 not-lt_binary64_5101 gte-same_binary64_5100 lte-same_binary64_5099 gt-same_binary64_5098 lt-same_binary64_5097 sinh---cosh_binary64_5044 sinh-+-cosh_binary64_5043 sinh-cosh_binary64_5042 tanh-def-c_binary64_5041 tanh-def-b_binary64_5040 tanh-def-a_binary64_5039 cosh-def_binary64_5038 sinh-def_binary64_5037 tan-neg_binary64_4984 cos-neg_binary64_4983 sin-neg_binary64_4982 tan-0_binary64_4981 cos-0_binary64_4980 sin-0_binary64_4979 hang-m-tan_binary64_4978 hang-p-tan_binary64_4977 hang-m0-tan_binary64_4976 hang-p0-tan_binary64_4975 hang-0m-tan_binary64_4974 hang-0p-tan_binary64_4973 tan-+PI/2_binary64_4972 tan-+PI_binary64_4971 tan-PI_binary64_4970 tan-PI/3_binary64_4969 tan-PI/4_binary64_4968 tan-PI/6_binary64_4967 cos-+PI/2_binary64_4966 cos-+PI_binary64_4965 cos-PI_binary64_4964 cos-PI/2_binary64_4963 cos-PI/3_binary64_4962 cos-PI/4_binary64_4961 cos-PI/6_binary64_4960 sin-+PI/2_binary64_4959 sin-+PI_binary64_4958 sin-PI_binary64_4957 sin-PI/2_binary64_4956 sin-PI/3_binary64_4955 sin-PI/4_binary64_4954 sin-PI/6_binary64_4953 sub-1-sin_binary64_4952 sub-1-cos_binary64_4951 -1-add-sin_binary64_4950 -1-add-cos_binary64_4949 1-sub-sin_binary64_4948 1-sub-cos_binary64_4947 cos-sin-sum_binary64_4946 log-E_binary64_4942 log-rec_binary64_4940 log-div_binary64_4939 pow-base-0_binary64_4936 unpow1/3_binary64_4919 exp-to-pow_binary64_4914 pow-base-1_binary64_4912 unpow0_binary64_4911 unpow-1_binary64_4909 exp-lft-cube_binary64_4908 exp-lft-sqr_binary64_4907 exp-cbrt_binary64_4906 exp-sqrt_binary64_4905 rec-exp_binary64_4902 prod-exp_binary64_4901 exp-neg_binary64_4899 e-exp-1_binary64_4897 exp-1-e_binary64_4895 exp-0_binary64_4894 rem-log-exp_binary64_4893 rem-exp-log_binary64_4892 cube-div_binary64_4881 cube-neg_binary64_4879 rem-3cbrt-rft_binary64_4878 sqr-abs_binary64_4867 sqr-neg_binary64_4866 times-frac_binary64_4858 div-sub_binary64_4857 mul-1-neg_binary64_4844 /-rgt-identity_binary64_4843 remove-double-neg_binary64_4840 sub0-neg_binary64_4839 --rgt-identity_binary64_4838 +-lft-identity_binary64_4836 mul0-rgt_binary64_4835 mul0-lft_binary64_4834 div0_binary64_4833 *-inverses_binary64_4832 +-inverses_binary64_4831 lft-mult-inverse_binary64_4830 rgt-mult-inverse_binary64_4829 remove-double-div_binary64_4828 difference-of-sqr--1_binary64_4823 difference-of-sqr-1_binary64_4822 cancel-sign-sub_binary64_4817 distribute-neg-frac_binary64_4816 distribute-frac-neg_binary64_4815 distribute-neg-out_binary64_4814 distribute-lft1-in_binary64_4807 count-2_binary64_4800 associate-/l/_binary64_4799 associate-/r/_binary64_4798 associate-/r*_binary64_4796 associate-*l/_binary64_4795 associate-*r/_binary64_4794 associate--r-_binary64_4791 associate--l-_binary64_4790 associate-+l-_binary64_4787
Counts
118 → 81
Iterations

Useful iterations: 2 (0.0ms)

IterNodesCost
01846653
14656048
216485942
347535942
450825942

prune221.0ms (0.5%)

Pruning

9 alts after pruning (8 fresh and 1 done)

PrunedKeptTotal
New80181
Fresh077
Picked101
Done011
Total81990
Error
0.1b
Counts
90 → 9
Compiler

Compiled 2839 to 696 computations (75.5% saved)

localize44.0ms (0.1%)

Local error

Found 4 expressions with local error:

0.4b
(pow.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))) 2)
0.4b
(cbrt.f64 (pow.f64 (/.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (pow.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))) 2) (pow.f64 (sin.f64 phi1) 2))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))) 3))
0.5b
(-.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (pow.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))) 2) (pow.f64 (sin.f64 phi1) 2)))
0.5b
(pow.f64 (/.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (pow.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))) 2) (pow.f64 (sin.f64 phi1) 2))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))) 3)

rewrite731.0ms (1.6%)

Algorithm
rewrite-expression-head
Error
0.0b
Rules
36×add-cube-cbrt_binary64_4887 add-sqr-sqrt_binary64_4874 times-frac_binary64_4858 *-un-lft-identity_binary64_4852 cbrt-prod_binary64_4883
33×unpow-prod-down_binary64_4931
30×cube-prod_binary64_4880
associate-/r/_binary64_4798 add-exp-log_binary64_4890
add-cbrt-cube_binary64_4888
pow-unpow_binary64_4929 pow1_binary64_4913 add-log-exp_binary64_4891
div-inv_binary64_4849 flip3-+_binary64_4855 flip-+_binary64_4826
pow-exp_binary64_4920 sqr-pow_binary64_4824
pow-pow_binary64_4924 pow-to-exp_binary64_4921 unpow3_binary64_4918 cube-mult_binary64_4882 cube-div_binary64_4881 rem-cube-cbrt_binary64_4875
div-exp_binary64_4903 cbrt-undiv_binary64_4886 diff-log_binary64_4944 flip3--_binary64_4856 sub-neg_binary64_4845 flip--_binary64_4827 cancel-sign-sub-inv_binary64_4818 pow1/3_binary64_4934 cbrt-div_binary64_4884 rem-cbrt-cube_binary64_4876 unpow2_binary64_4917
Counts
4 → 126
Calls

4 calls:

11.0ms
(pow.f64 (/.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (pow.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))) 2) (pow.f64 (sin.f64 phi1) 2))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))) 3)
10.0ms
(cbrt.f64 (pow.f64 (/.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (pow.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))) 2) (pow.f64 (sin.f64 phi1) 2))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))) 3))
7.0ms
(-.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (pow.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))) 2) (pow.f64 (sin.f64 phi1) 2)))
4.0ms
(pow.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))) 2)
Compiler

Compiled 9470 to 2212 computations (76.6% saved)

series18.1s (40.3%)

Error
0.1b
Counts
4 → 49
Calls

4 calls:

12.1s
(pow.f64 (/.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (pow.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))) 2) (pow.f64 (sin.f64 phi1) 2))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))) 3)
3.8s
(cbrt.f64 (pow.f64 (/.f64 (-.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (pow.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))) 2) (pow.f64 (sin.f64 phi1) 2))) (+.f64 (cos.f64 delta) (*.f64 (sin.f64 phi1) (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1))))))))) 3))
1.2s
(-.f64 (pow.f64 (cos.f64 delta) 2) (*.f64 (pow.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))) 2) (pow.f64 (sin.f64 phi1) 2)))
497.0ms
(pow.f64 (sin.f64 (asin.f64 (+.f64 (*.f64 (sin.f64 phi1) (cos.f64 delta)) (*.f64 (cos.f64 theta) (*.f64 (sin.f64 delta) (cos.f64 phi1)))))) 2)
Compiler

Compiled 14723 to 5578 computations (62.1% saved)

simplify366.0ms (0.8%)

Algorithm
egg-herbie
Rules
369×times-frac_binary64_4858
314×associate-*r*_binary64_4792
305×associate-/l*_binary64_4797
246×associate-+l+_binary64_4785
222×associate-/r*_binary64_4796
182×associate-*l*_binary64_4793
134×associate-*l/_binary64_4795
133×associate-*r/_binary64_4794
117×sqr-pow_binary64_4824
103×+-commutative_binary64_4782
81×*-commutative_binary64_4783
80×associate-+r+_binary64_4784
65×cancel-sign-sub-inv_binary64_4818 associate--r+_binary64_4788
58×associate--l+_binary64_4789
56×sub-neg_binary64_4845
44×unpow3_binary64_4918
43×cube-mult_binary64_4882
42×unswap-sqr_binary64_4820
34×associate-/r/_binary64_4798
28×distribute-rgt-neg-in_binary64_4810
26×rem-cbrt-cube_binary64_4876
25×cube-div_binary64_4881
23×distribute-neg-in_binary64_4813
22×neg-mul-1_binary64_4848 neg-sub0_binary64_4847 distribute-lft-neg-in_binary64_4809 distribute-rgt-in_binary64_4802 distribute-lft-in_binary64_4801
19×cube-prod_binary64_4880
17×associate-/l/_binary64_4799
15×exp-prod_binary64_4904
10×log-prod_binary64_4938 unpow1_binary64_4910
unpow2_binary64_4917 pow-sqr_binary64_4825 swap-sqr_binary64_4819
div-sub_binary64_4857 distribute-lft-neg-out_binary64_4811
log-pow_binary64_4941 rem-sqrt-square_binary64_4865 distribute-rgt-out_binary64_4805
rem-cube-cbrt_binary64_4875 rem-square-sqrt_binary64_4864 difference-of-squares_binary64_4821
log-div_binary64_4939 unpow1/2_binary64_4916 exp-sum_binary64_4898 /-rgt-identity_binary64_4843 *-inverses_binary64_4832 distribute-rgt-out--_binary64_4806 associate-+r-_binary64_4786
pow-plus_binary64_4915 div-exp_binary64_4903 exp-diff_binary64_4900 1-exp_binary64_4896 cube-unmult_binary64_4889 rem-3cbrt-lft_binary64_4877 associate-+l-_binary64_4787
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_5115 erf-erfc_binary64_5114 erf-odd_binary64_5113 if-if-and-not_binary64_5112 if-if-and_binary64_5111 if-if-or-not_binary64_5110 if-if-or_binary64_5109 if-not_binary64_5108 if-same_binary64_5107 if-false_binary64_5106 if-true_binary64_5105 not-gte_binary64_5104 not-lte_binary64_5103 not-gt_binary64_5102 not-lt_binary64_5101 gte-same_binary64_5100 lte-same_binary64_5099 gt-same_binary64_5098 lt-same_binary64_5097 sinh---cosh_binary64_5044 sinh-+-cosh_binary64_5043 sinh-cosh_binary64_5042 tanh-def-c_binary64_5041 tanh-def-b_binary64_5040 tanh-def-a_binary64_5039 cosh-def_binary64_5038 sinh-def_binary64_5037 tan-neg_binary64_4984 cos-neg_binary64_4983 sin-neg_binary64_4982 tan-0_binary64_4981 cos-0_binary64_4980 sin-0_binary64_4979 hang-m-tan_binary64_4978 hang-p-tan_binary64_4977 hang-m0-tan_binary64_4976 hang-p0-tan_binary64_4975 hang-0m-tan_binary64_4974 hang-0p-tan_binary64_4973 tan-+PI/2_binary64_4972 tan-+PI_binary64_4971 tan-PI_binary64_4970 tan-PI/3_binary64_4969 tan-PI/4_binary64_4968 tan-PI/6_binary64_4967 cos-+PI/2_binary64_4966 cos-+PI_binary64_4965 cos-PI_binary64_4964 cos-PI/2_binary64_4963 cos-PI/3_binary64_4962 cos-PI/4_binary64_4961 cos-PI/6_binary64_4960 sin-+PI/2_binary64_4959 sin-+PI_binary64_4958 sin-PI_binary64_4957 sin-PI/2_binary64_4956 sin-PI/3_binary64_4955 sin-PI/4_binary64_4954 sin-PI/6_binary64_4953 sub-1-sin_binary64_4952 sub-1-cos_binary64_4951 -1-add-sin_binary64_4950 -1-add-cos_binary64_4949 1-sub-sin_binary64_4948 1-sub-cos_binary64_4947 cos-sin-sum_binary64_4946 log-E_binary64_4942 log-rec_binary64_4940 pow-base-0_binary64_4936 unpow1/3_binary64_4919 exp-to-pow_binary64_4914 pow-base-1_binary64_4912 unpow0_binary64_4911 unpow-1_binary64_4909 exp-lft-cube_binary64_4908 exp-lft-sqr_binary64_4907 exp-cbrt_binary64_4906 exp-sqrt_binary64_4905 rec-exp_binary64_4902 prod-exp_binary64_4901 exp-neg_binary64_4899 e-exp-1_binary64_4897 exp-1-e_binary64_4895 exp-0_binary64_4894 rem-log-exp_binary64_4893 rem-exp-log_binary64_4892 cube-neg_binary64_4879 rem-3cbrt-rft_binary64_4878 sqr-abs_binary64_4867 sqr-neg_binary64_4866 unsub-neg_binary64_4846 mul-1-neg_binary64_4844 *-rgt-identity_binary64_4842 *-lft-identity_binary64_4841 remove-double-neg_binary64_4840 sub0-neg_binary64_4839 --rgt-identity_binary64_4838 +-rgt-identity_binary64_4837 +-lft-identity_binary64_4836 mul0-rgt_binary64_4835 mul0-lft_binary64_4834 div0_binary64_4833 +-inverses_binary64_4831 lft-mult-inverse_binary64_4830 rgt-mult-inverse_binary64_4829 remove-double-div_binary64_4828 difference-of-sqr--1_binary64_4823 difference-of-sqr-1_binary64_4822 cancel-sign-sub_binary64_4817 distribute-neg-frac_binary64_4816 distribute-frac-neg_binary64_4815 distribute-neg-out_binary64_4814 distribute-rgt-neg-out_binary64_4812 distribute-rgt1-in_binary64_4808 distribute-lft1-in_binary64_4807 distribute-lft-out--_binary64_4804 distribute-lft-out_binary64_4803 count-2_binary64_4800 associate--r-_binary64_4791 associate--l-_binary64_4790
Counts
175 → 122
Iterations

Useful iterations: 1 (0.0ms)

IterNodesCost
047124896
1135223403
2525923403

prune535.0ms (1.2%)

Pruning

9 alts after pruning (7 fresh and 2 done)

PrunedKeptTotal
New1202122
Fresh257
Picked011
Done011
Total1229131
Error
0.1b
Counts
131 → 9
Compiler

Compiled 9298 to 2308 computations (75.2% saved)

regimes5.7s (12.7%)

Accuracy

Total 0.1b remaining (50.6%)

Threshold costs 0.1b (50.6%)

Compiler

Compiled 82863 to 44713 computations (46% saved)

bsearch0.0ms (0%)

simplify9.0ms (0%)

Algorithm
egg-herbie
Rules
15×*-commutative_binary64_4783
12×+-commutative_binary64_4782
10×sub-neg_binary64_4845
neg-mul-1_binary64_4848 neg-sub0_binary64_4847
cancel-sign-sub-inv_binary64_4818 distribute-rgt-neg-in_binary64_4810
distribute-lft-neg-out_binary64_4811
distribute-lft-neg-in_binary64_4809
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_5112 if-if-and_binary64_5111 if-if-or-not_binary64_5110 if-if-or_binary64_5109 if-not_binary64_5108 if-same_binary64_5107 if-false_binary64_5106 if-true_binary64_5105 tan-0_binary64_4981 cos-0_binary64_4980 sin-0_binary64_4979 unpow1_binary64_4910 e-exp-1_binary64_4897 1-exp_binary64_4896 exp-1-e_binary64_4895 exp-0_binary64_4894 sqr-abs_binary64_4867 sqr-neg_binary64_4866 unsub-neg_binary64_4846 mul-1-neg_binary64_4844 /-rgt-identity_binary64_4843 *-rgt-identity_binary64_4842 *-lft-identity_binary64_4841 remove-double-neg_binary64_4840 sub0-neg_binary64_4839 --rgt-identity_binary64_4838 +-rgt-identity_binary64_4837 +-lft-identity_binary64_4836 cancel-sign-sub_binary64_4817 distribute-neg-frac_binary64_4816 distribute-frac-neg_binary64_4815 distribute-neg-out_binary64_4814 distribute-neg-in_binary64_4813 distribute-rgt-neg-out_binary64_4812
Iterations

Useful iterations: 0 (0.0ms)

IterNodesCost
038189
162189
283189
397189
4106189
5108189
6108189

end5.0ms (0%)

Compiler

Compiled 113 to 41 computations (63.7% saved)

sample7.3s (16.3%)

Algorithm
intervals
Results
4.6s3909×body1024valid
991.0ms1357×body512valid
462.0ms2164×body128valid
262.0ms557×body256valid
36.0ms13×body2048valid
Compiler

Compiled 701 to 360 computations (48.6% saved)

Profiling

Loading profile data...