12
void nrerror(error_text)
17
fprintf(stderr,"Numerical Recipes run-time error...\n");
18
fprintf(stderr,"%s\n",error_text);
19
fprintf(stderr,"...now exiting to system...\n");
30
v=(float *)malloc((size_t) (nh-nl+1)*sizeof(float));
31
if (!v) nrerror("allocation failure in vector()");
40
v=(int *)malloc((size_t) (nh-nl+1)*sizeof(int));
41
if (!v) nrerror("allocation failure in ivector()");
45
double *dvector(nl,nh)
50
v=(double *)malloc((size_t) (nh-nl+1)*sizeof(double));
51
if (!v) nrerror("allocation failure in dvector()");
57
float **matrix(nrl,nrh,ncl,nch)
63
m=(float **) malloc((size_t) (nrh-nrl+1)*sizeof(float*));
64
if (!m) nrerror("allocation failure 1 in matrix()");
67
for(i=nrl;i<=nrh;i++) {
68
m[i]=(float *) malloc((size_t) (nch-ncl+1)*sizeof(float));
69
if (!m[i]) nrerror("allocation failure 2 in matrix()");
75
double **dmatrix(nrl,nrh,ncl,nch)
81
m=(double **) malloc((size_t) (nrh-nrl+1)*sizeof(double*));
82
if (!m) nrerror("allocation failure 1 in dmatrix()");
85
for(i=nrl;i<=nrh;i++) {
86
m[i]=(double *) malloc((size_t) (nch-ncl+1)*sizeof(double));
87
if (!m[i]) nrerror("allocation failure 2 in dmatrix()");
93
int **imatrix(nrl,nrh,ncl,nch)
98
m=(int **)malloc((size_t) (nrh-nrl+1)*sizeof(int*));
99
if (!m) nrerror("allocation failure 1 in imatrix()");
102
for(i=nrl;i<=nrh;i++) {
103
m[i]=(int *)malloc((size_t) (nch-ncl+1)*sizeof(int));
104
if (!m[i]) nrerror("allocation failure 2 in imatrix()");
112
float **submatrix(a,oldrl,oldrh,oldcl,oldch,newrl,newcl)
114
int oldrl,oldrh,oldcl,oldch,newrl,newcl;
119
m=(float **) malloc((size_t) (oldrh-oldrl+1)*sizeof(float*));
120
if (!m) nrerror("allocation failure in submatrix()");
123
for(i=oldrl,j=newrl;i<=oldrh;i++,j++) m[j]=a[i]+oldcl-newcl;
130
void free_vector(v,nl,nh)
134
free((char*) (v+nl));
137
void free_ivector(v,nl,nh)
140
free((char*) (v+nl));
143
void free_dvector(v,nl,nh)
147
free((char*) (v+nl));
152
void free_matrix(m,nrl,nrh,ncl,nch)
158
for(i=nrh;i>=nrl;i--) free((char*) (m[i]+ncl));
159
free((char*) (m+nrl));
162
void free_dmatrix(m,nrl,nrh,ncl,nch)
168
for(i=nrh;i>=nrl;i--) free((char*) (m[i]+ncl));
169
free((char*) (m+nrl));
172
void free_imatrix(m,nrl,nrh,ncl,nch)
178
for(i=nrh;i>=nrl;i--) free((char*) (m[i]+ncl));
179
free((char*) (m+nrl));
184
void free_submatrix(b,nrl,nrh,ncl,nch)
188
free((char*) (b+nrl));
193
float **convert_matrix(a,nrl,nrh,ncl,nch)
202
m = (float **) malloc((size_t) (nrow)*sizeof(float*));
203
if (!m) nrerror("allocation failure in convert_matrix()");
205
for(i=0,j=nrl;i<=nrow-1;i++,j++) m[j]=a+ncol*i-ncl;
211
void free_convert_matrix(b,nrl,nrh,ncl,nch)
215
free((char*) (b+nrl));