KJB
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
nr.h
Go to the documentation of this file.
1 // nr.h - stuff from Numerical Recipes in C and custom vector/matrix utilities
3 // Authors: some from "Numerical Recipes in C", some by Doron Tal
4 // Date created: January, 1994
5 
6 #ifndef _NR_H
7 #define _NR_H
8 
9 /*
10  * Kobus: We have run into trouble with 32 bit centric code in this
11  * distribution. I have changed some long's to kjb_int32's. The immediate
12  * problem is that the segmentation maps can get written out as 64 bit integers.
13 */
14 #include "l/l_sys_def.h"
15 
16 #warning "[Code police] Do not put 'using namespace' in global scope of header."
17 using namespace kjb_c;
18 
19 namespace DTLib {
20 
22  // linear algebra (mostly from numerical recipes):
24 
25  void nrerror(char error_text[]);
26  float* fvector(long nl, long nh);
27  int* ivector(long nl, long nh);
28  unsigned char *cvector(long nl, long nh);
29  kjb_uint32 *lvector(long nl, long nh);
30  double *dvector(long nl, long nh);
31  float** matrix(long nrl, long nrh, long ncl, long nch);
32  double **dmatrix(long nrl, long nrh, long ncl, long nch);
33  int** imatrix(long nrl, long nrh, long ncl, long nch);
34  float** submatrix(float** a, long oldrl, long oldrh, long oldcl,long oldch,
35  long newrl, long newcl);
36  float** convert_matrix(float* a, long nrl, long nrh, long ncl, long nch);
37  float** *f3tensor(long nrl, long nrh, long ncl,long nch,long ndl,long ndh);
38  void free_fvector(float* v, long nl, long nh);
39  void free_ivector(int* v, long nl, long nh);
40  void free_cvector(unsigned char *v, long nl, long nh);
41  void free_lvector(kjb_uint32 *v, long nl, long nh);
42  void free_dvector(double *v, long nl, long nh);
43  void free_matrix(float** m, long nrl, long nrh, long ncl, long nch);
44  void free_dmatrix(double **m, long nrl, long nrh, long ncl, long nch);
45  void free_imatrix(int** m, long nrl, long nrh, long ncl, long nch);
46  void free_submatrix(float** b, long nrl, long nrh, long ncl, long nch);
47  void free_convert_matrix(float** b, long nrl, long nrh, long ncl,long nch);
48  void free_f3tensor(float** *t, long nrl, long nrh, long ncl, long nch,
49  long ndl, long ndh);
50  void ludcmp(float** a, int n, int* indx, float* d);
51  void lubksb(float** a, int n, int* indx, float* b);
52 
54  // functions by Doron Tal:
56 
57  float* zero_fvector(long nl, long nh);
58  void mat_transpose(float** m1, float** mres, long nrl, long nrh, long ncl,
59  long nch);
60  float** diag_matrix(float diagVal, long nrl, long nrh, long ncl, long nch);
61  float** zero_matrix(long nrl, long nrh, long ncl, long nch);
62  float* mat_diag_fvector(float** mat, long nrl, long nrh,long ncl,long nch);
63  float inner(float* x, float* y, long nl, long nh);
64  void mat_vec_prod(float** A, float* x, float* y, long nrl, long nrh,
65  long ncl, long nch);
66  void mat_mat_prod(float** A, float** B, float** res, long nrl, long nrh,
67  long ncl, long nch, long ncl2, long nch2);
68  void mat_mat_sum(float** A, float** B, float** res, long nrl, long nrh,
69  long ncl, long nch);
70  void mat_mat_diff(float** A, float** B, float** res, long nrl, long nrh,
71  long ncl, long nch);
72  float ran1(long *idum);
73  float gasdev(long *idum);
74  float** rand_matrix(long nrl, long nrh, long ncl, long nch);
75  void scal_vec_prod(float s, float* v, float* res, long nl, long nh);
76  void vec_vec_prod(float* a, float* b, float* res, long nl, long nh);
77  void vec_vec_diff(float* a, float* b, float* res, long nl, long nh);
78  void vec_vec_sum(float* a, float* b, float* res, long nl, long nh);
79  void vec_vec_assign(float* a, float* b, long nl, long nh);
80  void scal_mat_prod(float s, float** m, float** res,
81  long nrl, long nrh, long ncl, long nch);
82  float** copy_mat(float** m, long nrl, long nrh, long ncl, long nch);
83  void mat_inverse(float** m, float** res, long n);
84  void trace_mat(float** m, long nrl, long nrh, long ncl, long nch);
85  void trace_vec(float* v, long nl, long nh);
86  void diag_matrix_from_vec(float* v, float** m, long nl, long nh);
87 
88 } // namespace DTLib {
89 
90 #endif /* #ifndef _NR_H */
void vec_vec_diff(float *a, float *b, float *res, long nl, long nh)
Definition: nr.cpp:588
int ** imatrix(long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:118
void lubksb(float **a, int n, int *indx, float *b)
Definition: nr.cpp:413
void free_lvector(kjb_uint32 *v, long nl, long nh)
Definition: nr.cpp:225
void nrerror(char error_text[])
Definition: nr.cpp:30
float gasdev(long *idum)
Definition: nr.cpp:331
void free_submatrix(float **b, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:258
void free_fvector(float *v, long nl, long nh)
Definition: nr.cpp:207
void diag_matrix_from_vec(float *v, float **m, long nl, long nh)
Definition: nr.cpp:664
float ** convert_matrix(float *a, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:159
void mat_mat_diff(float **A, float **B, float **res, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:548
void vec_vec_sum(float *a, float *b, float *res, long nl, long nh)
Definition: nr.cpp:596
float inner(float *x, float *y, long nl, long nh)
Definition: nr.cpp:497
void free_ivector(int *v, long nl, long nh)
Definition: nr.cpp:213
float ** diag_matrix(float diagVal, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:456
float ** copy_mat(float **m, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:622
int * ivector(long nl, long nh)
Definition: nr.cpp:44
void trace_mat(float **m, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:652
float *** f3tensor(long nrl, long nrh, long ncl, long nch, long ndl, long ndh)
Definition: nr.cpp:175
void mat_transpose(float **m1, float **mres, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:446
void scal_mat_prod(float s, float **m, float **res, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:612
void vec_vec_assign(float *a, float *b, long nl, long nh)
Definition: nr.cpp:604
unsigned char * cvector(long nl, long nh)
Definition: nr.cpp:52
kjb_uint32 * lvector(long nl, long nh)
Definition: nr.cpp:60
void free_imatrix(int **m, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:251
void mat_mat_prod(float **A, float **B, float **res, long nrl, long nrh, long ncl, long nch, long ncl2, long nch2)
Definition: nr.cpp:525
double * dvector(long nl, long nh)
Definition: nr.cpp:68
x
Definition: APPgetLargeConnectedEdges.m:100
void free_dmatrix(double **m, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:244
void trace_vec(float *v, long nl, long nh)
Definition: nr.cpp:674
double ** dmatrix(long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:97
float ** matrix(long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:76
void mat_inverse(float **m, float **res, long n)
Definition: nr.cpp:633
void free_cvector(unsigned char *v, long nl, long nh)
Definition: nr.cpp:219
float * mat_diag_fvector(float **mat, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:481
float ran1(long *idum)
Definition: nr.cpp:290
float ** zero_matrix(long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:470
float * zero_fvector(long nl, long nh)
Definition: nr.cpp:436
void mat_mat_sum(float **A, float **B, float **res, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:538
void free_matrix(float **m, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:237
void free_dvector(double *v, long nl, long nh)
Definition: nr.cpp:231
void scal_vec_prod(float s, float *v, float *res, long nl, long nh)
Definition: nr.cpp:572
float * fvector(long nl, long nh)
Definition: nr.cpp:36
void vec_vec_prod(float *a, float *b, float *res, long nl, long nh)
Definition: nr.cpp:580
void ludcmp(float **a, int n, int *indx, float *d)
Definition: nr.cpp:359
for m
Definition: APPgetLargeConnectedEdges.m:64
float ** rand_matrix(long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:558
void free_f3tensor(float ***t, long nrl, long nrh, long ncl, long nch, long ndl, long ndh)
Definition: nr.cpp:270
float ** submatrix(float **a, long oldrl, long oldrh, long oldcl, long oldch, long newrl, long newcl)
Definition: nr.cpp:139
void free_convert_matrix(float **b, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:264
void mat_vec_prod(float **A, float *x, float *y, long nrl, long nrh, long ncl, long nch)
Definition: nr.cpp:512