23     long double x, 
const long double a[], 
int degree);
    31     long double f, 
g, x2, 
s;
    38     s = 0.5L - cosl(x2) * f - sinl(x2) * 
g;
    39     return (
x < 0.0L) ? -
s : 
s;
    45     long double f, 
g, x2, 
c;
    52     c = 0.5L + sinl(x2) * f - cosl(x2) * 
g;
    53     return (
x < 0.0L) ? -
c : 
c;
    58     long double sqrt_2_o_pi = 7.978845608028653558798921198687637369517e-1L;
    64     long double sqrt_2_o_pi = 7.978845608028653558798921198687637369517e-1L;
    70     return static_cast<double>(
    76     return static_cast<double>(
   144     s = 0.5L - cosl(x2) * f - sinl(x2) * 
g;
   145     return (
x < 0.0L) ? -
s : 
s;
   174     long double x2 = 
x * 
x;
   175     long double x3 = 
x * x2;
   176     long double x4 = -x2 * x2;
   177     long double xn = 1.0L;
   178     long double Sn = 1.0L;
   179     long double Sm1 = 0.0L;
   182     long double sqrt_2_o_pi = 7.978845608028653558798921198687637369517e-1L;
   185     if (
x == 0.0L) 
return 0.0L;
   187     while (fabsl(Sn - Sm1) > LDBL_EPSILON * fabsl(Sm1))
   195         term /= (
long double)(
y + 
y + 
y + 
y + 3);
   198     return x3 * sqrt_2_o_pi * Sn;
   206 static long double const sqrt_2pi = 2.506628274631000502415765284811045253006L;
   270     if (
x == 0.0L) 
return 0.5L;
   303     static long double const c[] = {
   304         +2.560134650043040830997e-1L,  -1.993005146464943284549e-1L,
   305         +4.025503636721387266117e-2L,  -4.459600454502960250729e-3L,
   306         +6.447097305145147224459e-5L,  +7.544218493763717599380e-5L,
   307         -1.580422720690700333493e-5L,  +1.755845848573471891519e-6L,
   308         -9.289769688468301734718e-8L,  -5.624033192624251079833e-9L,
   309         +1.854740406702369495830e-9L,  -2.174644768724492443378e-10L,
   310         +1.392899828133395918767e-11L, -6.989216003725983789869e-14L,
   311         -9.959396121060010838331e-14L, +1.312085140393647257714e-14L,
   312         -9.240470383522792593305e-16L, +2.472168944148817385152e-17L,
   313         +2.834615576069400293894e-18L, -4.650983461314449088349e-19L,
   314         +3.544083040732391556797e-20L};
   316     static const int degree = 
sizeof(
c) / 
sizeof(
long double) - 1;
   317     static const long double midpoint = 0.5L;
   318     static const long double scale = 0.5L;
   348     static long double const c[] = {
   349         +3.470341566046115476477e-2L,  -3.855580521778624043304e-2L,
   350         +1.420604309383996764083e-2L,  -4.037349972538938202143e-3L,
   351         +9.292478174580997778194e-4L,  -1.742730601244797978044e-4L,
   352         +2.563352976720387343201e-5L,  -2.498437524746606551732e-6L,
   353         -1.334367201897140224779e-8L,  +7.436854728157752667212e-8L,
   354         -2.059620371321272169176e-8L,  +3.753674773239250330547e-9L,
   355         -5.052913010605479996432e-10L, +4.580877371233042345794e-11L,
   356         -7.664740716178066564952e-13L, -7.200170736686941995387e-13L,
   357         +1.812701686438975518372e-13L, -2.799876487275995466163e-14L,
   358         +3.048940815174731772007e-15L, -1.936754063718089166725e-16L,
   359         -7.653673328908379651914e-18L, +4.534308864750374603371e-18L,
   360         -8.011054486030591219007e-19L, +9.374587915222218230337e-20L,
   361         -7.144943099280650363024e-21L, +1.105276695821552769144e-22L,
   362         +6.989334213887669628647e-23L};
   364     static const int degree = 
sizeof(
c) / 
sizeof(
long double) - 1;
   365     static const long double midpoint = 2.0L;
   395     static long double const c[] = {
   396         +3.684922395955255848372e-3L,  -2.624595437764014386717e-3L,
   397         +6.329162500611499391493e-4L,  -1.258275676151483358569e-4L,
   398         +2.207375763252044217165e-5L,  -3.521929664607266176132e-6L,
   399         +5.186211398012883705616e-7L,  -7.095056569102400546407e-8L,
   400         +9.030550018646936241849e-9L,  -1.066057806832232908641e-9L,
   401         +1.157128073917012957550e-10L, -1.133877461819345992066e-11L,
   402         +9.633572308791154852278e-13L, -6.336675771012312827721e-14L,
   403         +1.634407356931822107368e-15L, +3.944542177576016972249e-16L,
   404         -9.577486627424256130607e-17L, +1.428772744117447206807e-17L,
   405         -1.715342656474756703926e-18L, +1.753564314320837957805e-19L,
   406         -1.526125102356904908532e-20L, +1.070275366865736879194e-21L,
   407         -4.783978662888842165071e-23L};
   409     static const int degree = 
sizeof(
c) / 
sizeof(
long double) - 1;
   410     static const long double midpoint = 4.0L;
   440     static long double const c[] = {
   441         +1.000801217561417083840e-3L,  -4.915205279689293180607e-4L,
   442         +8.133163567827942356534e-5L,  -1.120758739236976144656e-5L,
   443         +1.384441872281356422699e-6L,  -1.586485067224130537823e-7L,
   444         +1.717840749804993618997e-8L,  -1.776373217323590289701e-9L,
   445         +1.765399783094380160549e-10L, -1.692470022450343343158e-11L,
   446         +1.568238301528778401489e-12L, -1.405356860742769958771e-13L,
   447         +1.217377701691787512346e-14L, -1.017697418261094517680e-15L,
   448         +8.186068056719295045596e-17L, -6.305153620995673221364e-18L,
   449         +4.614110100197028845266e-19L, -3.165914620159266813849e-20L,
   450         +1.986716456911232767045e-21L, -1.078418278174434671506e-22L,
   451         +4.255983404468350776788e-24L};
   453     static const int degree = 
sizeof(
c) / 
sizeof(
long double) - 1;
   454     static const long double midpoint = 6.0L;
   483 #define NUM_ASYMPTOTIC_TERMS 35   486     long double x2 = 
x * 
x;
   487     long double x4 = -4.0L * x2 * x2;
   488     long double xn = 1.0L;
   490     long double g = 0.0L;
   492     long double epsilon = LDBL_EPSILON / 4.0L;
   500         factorial *= ((
long double)j * (
long double)(j - 2));
   504         if (fabsl(term[i]) >= fabsl(term[i - 1]))
   509         if (fabsl(term[i]) <= epsilon) 
break;
   511     for (; i >= 0; i--) 
g += term[i];
   514     return g / (x2 + x2);
   582     if (
x == 0.0L) 
return 0.5L;
   658     c = 0.5L + sinl(x2) * f - cosl(x2) * 
g;
   659     return (
x < 0.0L) ? -
c : 
c;
   688     long double x2 = 
x * 
x;
   690     long double x4 = -x2 * x2;
   691     long double xn = 1.0L;
   692     long double Sn = 1.0L;
   693     long double Sm1 = 0.0L;
   696     long double sqrt_2_o_pi = 7.978845608028653558798921198687637369517e-1L;
   699     if (
x == 0.0L) 
return 0.0L;
   700     while (fabsl(Sn - Sm1) > LDBL_EPSILON * fabsl(Sm1))
   708         term /= (
long double)(
y + 
y + 
y + 
y + 1);
   711     return x * sqrt_2_o_pi * Sn;
   757     long double x, 
const long double a[], 
int degree)
   759     long double yp2 = 0.0L;
   760     long double yp1 = 0.0L;
   761     long double y = 0.0L;
   762     long double two_x = 
x + 
x;
   767     if (degree < 0) 
return 0.0L;
   771     for (k = degree; k >= 1; k--, yp2 = yp1, yp1 = 
y)
   772         y = two_x * yp1 - yp2 + 
a[k];
   776     return x * yp1 - yp2 + 
a[0];
   804     static long double const c[] = {
   805         +4.200987560240514577713e-1L,  -9.358785913634965235904e-2L,
   806         -7.642539415723373644927e-3L,  +4.958117751796130135544e-3L,
   807         -9.750236036106120253456e-4L,  +1.075201474958704192865e-4L,
   808         -4.415344769301324238886e-6L,  -7.861633919783064216022e-7L,
   809         +1.919240966215861471754e-7L,  -2.175775608982741065385e-8L,
   810         +1.296559541430849437217e-9L,  +2.207205095025162212169e-11L,
   811         -1.479219615873704298874e-11L, +1.821350127295808288614e-12L,
   812         -1.228919312990171362342e-13L, +2.227139250593818235212e-15L,
   813         +5.734729405928016301596e-16L, -8.284965573075354177016e-17L,
   814         +6.067422701530157308321e-18L, -1.994908519477689596319e-19L,
   815         -1.173365630675305693390e-20L};
   817     static const int degree = 
sizeof(
c) / 
sizeof(
long double) - 1;
   818     static const long double midpoint = 0.5L;
   819     static const long double scale = 0.5L;
   849     static long double const c[] = {
   850         +2.098677278318224971989e-1L,  -9.314234883154103266195e-2L,
   851         +1.739905936938124979297e-2L,  -2.454274824644285136137e-3L,
   852         +1.589872606981337312438e-4L,  +4.203943842506079780413e-5L,
   853         -2.018022256093216535093e-5L,  +5.125709636776428285284e-6L,
   854         -9.601813551752718650057e-7L,  +1.373989484857155846826e-7L,
   855         -1.348105546577211255591e-8L,  +2.745868700337953872632e-10L,
   856         +2.401655517097260106976e-10L, -6.678059547527685587692e-11L,
   857         +1.140562171732840809159e-11L, -1.401526517205212219089e-12L,
   858         +1.105498827380224475667e-13L, +2.040731455126809208066e-16L,
   859         -1.946040679213045143184e-15L, +4.151821375667161733612e-16L,
   860         -5.642257647205149369594e-17L, +5.266176626521504829010e-18L,
   861         -2.299025577897146333791e-19L, -2.952226367506641078731e-20L,
   862         +8.760405943193778149078e-21L};
   864     static const int degree = 
sizeof(
c) / 
sizeof(
long double) - 1;
   865     static const long double midpoint = 2.0L;
   895     static long double const c[] = {
   896         +1.025703371090289562388e-1L,  -2.569833023232301400495e-2L,
   897         +3.160592981728234288078e-3L,  -3.776110718882714758799e-4L,
   898         +4.325593433537248833341e-5L,  -4.668447489229591855730e-6L,
   899         +4.619254757356785108280e-7L,  -3.970436510433553795244e-8L,
   900         +2.535664754977344448598e-9L,  -2.108170964644819803367e-11L,
   901         -2.959172018518707683013e-11L, +6.727219944906606516055e-12L,
   902         -1.062829587519902899001e-12L, +1.402071724705287701110e-13L,
   903         -1.619154679722651005075e-14L, +1.651319588396970446858e-15L,
   904         -1.461704569438083772889e-16L, +1.053521559559583268504e-17L,
   905         -4.760946403462515858756e-19L, -1.803784084922403924313e-20L,
   906         +7.873130866418738207547e-21L};
   908     static const int degree = 
sizeof(
c) / 
sizeof(
long double) - 1;
   909     static const long double midpoint = 4.0L;
   939     static long double const c[] = {
   940         +6.738667333400589274018e-2L,  -1.128146832637904868638e-2L,
   941         +9.408843234170404670278e-4L,  -7.800074103496165011747e-5L,
   942         +6.409101169623350885527e-6L,  -5.201350558247239981834e-7L,
   943         +4.151668914650221476906e-8L,  -3.242202015335530552721e-9L,
   944         +2.460339340900396789789e-10L, -1.796823324763304661865e-11L,
   945         +1.244108496436438952425e-12L, -7.950417122987063540635e-14L,
   946         +4.419142625999150971878e-15L, -1.759082736751040110146e-16L,
   947         -1.307443936270786700760e-18L, +1.362484141039320395814e-18L,
   948         -2.055236564763877250559e-19L, +2.329142055084791308691e-20L,
   949         -2.282438671525884861970e-21L};
   951     static const int degree = 
sizeof(
c) / 
sizeof(
long double) - 1;
   952     static const long double midpoint = 6.0L;
   981 #define NUM_ASYMPTOTIC_TERMS 35   984     long double x2 = 
x * 
x;
   985     long double x4 = -4.0L * x2 * x2;
   986     long double xn = 1.0L;
   988     long double f = 0.0L;
   990     long double epsilon = LDBL_EPSILON / 4.0L;
   998         factorial *= ((
long double)j * (
long double)(j - 2));
  1002         if (fabsl(term[i]) >= fabsl(term[i - 1]))
  1007         if (fabsl(term[i]) <= epsilon) 
break;
  1010     for (; i >= 0; i--) f += term[i];
 static long double sin_Chebyshev_Expansion_0_1(long double x)
 
long double lfresnel_sin_alt(long double x)
 
static long double cos_Chebyshev_Expansion_1_3(long double x)
 
static long double xFresnel_Auxiliary_Sine_Integral(long double x)
 
static long double sin_Chebyshev_Expansion_5_7(long double x)
 
GLenum GLenum GLenum GLenum GLenum scale
 
double fresnel_cos_integral(double x) noexcept
Evaluates the integral from 0 to x of sqrt(2/pi) cos(t^2) dt. 
 
long double xFresnel_Sine_Integral(long double x)
 
static long double sin_Asymptotic_Series(long double x)
 
long double lfresnel_sin_integral(long double x) noexcept
long double version of fresnel_sin_integral 
 
long double lfresnel_cos_alt(long double x)
 
double factorial(unsigned int n)
Computes the factorial of an integer number and returns it as a double value (internally it uses loga...
 
static long double cos_Asymptotic_Series(long double x)
 
static long double cos_Chebyshev_Expansion_3_5(long double x)
 
static long double cos_Chebyshev_Expansion_5_7(long double x)
 
long double lfresnel_cos_integral(long double x) noexcept
long double version of fresnel_cos_integral 
 
double Fresnel_Auxiliary_Sine_Integral(double x)
 
double Fresnel_Sine_Integral(double x)
 
long double xFresnel_Cosine_Integral(long double x)
 
static long double Power_Series_S(long double x)
 
#define NUM_ASYMPTOTIC_TERMS
 
double fresnel_sin_integral(double x) noexcept
Evaluates the integral from 0 to x of sqrt(2/pi) sin(t^2) dt. 
 
static long double cos_Chebyshev_Expansion_0_1(long double x)
 
static long double xFresnel_Auxiliary_Cosine_Integral(long double x)
 
static long double const sqrt_2pi
 
static long double sin_Chebyshev_Expansion_1_3(long double x)
 
static long double sin_Chebyshev_Expansion_3_5(long double x)
 
static long double xChebyshev_Tn_Series(long double x, const long double a[], int degree)
 
GLubyte GLubyte GLubyte a
 
double Fresnel_Cosine_Integral(double x)
 
static long double Power_Series_C(long double x)
 
double Fresnel_Auxiliary_Cosine_Integral(double x)