#ifndef INTEGRATE_H_ #define INTEGRATE_H_ #include typedef float (*integrand_f)(float x, void *ctx); typedef enum { INTEG_OK = 0, INTEG_ERR_BAD_ARGS = -1, INTEG_ERR_N_EVEN_REQUIRED = -2 } integ_status_t; integ_status_t midpoint(integrand_f f, void *ctx, float a, float b, unsigned n, float *out); integ_status_t trapezoid(integrand_f f, void *ctx, float a, float b, unsigned n, float *out); integ_status_t simpson(integrand_f f, void *ctx, float a, float b, unsigned n, float *out); #endif // INTEGRATE_H_