2.3 GSL

素晴らしいことにソースコードが公開されている GNU Scientific Library1 (GSL) の中にも Bessel 関数 がある。C, C++, Fortran から容易に利用できるわけで嬉しい。 ライセンスが気にならない人ならばこれで決まりか。


/*
 *
 * gcc -I/usr/local/include  -L/usr/local/lib -lgsl -lgslcblas testbessel.c -o testbessel
 */

#include <stdio.h>
#include <gsl/gsl_specfunc.h>

/*
 * gsl_sf_bessel_J0()
 * gsl_sf_bessel_J1()
 * gsl_sf_bessel_Jn()
 * gsl_sf_bessel_I0()
 * gsl_sf_bessel_I1()
 * gsl_sf_bessel_In()
 */

int main()
{
  int i,n,nu,MaxNu = 3;
  double x,dx,xmin,xmax;
  n = 100;
  xmin = 0.0; xmax = 10.0;
  dx = (xmax - xmin) / n;
  for (i = 0; i <= n; i++) {
    x = xmin + i * dx;
    printf("%f ", x);
    for (nu = 0; nu <= MaxNu; nu++)
      printf("%f ", gsl_sf_bessel_In(nu, x));
    printf("\n");
  }
  return 0;
}

桂田 祐史
2017-11-20