Doxygen Source Code Documentation
cdf_29.c File Reference
#include "cdflib.h"Go to the source code of this file.
Defines | |
| #define | half 0.5e0 |
| #define | done 1.0e0 |
Functions | |
| void | cumf (double *f, double *dfn, double *dfd, double *cum, double *ccum) |
Define Documentation
|
|
|
|
|
|
Function Documentation
|
||||||||||||||||||||||||
|
Definition at line 2 of file cdf_29.c. References bratio(). Referenced by cdff(), and cumfnc().
00050 {
00051 #define half 0.5e0
00052 #define done 1.0e0
00053 static double dsum,prod,xx,yy;
00054 static int ierr;
00055 static double T1,T2;
00056 /*
00057 ..
00058 .. Executable Statements ..
00059 */
00060 if(!(*f <= 0.0e0)) goto S10;
00061 *cum = 0.0e0;
00062 *ccum = 1.0e0;
00063 return;
00064 S10:
00065 prod = *dfn**f;
00066 /*
00067 XX is such that the incomplete beta with parameters
00068 DFD/2 and DFN/2 evaluated at XX is 1 - CUM or CCUM
00069 YY is 1 - XX
00070 Calculate the smaller of XX and YY accurately
00071 */
00072 dsum = *dfd+prod;
00073 xx = *dfd/dsum;
00074 if(xx > half) {
00075 yy = prod/dsum;
00076 xx = done-yy;
00077 }
00078 else yy = done-xx;
00079 T1 = *dfd*half;
00080 T2 = *dfn*half;
00081 bratio(&T1,&T2,&xx,&yy,ccum,cum,&ierr);
00082 return;
00083 #undef half
00084 #undef done
00085 } /* END */
|