-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathnrutil.h
More file actions
42 lines (39 loc) · 2.19 KB
/
nrutil.h
File metadata and controls
42 lines (39 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#ifndef _NR_UTILS_H_
#define _NR_UTILS_H_
static float sqrarg;
#define SQR(a) ((sqrarg=(a))==0.0?0.0:sqrarg*sqrarg)
#define DSQR(a) ((dsqrarg=(a))==0.0?0.0:dsqrarg*dsqrarg)
#define DMAX(a,b) (dmaxarg1=(a),dmaxarg2=(b),(dmaxarg1)>(dmaxarg2)?(dmaxarg1):(dmaxarg2))
#define DMIN(a,b) (dminarg1=(a),dminarg2=(b),(dminarg1)>(dminarg2)?(dminarg1):(dminarg2))
static float maxarg1,maxarg2;
#define FMAX(a,b) (maxarg1=(a),maxarg2=(b),(maxarg1)>(maxarg2)?(maxarg1):(maxarg2))
#define FMIN(a,b) (minarg1=(a),minarg2=(b),(minarg1)>(minarg2)?(minarg1):(minarg2))
#define LMAX(a,b) (lmaxarg1=(a),lmaxarg2=(b),(lmaxarg1)>(lmaxarg2)?(lmaxarg1):(lmaxarg2))
#define LMIN(a,b) (lminarg1=(a),lminarg2=(b),(lminarg1)>(lminarg2)?(lminarg1):(lminarg2))
#define IMAX(a,b) (imaxarg1=(a),imaxarg2=(b),(imaxarg1)>(imaxarg2)?(imaxarg1):(imaxarg2))
#define IMIN(a,b) (iminarg1=(a),iminarg2=(b),(iminarg1)>(iminarg2)?(iminarg1):(iminarg2))
#define SIGN(a,b) ((b)>0.0?fabs(a):-fabs(a))
void nrerror(char error_text[]);
float *vector(long nl,long nh);
int *ivector(long nl,long nh);
unsigned char *cvector(long nl,long nh);
unsigned long *lvector(long nl,long nh);
double *dvector(long nl,long nh);
float **matrix(long nrl,long nrh,long ncl,long nch);
double **dmatrix(long nrl,long nrh,long ncl,long nch);
int **imatrix(long nrl,long nrh,long ncl,long nch);
float **submatrix(float **a,long oldrl,long oldrh,long oldcl,long oldch,long newrl,long newcl);
float **convert_matrix(float **a,long nrl,long nrh,long ncl,long nch);
float **f3tensor(long nrl,long nrh,long ncl,long nch,long ndl,long ndh);
void free_vector(float *v,long nl, long nh);
void free_ivector(int *v,long nl, long nh);
void free_cvector(unsigned char *v,long nl, long nh);
void free_lvector(unsigned long *v,long nl, long nh);
void free_dvector(double *v,long nl, long nh);
void free_matrix(float **m,long nrl,long nrh,long ncl,long nch);
void free_dmatrix(double **m,long nrl,long nrh,long ncl,long nch);
void free_imatrix(int **m,long nrl,long nrh,long ncl,long nch);
void free_submatrix(float **b,long nrl,long nrh,long ncl,long nch);
void free_convert_matrix(float **b,long nrl,long nrh,long ncl,long nch);
void free_f3tensor(float **t,long nrl,long nrh,long ncl,long nch,long ndl, long ndh);
#endif