2 // Reduced from boost-1.54
10 int max_value() { return 0x7fffffff; }
13 int min_value() { return 1; }
15 void raise_denorm_error();
18 void raise_domain_error(int, int, const T &, const PolicyA &);
21 int check_overflow(long double p1) {
22 long double __trans_tmp_2 = __builtin_fabsl(p1);
23 if (__trans_tmp_2 > max_value<int>())
29 int check_underflow(long double p1) {
36 int check_denorm(long double p1) {
37 long double __trans_tmp_3 = __builtin_fabsl(p1);
38 if (__trans_tmp_3 < min_value<int>() && (double)p1) {
45 template <class, class>
46 double checked_narrowing_cast(long double p1) {
47 if (check_overflow<int>(p1))
49 if (check_underflow<int>(p1))
51 if (check_denorm<int>(p1))
56 long double ellint_rf_imp(long double, long double, long double);
58 template <typename T, typename Policy>
59 T ellint_rj_imp(T p1, T p2, T p3, T p4, Policy &p5) {
60 T value, tolerance, P, S3;
64 raise_domain_error(0, 0, 0, p5);
65 tolerance = pow(0, 0);
69 long double q6 = ellint_rj_imp((long double)p1, (long double)(double)p2, (long double)(double)p3, (long double)(int)0, p5);
70 value = checked_narrowing_cast<T, int>(q6);
73 long double q7 = ellint_rf_imp((long double)p1, (long double)(double)p2, (long double)(double)p3);
74 value -= checked_narrowing_cast<T, const int>(q7);
76 value += p1 * p3 + p4 * q;
90 template <typename Policy>
91 void ellint_pi_imp4(double, double p3, Policy &p4) {
93 ellint_rj_imp(x, y, z, p3, p4);
96 template <typename Policy>
97 double ellint_pi_imp5(double, double p3, double p4, Policy &p5) {
101 ellint_rj_imp(x, y, z, p, p5);
102 ellint_pi_imp4((double)0, p4, p5);
105 void boost_ellint_3f() {
107 ellint_pi_imp5((double)0, (double)0, (double)0, p4);