/* Steven Andrews, 1/28/97 *//* Header for dynsys.c *//* See documentation called dynsys doc *//* Copyright 2003 by Steven Andrews.  Permission is granted   for non-commercial use of and modifications to the code. */#ifndef __dynsys_h__#define __dynsys_h__typedef struct phpt	{	int sp;	float *sa;	int fp;	int fs;	float *fa; } *phptr;#define MaxIntPar 10int ODEeuler(void (*eqm)(float *,float *,float *),float *k,int p,float *u,float tf,float dt,int (*trackfn)(float,int,float *));int ODErk4(void (*eqm)(float *,float *,float *),float *k,int p,float *u,float tf,float dt,int (*trackfn)(float,int,float *));int ODErkas(void (*eqm)(float *,float *,float *),float *k,int p,float *u,float tf,float dt,int (*trackfn)(float,int,float *));void EQMsho(float *u,float *k,float *dudt);void EQMlorenz(float *u,float *k,float *dudt);phptr phptalloc(int sp,int fp,int fs);void phptfree(phptr u);int phptsave(phptr u,char *fnames,char *fnamef);phptr phptload(char *fnames,char *fnamef);int ODEFeuler(void (*eqm)(phptr,void *,phptr),void *k,phptr u,float *Dt,float intpar[],int (*trackfn)(float,phptr,void *),void *trackptr);int ODEFrk4(void (*eqm)(phptr,void *,phptr),void *k,phptr u,float *Dt,float intpar[],int (*trackfn)(float,phptr,void *),void *trackptr);int ODEFrkas(void (*eqm)(phptr,void *,phptr),void *k,phptr u,float *Dt,float intpar[],int (*trackfn)(float,phptr,void *),void *trackptr);void EQMFzero(phptr u,void *k,phptr dudt);void EQMFsho(phptr u,void *k,phptr dudt);void EQMFdiff(phptr u,void *k,phptr dudt);void EQMFwave(phptr u,void *k,phptr dudt);int TKFticker(float t,phptr u,void *tkptr);int TKFtimeplot(float t,phptr u,void *tkptr);int TKFshowfield(float t,phptr u,void *tkptr);/* start of 2004 version */typedef struct odestruct {	int dim;	int order;	float *dtptr;	float dtsugg;	float dtmax;	float eps;	void *systemptr;	int (*eqm)(void *);	float **state0;	float **state1;	float *scale;	float *k1,*k2,*k3,*k4; } *odeptr;odeptr allocodestruct(int dim,int order,float *dtptr,void *systemptr,int (*eqm)(void *));void freeodestruct(odeptr ode);int runodestruct(odeptr ode);int odestructexample(void);/* end of 2004 version */#endif
