This program has 3 functions. f is a generic function. In this case it is a bessel function wrapper. It takes (int n, double x), to process x bessel-fully through n iterations. It returns a double. main turns f into a function pointer pF and assigns a few other variables, and feeds them into maketable. To edit the output of this program main will have to be edited. Sorry. int maketable(int nMin, int nMax, double xMin, double xMax, double dx, double (*f)(int n, double x)) maketable returns the number of values it computes, and computes for all the integers between inclusively nMin and nMax-1 the iterations of x. x in turn varies from xMin to xMax-dx, in steps of dx. pF is a function pointer which takes an int n and double x in. It also prints out all the values it computes; n varies with the Column and x varies with the row, increasing in the direction of the lower right corner. To compile, the following flags were added. -lgsl -lgslcblas To specify the libraries to link in -I/usr/include/gsl To specify where these libraries are.