Skip to content

AFNI/NIfTI Server

Sections
Personal tools
You are here: Home » AFNI » Documentation

Doxygen Source Code Documentation


Main Page   Alphabetical List   Data Structures   File List   Data Fields   Globals   Search  

cdf_07.c File Reference

#include "cdflib.h"

Go to the source code of this file.


Functions

double bfrac (double *a, double *b, double *x, double *y, double *lambda, double *eps)

Function Documentation

double bfrac double *    a,
double *    b,
double *    x,
double *    y,
double *    lambda,
double *    eps
 

Definition at line 2 of file cdf_07.c.

References a, bfrac(), brcomp(), c, p, and r.

Referenced by bfrac(), and bratio().

00010 {
00011 static double bfrac,alpha,an,anp1,beta,bn,bnp1,c,c0,c1,e,n,p,r,r0,s,t,w,yp1;
00012 /*
00013      ..
00014      .. Executable Statements ..
00015 */
00016     bfrac = brcomp(a,b,x,y);
00017     if(bfrac == 0.0e0) return bfrac;
00018     c = 1.0e0+*lambda;
00019     c0 = *b/ *a;
00020     c1 = 1.0e0+1.0e0/ *a;
00021     yp1 = *y+1.0e0;
00022     n = 0.0e0;
00023     p = 1.0e0;
00024     s = *a+1.0e0;
00025     an = 0.0e0;
00026     bn = anp1 = 1.0e0;
00027     bnp1 = c/c1;
00028     r = c1/c;
00029 S10:
00030 /*
00031         CONTINUED FRACTION CALCULATION
00032 */
00033     n += 1.0e0;
00034     t = n/ *a;
00035     w = n*(*b-n)**x;
00036     e = *a/s;
00037     alpha = p*(p+c0)*e*e*(w**x);
00038     e = (1.0e0+t)/(c1+t+t);
00039     beta = n+w/s+e*(c+n*yp1);
00040     p = 1.0e0+t;
00041     s += 2.0e0;
00042 /*
00043         UPDATE AN, BN, ANP1, AND BNP1
00044 */
00045     t = alpha*an+beta*anp1;
00046     an = anp1;
00047     anp1 = t;
00048     t = alpha*bn+beta*bnp1;
00049     bn = bnp1;
00050     bnp1 = t;
00051     r0 = r;
00052     r = anp1/bnp1;
00053     if(fabs(r-r0) <= *eps*r) goto S20;
00054 /*
00055         RESCALE AN, BN, ANP1, AND BNP1
00056 */
00057     an /= bnp1;
00058     bn /= bnp1;
00059     anp1 = r;
00060     bnp1 = 1.0e0;
00061     goto S10;
00062 S20:
00063 /*
00064                  TERMINATION
00065 */
00066     bfrac *= r;
00067     return bfrac;
00068 } /* END */
 

Powered by Plone

This site conforms to the following standards: