18 int sparse_stuff_initialized;
36 struct numjac_workspace{
62 int initialize_jacobian(
struct jacobian *jac,
int neq, ErrorMsg error_message);
63 int uninitialize_jacobian(
struct jacobian *jac);
64 int initialize_numjac_workspace(
struct numjac_workspace * nj_ws,
int neq, ErrorMsg error_message);
65 int uninitialize_numjac_workspace(
struct numjac_workspace * nj_ws);
66 int calc_C(
struct jacobian *jac);
67 int interp_from_dif(
double tinterp,
double tnew,
double *ynew,
double h,
double **dif,
int k,
double *yinterp,
68 double *ypinterp,
double *yppinterp,
int* index,
int neq,
int output);
69 int new_linearisation(
struct jacobian *jac,
double hinvGak,
int neq, ErrorMsg error_message);
70 int adjust_stepsize(
double **dif,
double abshdivabshlast,
int neq,
int k);
71 void eqvec(
double *datavec,
double *emptyvec,
int n);
72 int lubksb(
double **a,
int n,
int *indx,
double b[]);
73 int ludcmp(
double **a,
int n,
int *indx,
double *d,
double *vv);
74 int fzero_Newton(
int (*func)(
double *x,
78 ErrorMsg error_message),
86 ErrorMsg error_message);
88 int numjac(
int (*derivs)(
double x,
double * y,
double * dy,
void * parameters_and_workspace,ErrorMsg error_message),
89 double t,
double *y,
double *fval,
struct jacobian *jac,
struct numjac_workspace *nj_ws,
90 double thresh,
int neq,
int *nfe,
91 void * parameters_and_workspace_for_derivs, ErrorMsg error_message);
95 int (*derivs)(
double x,
double * y,
double * dy,
96 void * parameters_and_workspace, ErrorMsg error_message),
100 int * used_in_output,
102 void * parameters_and_workspace_for_derivs,
104 double minimum_variation,
105 int (*timescale_and_approximation)(
double x,
106 void * parameters_and_workspace,
108 ErrorMsg error_message),
109 double timestep_over_timescale,
112 int (*
output)(
double x,
double y[],
double dy[],
int index_x,
void * parameters_and_workspace,
113 ErrorMsg error_message),
114 int (*print_variables)(
double x,
double y[],
double dy[],
void *parameters_and_workspace,
115 ErrorMsg error_message),
116 ErrorMsg error_message);