Example #1
0
real gdisk(real r)
{
  real x1 = 0.5 * alpha1 * r, x2 = 0.5 * alpha2 * r, a1, a2;;

  if (epsilon1 >= 0.0)				/* compute smoothed accel.  */
    a1 = - mdisk1 * rqbe(alpha1) *
      simpson(dgdisk, r, alpha1, epsilon1, 0, KMAX*alpha1, STEP*alpha1);
  else						/* use exact expression     */
    a1 = - mdisk1 * rqbe(alpha1) *
      r * (bessel_I0(x1) * bessel_K0(x1) - bessel_I1(x1) * bessel_K1(x1)) / 2;
  if (epsilon2 >= 0.0)
    a2 = - mdisk2 * rqbe(alpha2) *
      simpson(dgdisk, r, alpha2, epsilon2, 0, KMAX*alpha2, STEP*alpha2);
  else
    a2 = - mdisk2 * rqbe(alpha2) *
      r * (bessel_I0(x2) * bessel_K0(x2) - bessel_I1(x2) * bessel_K1(x2)) / 2;
  return (a1 + a2);	       
}
Example #2
0
void test_expi()
{
  double b, r1, r2, r3, r4;
  int n;

  n = 1;
  for(b=1e-3; b<50; b+=0.01){
    r1 = bessel_K0(b);
    r2 = gsl_sf_bessel_K0(b);
    //r3 = bessi1(b);
    printf("%5.3lf %12.10lf %12.10lf %12.10lf\n", b, r1, r2, r3);
  }  
}