gft_matrix.h
Go to the documentation of this file.
1 
2 #ifndef _GFT_MATRIX_H_
3 #define _GFT_MATRIX_H_
4 
5 #include "gft_common.h"
6 #include "gft_image32.h"
7 
8 namespace gft{
9  namespace Matrix{
10 
16  typedef struct _matrix {
17  float **val;
18  int ncols,nrows;
19  } Matrix;
20 
21 
22  Matrix *Create(int ncols,int nrows);
23  void Destroy(Matrix **mat);
24  Matrix *Clone(Matrix *mat);
25  void Copy(Matrix *dest,
26  Matrix *src);
27 
28  Matrix *Invert(Matrix *A);
29  Matrix *Transpose(Matrix *A);
30 
31  Matrix *Mult(Matrix *A,
32  Matrix *B);
33  Matrix *MultByScalar(Matrix *A, float k);
34 
35  Matrix *Sub(Matrix *A,
36  Matrix *B);
37  Matrix *Add(Matrix *A,
38  Matrix *B);
39 
40  float GetTrace(Matrix *M);
41 
42  void Print(Matrix *M);
43  void PrintDimension(Matrix *M);
44 
45  float ComputeDistanceL2(Matrix *Y,
46  Matrix *X);
47 
48  void Fill(Matrix *M, float value);
49  void ChangeValue(Matrix *M,
50  float old_value,
51  float new_value);
52 
53  bool IsValidEntry(Matrix *M,
54  int i, int j);
55 
57 
58  Matrix *Read(char *filename);
59  void Write(Matrix *M,
60  char *filename);
61 
62  float GetMinimumValue(Matrix *M);
63  float GetMaximumValue(Matrix *M);
64 
66  float lower,
67  float higher);
68 
72  Matrix* RotationMatrix3(int axis,
73  float th);
74 
75  Matrix* TranslationMatrix3(float dx, float dy, float dz);
76 
78 
79  } //end Matrix namespace
80 } //end gft namespace
81 
82 
83 #endif
84 
85 
Matrix * Read(char *filename)
Definition: gft_matrix.cpp:252
void ChangeValue(Matrix *M, float old_value, float new_value)
Definition: gft_matrix.cpp:355
int ncols
Definition: gft_matrix.h:18
Matrix * RotationMatrix3(int axis, float th)
Definition: gft_matrix.cpp:398
Definition: gft_common.h:106
Matrix * Add(Matrix *A, Matrix *B)
Definition: gft_matrix.cpp:202
Matrix * Sub(Matrix *A, Matrix *B)
Definition: gft_matrix.cpp:184
Definition: gft_image32.h:14
Matrix * TranslationMatrix3(float dx, float dy, float dz)
Definition: gft_matrix.cpp:427
float GetMaximumValue(Matrix *M)
Definition: gft_matrix.cpp:321
bool IsValidEntry(Matrix *M, int i, int j)
Definition: gft_matrix.cpp:311
float ** val
Definition: gft_matrix.h:17
void PrintDimension(Matrix *M)
Definition: gft_matrix.cpp:82
int nrows
Definition: gft_matrix.h:18
Matrix * Create(int ncols, int nrows)
Definition: gft_matrix.cpp:7
Matrix * Invert(Matrix *A)
Definition: gft_matrix.cpp:87
Matrix * Clone(Matrix *mat)
Definition: gft_matrix.cpp:47
Header file for common definitions and function prototypes.
void Copy(Matrix *dest, Matrix *src)
Definition: gft_matrix.cpp:57
void Print(Matrix *M)
Definition: gft_matrix.cpp:69
Image32::Image32 * Threshold(Matrix *M, float lower, float higher)
Definition: gft_matrix.cpp:383
float ComputeDistanceL2(Matrix *Y, Matrix *X)
Definition: gft_matrix.cpp:235
Definition: gft_matrix.h:16
struct gft::Matrix::_matrix Matrix
Image32::Image32 * Convert2Image(Matrix *M)
Definition: gft_matrix.cpp:367
Matrix * TransformVoxel(Matrix *m, gft::Voxel v)
Definition: gft_matrix.cpp:438
Matrix * Transpose(Matrix *A)
Definition: gft_matrix.cpp:221
Matrix * Mult(Matrix *A, Matrix *B)
Definition: gft_matrix.cpp:148
float GetTrace(Matrix *M)
Definition: gft_matrix.cpp:134
void Destroy(Matrix **mat)
Definition: gft_matrix.cpp:31
float GetMinimumValue(Matrix *M)
Definition: gft_matrix.cpp:334
void Fill(Matrix *M, float value)
Definition: gft_matrix.cpp:347
Matrix * MultByScalar(Matrix *A, float k)
Definition: gft_matrix.cpp:169
void Write(Matrix *M, char *filename)
Definition: gft_matrix.cpp:287