#include<math.h>
#include<stdio.h>
struct function {double (*f)(double,void*); void* params;};
double sinkx(double x, void* params){
	double  k=*(double*)params;
	return sin(k*x);
}
void tabulate(struct function (*f), double a, double dx, double b);

int main(){
	double k=1,a=0,dx=0.1,b=2*M_PI+dx;
	struct function foo;
	foo.f=&sinkx;
	foo.params=(void*)&k;
	k=1; tabulate(&foo,a,dx,b); printf("\n");
	k=2; tabulate(&foo,a,dx,b); printf("\n");
	k=3; tabulate(&foo,a,dx,b); printf("\n");
return 0;
}
