#define FUNC(x) ((*func)(x)) float trapzd(float (*func)(float), float a, float b, int n) { float x,tnm,sum,del; static float s; int it,j; if (n == 1) { return (s=0.5*(b-a)*(FUNC(a)+FUNC(b))); } else { for (it=1,j=1;j