~ubuntu-branches/ubuntu/karmic/python-scipy/karmic

« back to all changes in this revision

Viewing changes to Lib/special/cephes/gdtr.c

  • Committer: Bazaar Package Importer
  • Author(s): Daniel T. Chen (new)
  • Date: 2005-03-16 02:15:29 UTC
  • Revision ID: james.westby@ubuntu.com-20050316021529-xrjlowsejs0cijig
Tags: upstream-0.3.2
ImportĀ upstreamĀ versionĀ 0.3.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*                                                      gdtr.c
 
2
 *
 
3
 *      Gamma distribution function
 
4
 *
 
5
 *
 
6
 *
 
7
 * SYNOPSIS:
 
8
 *
 
9
 * double a, b, x, y, gdtr();
 
10
 *
 
11
 * y = gdtr( a, b, x );
 
12
 *
 
13
 *
 
14
 *
 
15
 * DESCRIPTION:
 
16
 *
 
17
 * Returns the integral from zero to x of the Gamma probability
 
18
 * density function:
 
19
 *
 
20
 *
 
21
 *                x
 
22
 *        b       -
 
23
 *       a       | |   b-1  -at
 
24
 * y =  -----    |    t    e    dt
 
25
 *       -     | |
 
26
 *      | (b)   -
 
27
 *               0
 
28
 *
 
29
 *  The incomplete Gamma integral is used, according to the
 
30
 * relation
 
31
 *
 
32
 * y = igam( b, ax ).
 
33
 *
 
34
 *
 
35
 * ACCURACY:
 
36
 *
 
37
 * See igam().
 
38
 *
 
39
 * ERROR MESSAGES:
 
40
 *
 
41
 *   message         condition      value returned
 
42
 * gdtr domain         x < 0            0.0
 
43
 *
 
44
 */
 
45
/*                                                     gdtrc.c
 
46
 *
 
47
 *      Complemented Gamma distribution function
 
48
 *
 
49
 *
 
50
 *
 
51
 * SYNOPSIS:
 
52
 *
 
53
 * double a, b, x, y, gdtrc();
 
54
 *
 
55
 * y = gdtrc( a, b, x );
 
56
 *
 
57
 *
 
58
 *
 
59
 * DESCRIPTION:
 
60
 *
 
61
 * Returns the integral from x to infinity of the Gamma
 
62
 * probability density function:
 
63
 *
 
64
 *
 
65
 *               inf.
 
66
 *        b       -
 
67
 *       a       | |   b-1  -at
 
68
 * y =  -----    |    t    e    dt
 
69
 *       -     | |
 
70
 *      | (b)   -
 
71
 *               x
 
72
 *
 
73
 *  The incomplete Gamma integral is used, according to the
 
74
 * relation
 
75
 *
 
76
 * y = igamc( b, ax ).
 
77
 *
 
78
 *
 
79
 * ACCURACY:
 
80
 *
 
81
 * See igamc().
 
82
 *
 
83
 * ERROR MESSAGES:
 
84
 *
 
85
 *   message         condition      value returned
 
86
 * gdtrc domain         x < 0            0.0
 
87
 *
 
88
 */
 
89
 
 
90
/*                                                      gdtr()  */
 
91
 
 
92
 
 
93
/*
 
94
Cephes Math Library Release 2.3:  March,1995
 
95
Copyright 1984, 1987, 1995 by Stephen L. Moshier
 
96
*/
 
97
 
 
98
#include "mconf.h"
 
99
#ifndef ANSIPROT
 
100
double igam(), igamc();
 
101
#else
 
102
double gdtri(double,double,double);
 
103
#endif
 
104
 
 
105
extern double NAN;
 
106
 
 
107
double gdtr( a, b, x )
 
108
double a, b, x;
 
109
{
 
110
 
 
111
if( x < 0.0 )
 
112
        {
 
113
        mtherr( "gdtr", DOMAIN );
 
114
        return( NAN );
 
115
        }
 
116
return(  igam( b, a * x )  );
 
117
}
 
118
 
 
119
 
 
120
double gdtrc( a, b, x )
 
121
double a, b, x;
 
122
{
 
123
 
 
124
if( x < 0.0 )
 
125
        {
 
126
        mtherr( "gdtrc", DOMAIN );
 
127
        return( NAN );
 
128
        }
 
129
return(  igamc( b, a * x )  );
 
130
}
 
131
 
 
132
 
 
133
double gdtri( a, b, y)
 
134
double a, b, y;
 
135
{
 
136
 
 
137
if ((y < 0.0) || (y > 1.0) || (a <= 0.0) || (b < 0.0))
 
138
  {
 
139
    mtherr("gdtri", DOMAIN);
 
140
    return( NAN );
 
141
  }
 
142
 
 
143
return ( igami (b, 1.0-y) / a);
 
144
}