#ifndef _Recipes_h #define _Recipes_h /* MELTS Source Code: RCS $Log: recipes.h,v $ MELTS Source Code: RCS Revision 4.0 1999/06/18 17:29:14 ghiorso MELTS Source Code: RCS Java MELTS v 1.1.0 Initial Check in MELTS Source Code: RCS * Revision 3.6 1997/06/21 22:49:29 ghiorso * June 1997 MELTS 3.0.x release * (prior to new entropy and regression model being introduced) * * Revision 3.5 1997/05/03 20:23:08 ghiorso * *** empty log message *** * * Revision 3.4 1997/03/27 17:03:12 ghiorso * *** empty log message *** * * Revision 3.3 1996/09/24 20:33:22 ghiorso * Version modified for OSF/1 4.0 * * Revision 3.2 1995/12/09 19:26:38 ghiorso * Interface revisions for status box and graphics display * * Revision 3.1 1995/08/18 19:12:14 ghiorso * MELTS Version 3 - Initial Entry * * Revision 3.1 1995/08/18 19:12:14 ghiorso * MELTS Version 3 - Initial Entry * */ /* **++ ** FACILITY: Thread Safe Silicate Melts Crystallization Package ** ** MODULE DESCRIPTION: ** ** Include module for all function and structure declarations ** for implementation of the math library described in: ** ** Press, W.H., Flannery, B.P., Teukolsky, S.A. and Vetterling, W.T. ** (1988) Numerical Recipes in C ** Cambridge University Press, New York, 735 pages **-- */ /* *============================================================================= * Structure type definitions: */ typedef struct FCOMPLEX {double r,i;} fcomplex; typedef struct IMMENSE {unsigned long l,r;} immense; typedef struct GREAT {unsigned short l,c,r;} great; /* *============================================================================= * Function declarations: (main body of routines) */ void gaussj(double **a, int n, double **b, int m); void svbksb(double **u, double *w, double **v, int m, int n, double *b, int *e, double *x); void svdcmp(double **a, int m, int n, double *w, double **v); void nrerror(char error_text[]); double *vector(int nl, int nh); int *ivector(int nl, int nh); double *dvector(int nl, int nh); double **matrix(int nrl, int nrh, int ncl, int nch); double **dmatrix(int nrl, int nrh, int ncl, int nch); int **imatrix(int nrl, int nrh, int ncl, int nch); double **submatrix(double **a, int oldrl, int oldrh, int oldcl, int oldch, int newrl,int newcl); void free_vector(double *v, int nl, int nh); void free_ivector(int *v, int nl, int nh); void free_dvector(double *v, int nl, int nh); void free_matrix(double **m, int nrl, int nrh,int ncl, int nch); void free_dmatrix(double **m, int nrl, int nrh, int ncl, int nch); void free_imatrix(int **m, int nrl, int nrh, int ncl, int nch); void free_submatrix(double **b, int nrl, int nrh, int ncl, int nch); double **convert_matrix(double *a, int nrl, int nrh, int ncl, int nch); void free_convert_matrix(double **b, int nrl, int nrh, int ncl, int nch); double zbrent(double (*func)(double),double xx1,double xx2,double tol); #endif /* _Recipes_h */