struct quad_params { double p, q, r; /* coefficients of quadratic: p*x*x+q*x+r */ }; double quadratic(void *params, double x) { struct quad_params *qp; qp = (struct quad_params *)params; return x*(qp->p*x+qp->q) + qp->r; /* Horner's rule */ }