9 * double a, b, y, beta();
19 * beta( a, b ) = -----------.
23 * For large arguments the logarithm of the function is
24 * evaluated using lgam(), then exponentiated.
31 * arithmetic domain # trials peak rms
32 * DEC 0,30 1700 7.7e-15 1.5e-15
33 * IEEE 0,30 30000 8.1e-14 1.1e-14
37 * message condition value returned
38 * beta overflow log(beta) > MAXLOG 0.0
39 * a or b <0 integer 0.0
47 Cephes Math Library Release 2.0: April, 1987
48 Copyright 1984, 1987 by Stephen L. Moshier
49 Direct inquiries to 30 Frost Street, Cambridge, MA 02140
55 #define MAXGAM 34.84425627277176174
58 #define MAXGAM 34.84425627277176174
61 #define MAXGAM 171.624376956302725
64 #define MAXGAM 171.624376956302725
68 extern double fabs ( double );
69 extern double gamma ( double );
70 extern double lgam ( double );
71 extern double exp ( double );
72 extern double log ( double );
73 extern double floor ( double );
75 double fabs(), gamma(), lgam(), exp(), log(), floor();
77 extern double MAXLOG, MAXNUM;
101 if( fabs(y) > MAXGAM )
104 sign *= sgngam; /* keep track of the sign */
112 mtherr( "beta", OVERFLOW );
113 return( sign * MAXNUM );
115 return( sign * exp(y) );
138 /* Natural log of |beta|. Return the sign of beta in sgngam. */
161 if( fabs(y) > MAXGAM )
164 sign *= sgngam; /* keep track of the sign */
177 mtherr( "lbeta", OVERFLOW );
178 return( sign * MAXNUM );