nr.h
Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 
00025 #ifndef _NR_H_
00026 #define _NR_H_
00027 
00028 static eusfloat_t sqrarg;
00029 #define SQR(a) ((sqrarg=(a)) == 0.0 ? 0.0 : sqrarg*sqrarg)
00030 
00031 static eusfloat_t maxarg1, maxarg2;
00032 #define FMAX(a,b) (maxarg1=(a),maxarg2=(b),(maxarg1) > (maxarg2) ? (maxarg1) : (maxarg2))
00033 
00034 static int iminarg1, iminarg2;
00035 #define IMIN(a,b) (iminarg1=(a),iminarg2=(b),(iminarg1) < (iminarg2) ? (iminarg1) : (iminarg2))
00036 
00037 #define SIGN(a,b) ((b) >= 0.0 ? fabs(a) : -fabs(a))
00038 #define SWAP(g,h) {y=(g);(g)=(h);(h)=y;}
00039 
00040 #define NR_END 1
00041 #define FREE_ARG char*
00042 
00043 void nrerror(char error_text[]);
00044 eusfloat_t *nr_vector(int nl, int nh);
00045 eusfloat_t **nr_matrix(int nrl, int nrh, int ncl, int nch);
00046 void free_nr_vector(eusfloat_t *v, int nl, int nh);
00047 void free_nr_matrix(eusfloat_t **m, int nrl, int nrh, int ncl, int nch);
00048 
00049 #define TINY 1.0e-20
00050 void lubksb(eusfloat_t **a, int n, int *indx, eusfloat_t b[]);
00051 int  ludcmp(eusfloat_t **a, int n, int *indx, eusfloat_t *d);
00052 
00053 int svdsolve(eusfloat_t **a, int m, int n, eusfloat_t *b, eusfloat_t *x);
00054 void svbksb(eusfloat_t **u, eusfloat_t *w, eusfloat_t **v, int m, int n, eusfloat_t *b, eusfloat_t *x);
00055 int svdcmp(eusfloat_t **a, int m, int n, eusfloat_t *w, eusfloat_t **v);
00056 
00057 eusfloat_t pythag(eusfloat_t a, eusfloat_t b);
00058 
00059 static copymat(dest,src,size)
00060 pointer dest,src;
00061 register int size;
00062 { register int i;
00063   register eusfloat_t *rv=dest->c.ary.entity->c.fvec.fv;
00064   register eusfloat_t *mv=src->c.ary.entity->c.fvec.fv;
00065   size=size*size;
00066   for (i=0; i<size; i++) rv[i]=mv[i]; }
00067 
00068 #endif //_NR_H_


jskeus
Author(s): JSK Alumnis
autogenerated on Tue Mar 7 2017 04:04:34