/[gsl]/gsl/cdf/tdist.c
ViewVC logotype

Diff of /gsl/cdf/tdist.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.2.7 by bjg, Tue Jul 15 17:56:47 2003 UTC revision 1.1.2.8 by bjg, Fri Jul 18 15:54:03 2003 UTC
# Line 126  cornish_fisher (double t, double n) Line 126  cornish_fisher (double t, double n)
126    y = (y / b) + p1;    y = (y / b) + p1;
127    y = (y / b) + p0;    y = (y / b) + p0;
128    
129    if (t < 0) y *= -1;    if (t < 0)
130        y *= -1;
131    
132    return y;    return y;
133  }  }
134    
135  #if 0  #if 0
136  /*  /*
137   * Series approximation for t > 4.0. This needs to be fixed;   * Series approximation for t > 4.0. This needs to be fixed;
138   * it shouldn't subtract the result from 1.0. A better way is   * it shouldn't subtract the result from 1.0. A better way is
# Line 189  gsl_cdf_tdist_P (const double x, const d Line 190  gsl_cdf_tdist_P (const double x, const d
190        return P;        return P;
191      }      }
192    
193   if (x2 < nu)    if (x2 < nu)
194      {      {
195        double u = x2 / nu;        double u = x2 / nu;
196        double eps = u / (1 + u);        double eps = u / (1 + u);
197          
198        if (x >= 0)        if (x >= 0)
199          {          {
200            P = beta_inc_AXPY (0.5, 0.5, 0.5, nu / 2.0, eps);            P = beta_inc_AXPY (0.5, 0.5, 0.5, nu / 2.0, eps);
201          }          }
202        else        else
203          {          {
204            P = beta_inc_AXPY (-0.5, 0.5, 0.5, nu / 2.0, eps);            P = beta_inc_AXPY (-0.5, 0.5, 0.5, nu / 2.0, eps);
205          }          }
206      }      }
207    else    else
208      {      {
209        double v = nu / (x * x);        double v = nu / (x * x);
210        double eps = v / (1 + v);        double eps = v / (1 + v);
211          
212        if (x >= 0)        if (x >= 0)
213          {          {
214            P = beta_inc_AXPY (-0.5, 1.0, nu / 2.0, 0.5, eps);            P = beta_inc_AXPY (-0.5, 1.0, nu / 2.0, 0.5, eps);
215          }          }
216        else        else
217          {          {
218            P = beta_inc_AXPY (0.5, 0.0,  nu / 2.0, 0.5, eps);            P = beta_inc_AXPY (0.5, 0.0, nu / 2.0, 0.5, eps);
219          }          }
220      }      }
221    
222    return P;    return P;
# Line 241  gsl_cdf_tdist_Q (const double x, const d Line 242  gsl_cdf_tdist_Q (const double x, const d
242      {      {
243        double u = x2 / nu;        double u = x2 / nu;
244        double eps = u / (1 + u);        double eps = u / (1 + u);
245          
246        if (x >= 0)        if (x >= 0)
247          {          {
248            Q = beta_inc_AXPY (-0.5, 0.5, 0.5, nu / 2.0, eps);            Q = beta_inc_AXPY (-0.5, 0.5, 0.5, nu / 2.0, eps);
249          }          }
250        else        else
251          {          {
252            Q = beta_inc_AXPY (0.5, 0.5, 0.5, nu / 2.0, eps);            Q = beta_inc_AXPY (0.5, 0.5, 0.5, nu / 2.0, eps);
253          }          }
254      }      }
255    else    else
256      {      {
257        double v = nu / (x * x);        double v = nu / (x * x);
258        double eps = v / (1 + v);        double eps = v / (1 + v);
259          
260        if (x >= 0)        if (x >= 0)
261          {          {
262            Q = beta_inc_AXPY (0.5, 0.0, nu / 2.0, 0.5, eps);            Q = beta_inc_AXPY (0.5, 0.0, nu / 2.0, 0.5, eps);
263          }          }
264        else        else
265          {          {
266            Q = beta_inc_AXPY (-0.5, 1.0,  nu / 2.0, 0.5, eps);            Q = beta_inc_AXPY (-0.5, 1.0, nu / 2.0, 0.5, eps);
267          }          }
268      }      }
269    
270    return Q;    return Q;
271  }  }
   
   
   

Legend:
Removed from v.1.1.2.7  
changed lines
  Added in v.1.1.2.8

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26