static long double const valOneHalf = 0.5e0L; static long double const val16 = 16.0e0L; static long double const val35 = 35.0e0L; static long double const val273 = 273.0e0L; static long double const val715 = 715.0e0L; static long double const val120 = 120.0e0L; static long double const val1820 = 1820.0e0L; static long double const val8008 = 8008.0e0L; static long double const val12870 = 12870.0e0L; long double SqrtAB15(long double x, long double c) { long double x2 = x * x; long double x4 = x2 * x2; long double x6 = x4 * x2; long double x8 = x4 * x4; long double x10 = x8 * x2; long double x12 = x8 * x4; long double x14 = x8 * x6; long double x16 = x8 * x8; long double c2 = c * c; long double c3 = c2 * c; long double c4 = c2 * c2; long double c5 = c4 * c; long double c6 = c4 * c2; long double c7 = c4 * c3; long double c8 = c4 * c4; long double ans1 = val16 * x * c * (val35 * (x12 * c + x2 * c6) + val273 * (x10 * c2 + x4 * c5) + val715 * (x8 * c3 + x6 * c4) + c7 + x14) / (val120 * (x14 * c + x2 * c7) + val1820 * (x12 * c2 + x4 * c6) + val8008 * (x10 * c3 + x6 * c5) + val12870 * x8 * c4 + x16 + c8); long double ans0 = c / ans1; return (ans0 + ans1) * valOneHalf; } #ifdef TEST #include int main(void) { printf("sqrt of %Lf is approximately %Lf\n", 2.0e0L, SqrtAB15(1.0e0L, 2.0e0L)); return 0; } #endif