Go back to Flu Mortality


/* file mymod.c */

#include <R.h>

static double parms[3];

#define beta parms[0] #define alpha parms[1] #define N parms[2]

/* initializer */

void initmod(void (* odeparms) (int *, double *)) {

int n = 3;
odeparms(&n, parms);

}

/* Derivatives and 1 output variable */

void derivs(int *neq, double *t, double *y, double *ydot, double *yout, int *ip) {

if(ip[0] < 1) error("nout should be at least 1");

ydot[0] = -1 * beta * y[0] * y[1] / N;
ydot[1] = (beta * y[0] * y[1] / N) - (alpha * y[1]);

yout[0] = y[0];

}

/* The Jacobian matrix */

void jac(int *neq, double *t, double *y, int *ml, int *mu, double *pd, int *nrowpd, double *yout, int *ip) {

pd[0] = -1 * beta * y[1] / N;
pd[1] = beta * y[1] / N;
pd[(*nrowpd)] = -1 * beta * y[0] / N;
pd[(*nrowpd) + 1] = (beta * y[0] / N) - alpha;

}

/* END file mymod.c */