SHOGUN  3.2.1
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
所有成员列表 | Public 成员函数 | 静态 Public 成员函数 | Public 属性 | Protected 成员函数
SGMatrix< T > 模板类 参考

详细描述

template<class T>
class shogun::SGMatrix< T >

shogun matrix

在文件 Parameter.h26 行定义.

类 SGMatrix< T > 继承关系图:
Inheritance graph
[图例]

Public 成员函数

 SGMatrix ()
 
 SGMatrix (bool ref_counting)
 
 SGMatrix (T *m, index_t nrows, index_t ncols, bool ref_counting=true)
 
 SGMatrix (index_t nrows, index_t ncols, bool ref_counting=true)
 
 SGMatrix (const SGMatrix &orig)
 
virtual ~SGMatrix ()
 
T * get_column_vector (index_t col) const
 
SGVector< T > get_row_vector (index_t row) const
 
SGVector< T > get_diagonal_vector () const
 
const T & operator() (index_t i_row, index_t i_col) const
 
const T & operator[] (index_t index) const
 
T & operator() (index_t i_row, index_t i_col)
 
T & operator[] (index_t index)
 
SGMatrix< T > get ()
 
bool operator== (SGMatrix< T > &other)
 
bool equals (SGMatrix< T > &other)
 
void set_const (T const_elem)
 
void zero ()
 
bool is_symmetric ()
 
max_single ()
 
SGMatrix< T > clone ()
 
void compute_few_eigenvectors (double *matrix_, double *&eigenvalues, double *&eigenvectors, int n, int il, int iu)
 
void center ()
 
void remove_column_mean ()
 
void display_matrix (const char *name="matrix") const
 
void load (CFile *loader)
 
void save (CFile *saver)
 
template<>
void zero ()
 
template<>
bool is_symmetric ()
 
template<>
bool is_symmetric ()
 
template<>
bool is_symmetric ()
 
template<>
bool is_symmetric ()
 
template<>
complex128_t max_single ()
 
template<>
void display_matrix (const bool *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
void display_matrix (const char *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
void display_matrix (const int8_t *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
void display_matrix (const uint8_t *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
void display_matrix (const int16_t *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
void display_matrix (const uint16_t *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
void display_matrix (const int32_t *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
void display_matrix (const uint32_t *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
void display_matrix (const int64_t *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
void display_matrix (const uint64_t *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
void display_matrix (const float32_t *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
void display_matrix (const float64_t *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
void display_matrix (const floatmax_t *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
void display_matrix (const complex128_t *matrix, int32_t rows, int32_t cols, const char *name, const char *prefix)
 
template<>
SGMatrix< char > create_identity_matrix (index_t size, char scale)
 
template<>
SGMatrix< int8_t > create_identity_matrix (index_t size, int8_t scale)
 
template<>
SGMatrix< uint8_t > create_identity_matrix (index_t size, uint8_t scale)
 
template<>
SGMatrix< bool > create_identity_matrix (index_t size, bool scale)
 
template<>
SGMatrix< int16_t > create_identity_matrix (index_t size, int16_t scale)
 
template<>
SGMatrix< uint16_t > create_identity_matrix (index_t size, uint16_t scale)
 
template<>
SGMatrix< int32_t > create_identity_matrix (index_t size, int32_t scale)
 
template<>
SGMatrix< uint32_t > create_identity_matrix (index_t size, uint32_t scale)
 
template<>
SGMatrix< int64_t > create_identity_matrix (index_t size, int64_t scale)
 
template<>
SGMatrix< uint64_t > create_identity_matrix (index_t size, uint64_t scale)
 
template<>
SGMatrix< float32_tcreate_identity_matrix (index_t size, float32_t scale)
 
template<>
SGMatrix< float64_tcreate_identity_matrix (index_t size, float64_t scale)
 
template<>
SGMatrix< floatmax_tcreate_identity_matrix (index_t size, floatmax_t scale)
 
template<>
SGMatrix< complex128_tcreate_identity_matrix (index_t size, complex128_t scale)
 
template<>
void load (CFile *loader)
 
template<>
void save (CFile *saver)
 
int32_t ref_count ()
 

静态 Public 成员函数

static T * clone_matrix (const T *matrix, int32_t nrows, int32_t ncols)
 
static void transpose_matrix (T *&matrix, int32_t &num_feat, int32_t &num_vec)
 
static void create_diagonal_matrix (T *matrix, T *v, int32_t size)
 
static SGMatrix< T > create_identity_matrix (index_t size, T scale)
 
static SGVector< float64_tcompute_eigenvectors (SGMatrix< float64_t > matrix)
 
static double * compute_eigenvectors (double *matrix, int n, int m)
 
static SGMatrix< float64_tmatrix_multiply (SGMatrix< float64_t > A, SGMatrix< float64_t > B, bool transpose_A=false, bool transpose_B=false, float64_t scale=1.0)
 
static void inverse (SGMatrix< float64_t > matrix)
 inverses square matrix in-place 更多...
 
static float64_tpinv (float64_t *matrix, int32_t rows, int32_t cols, float64_t *target=NULL)
 
static float64_t trace (float64_t *mat, int32_t cols, int32_t rows)
 
static T * get_row_sum (T *matrix, int32_t m, int32_t n)
 
static T * get_column_sum (T *matrix, int32_t m, int32_t n)
 
static void center_matrix (T *matrix, int32_t m, int32_t n)
 
static void display_matrix (const T *matrix, int32_t rows, int32_t cols, const char *name="matrix", const char *prefix="")
 
static void display_matrix (const SGMatrix< T > matrix, const char *name="matrix", const char *prefix="")
 
static SGMatrix< T > get_allocated_matrix (index_t num_rows, index_t num_cols, SGMatrix< T > pre_allocated=SGMatrix< T >())
 

Public 属性

T * matrix
 
index_t num_rows
 
index_t num_cols
 

Protected 成员函数

virtual void copy_data (const SGReferencedData &orig)
 
virtual void init_data ()
 
virtual void free_data ()
 
void copy_refcount (const SGReferencedData &orig)
 
int32_t ref ()
 
int32_t unref ()
 

构造及析构函数说明

SGMatrix ( )

default constructor

在文件 SGMatrix.cpp26 行定义.

SGMatrix ( bool  ref_counting)

constructor for setting reference counting while not creating the matrix in memory (use this for static SGMatrix instances)

在文件 SGMatrix.cpp32 行定义.

SGMatrix ( T *  m,
index_t  nrows,
index_t  ncols,
bool  ref_counting = true 
)

constructor for setting params

在文件 SGMatrix.cpp38 行定义.

SGMatrix ( index_t  nrows,
index_t  ncols,
bool  ref_counting = true 
)

constructor to create new matrix in memory

在文件 SGMatrix.cpp43 行定义.

SGMatrix ( const SGMatrix< T > &  orig)

copy constructor

在文件 SGMatrix.cpp50 行定义.

~SGMatrix ( )
virtual

empty destructor

在文件 SGMatrix.cpp56 行定义.

成员函数说明

void center ( )

Centers the matrix, i.e. removes column/row mean from columns/rows

在文件 SGMatrix.cpp302 行定义.

void center_matrix ( T *  matrix,
int32_t  m,
int32_t  n 
)
static

Centers matrix (e.g. kernel matrix in feature space INPLACE

在文件 SGMatrix.cpp308 行定义.

SGMatrix< T > clone ( )

clone matrix

在文件 SGMatrix.cpp216 行定义.

T * clone_matrix ( const T *  matrix,
int32_t  nrows,
int32_t  ncols 
)
static

clone matrix

在文件 SGMatrix.cpp223 行定义.

SGVector< float64_t > compute_eigenvectors ( SGMatrix< float64_t matrix)
static

compute eigenvalues and eigenvectors of symmetric matrix using LAPACK

参数
matrixsymmetric matrix to compute eigenproblem. Is overwritten and contains orthonormal eigenvectors afterwards
返回
eigenvalues vector with eigenvalues equal to number of rows in matrix

在文件 SGMatrix.cpp851 行定义.

double * compute_eigenvectors ( double *  matrix,
int  n,
int  m 
)
static

compute eigenvalues and eigenvectors of symmetric matrix

参数
matrixoverwritten and contains n orthonormal eigenvectors
n
m
返回
eigenvalues (array of length n, to be deleted[])

在文件 SGMatrix.cpp868 行定义.

void compute_few_eigenvectors ( double *  matrix_,
double *&  eigenvalues,
double *&  eigenvectors,
int  n,
int  il,
int  iu 
)

compute few eigenpairs of a symmetric matrix using LAPACK DSYEVR method (Relatively Robust Representations). Has at least O(n^3/3) complexity

参数
matrix_symmetric matrix
eigenvaluescontains iu-il+1 eigenvalues in ascending order (to be free'd)
eigenvectorscontains iu-il+1 orthonormal eigenvectors of given matrix column-wise (to be free'd)
ndimension of matrix
illow index of requested eigenpairs (1<=il<=n)
iuhigh index of requested eigenpairs (1<=il<=iu<=n)

在文件 SGMatrix.cpp890 行定义.

void copy_data ( const SGReferencedData orig)
protectedvirtual

overridden to copy data

实现了 SGReferencedData.

在文件 SGMatrix.cpp983 行定义.

void copy_refcount ( const SGReferencedData orig)
protectedinherited

copy refcount

在文件 SGReferencedData.cpp55 行定义.

void create_diagonal_matrix ( T *  matrix,
T *  v,
int32_t  size 
)
static

create diagonal matrix

在文件 SGMatrix.cpp251 行定义.

static SGMatrix<T> create_identity_matrix ( index_t  size,
scale 
)
static

returns the identity matrix, scaled by a factor

参数
sizesize of square identity matrix
scale(optional) scaling factor
SGMatrix< char > create_identity_matrix ( index_t  size,
char  scale 
)

在文件 SGMatrix.cpp616 行定义.

SGMatrix< int8_t > create_identity_matrix ( index_t  size,
int8_t  scale 
)

在文件 SGMatrix.cpp623 行定义.

SGMatrix< uint8_t > create_identity_matrix ( index_t  size,
uint8_t  scale 
)

在文件 SGMatrix.cpp636 行定义.

SGMatrix< bool > create_identity_matrix ( index_t  size,
bool  scale 
)

在文件 SGMatrix.cpp649 行定义.

SGMatrix< int16_t > create_identity_matrix ( index_t  size,
int16_t  scale 
)

在文件 SGMatrix.cpp662 行定义.

SGMatrix< uint16_t > create_identity_matrix ( index_t  size,
uint16_t  scale 
)

在文件 SGMatrix.cpp675 行定义.

SGMatrix< int32_t > create_identity_matrix ( index_t  size,
int32_t  scale 
)

在文件 SGMatrix.cpp688 行定义.

SGMatrix< uint32_t > create_identity_matrix ( index_t  size,
uint32_t  scale 
)

在文件 SGMatrix.cpp701 行定义.

SGMatrix< int64_t > create_identity_matrix ( index_t  size,
int64_t  scale 
)

在文件 SGMatrix.cpp714 行定义.

SGMatrix< uint64_t > create_identity_matrix ( index_t  size,
uint64_t  scale 
)

在文件 SGMatrix.cpp727 行定义.

SGMatrix< float32_t > create_identity_matrix ( index_t  size,
float32_t  scale 
)

在文件 SGMatrix.cpp740 行定义.

SGMatrix< float64_t > create_identity_matrix ( index_t  size,
float64_t  scale 
)

在文件 SGMatrix.cpp753 行定义.

SGMatrix< floatmax_t > create_identity_matrix ( index_t  size,
floatmax_t  scale 
)

在文件 SGMatrix.cpp766 行定义.

SGMatrix< complex128_t > create_identity_matrix ( index_t  size,
complex128_t  scale 
)

在文件 SGMatrix.cpp779 行定义.

void display_matrix ( const char *  name = "matrix") const

display matrix

在文件 SGMatrix.cpp350 行定义.

static void display_matrix ( const T *  matrix,
int32_t  rows,
int32_t  cols,
const char *  name = "matrix",
const char *  prefix = "" 
)
static

display matrix (useful for debugging)

void display_matrix ( const SGMatrix< T >  matrix,
const char *  name = "matrix",
const char *  prefix = "" 
)
static

display matrix

在文件 SGMatrix.cpp356 行定义.

void display_matrix ( const bool *  matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp364 行定义.

void display_matrix ( const char *  matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp382 行定义.

void display_matrix ( const int8_t *  matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp400 行定义.

void display_matrix ( const uint8_t *  matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp418 行定义.

void display_matrix ( const int16_t *  matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp436 行定义.

void display_matrix ( const uint16_t *  matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp454 行定义.

void display_matrix ( const int32_t *  matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp473 行定义.

void display_matrix ( const uint32_t *  matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp491 行定义.

void display_matrix ( const int64_t *  matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp508 行定义.

void display_matrix ( const uint64_t *  matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp526 行定义.

void display_matrix ( const float32_t matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp544 行定义.

void display_matrix ( const float64_t matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp562 行定义.

void display_matrix ( const floatmax_t matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp580 行定义.

void display_matrix ( const complex128_t matrix,
int32_t  rows,
int32_t  cols,
const char *  name,
const char *  prefix 
)

在文件 SGMatrix.cpp598 行定义.

bool equals ( SGMatrix< T > &  other)

operator overload for element-wise matrix comparison. Note that only numerical data is compared

参数
othermatrix to compare with
返回
true iff all elements are equal

在文件 SGMatrix.cpp74 行定义.

void free_data ( )
protectedvirtual

overridden to free data

实现了 SGReferencedData.

在文件 SGMatrix.cpp999 行定义.

SGMatrix<T> get ( )

get the matrix (no copying is done here)

返回
the refcount increased matrix

在文件 SGMatrix.h111 行定义.

SGMatrix< T > get_allocated_matrix ( index_t  num_rows,
index_t  num_cols,
SGMatrix< T >  pre_allocated = SGMatrix<T>() 
)
static

Simple helper method that returns a matrix with allocated memory for a given size. A pre_allocated one can optionally be specified in order to use that. Basically just for having dimension check encapsulated.

参数
num_rowsrows of returned matrix
num_colscolumns of returned matrix
pre_allocatedoptional matrix that is returned instead of new matrix. Make sure dimensions match
返回
matrix with allocated memory of specified size

在文件 SGMatrix.cpp953 行定义.

T * get_column_sum ( T *  matrix,
int32_t  m,
int32_t  n 
)
static

sums up all columns of a matrix and returns the resulting columnvector

在文件 SGMatrix.cpp289 行定义.

T* get_column_vector ( index_t  col) const

get a column vector

参数
colcolumn index

在文件 SGMatrix.h51 行定义.

SGVector< T > get_diagonal_vector ( ) const

get a main diagonal vector. Matrix is not required to be square.

返回
main diagonal vector

在文件 SGMatrix.cpp1055 行定义.

T * get_row_sum ( T *  matrix,
int32_t  m,
int32_t  n 
)
static

sums up all rows of a matrix and returns the resulting rowvector

在文件 SGMatrix.cpp276 行定义.

SGVector< T > get_row_vector ( index_t  row) const

get a row vector

参数
rowrow index
返回
row vector

在文件 SGMatrix.cpp1044 行定义.

void init_data ( )
protectedvirtual

overridden to initialize empty data

实现了 SGReferencedData.

在文件 SGMatrix.cpp991 行定义.

void inverse ( SGMatrix< float64_t matrix)
static

inverses square matrix in-place

inverses square matrix in-place

在文件 SGMatrix.cpp841 行定义.

bool is_symmetric ( )

在文件 SGMatrix.cpp126 行定义.

bool is_symmetric ( )

Checks whether the matrix is symmetric or not. The equality check is performed using '==' operators for discrete types (int, char, bool) and using CMath::fequals method for floating types (float, double, long double, std::complex<double>) with default espilon values from std::numeric_limits

返回
whether the matrix is symmetric

在文件 SGMatrix.cpp110 行定义.

bool is_symmetric ( )

在文件 SGMatrix.cpp143 行定义.

bool is_symmetric ( )

在文件 SGMatrix.cpp160 行定义.

bool is_symmetric ( )

在文件 SGMatrix.cpp177 行定义.

void load ( CFile loader)

load matrix from file

参数
loaderFile object via which to load data

在文件 SGMatrix.cpp1008 行定义.

void load ( CFile loader)

在文件 SGMatrix.cpp1023 行定义.

SGMatrix< float64_t > matrix_multiply ( SGMatrix< float64_t A,
SGMatrix< float64_t B,
bool  transpose_A = false,
bool  transpose_B = false,
float64_t  scale = 1.0 
)
static

Computes scale* A*B, where A and B may be transposed. Asserts for matching inner dimensions.

参数
Amatrix A
transpose_Aoptional whether A should be transposed before
Bmatrix B
transpose_Boptional whether B should be transposed before
scaleoptional scaling factor for result

在文件 SGMatrix.cpp903 行定义.

T max_single ( )

returns the maximum single element of the matrix

在文件 SGMatrix.cpp196 行定义.

complex128_t max_single ( )

在文件 SGMatrix.cpp209 行定义.

const T& operator() ( index_t  i_row,
index_t  i_col 
) const

operator overload for matrix read only access

参数
i_row
i_col

在文件 SGMatrix.h74 行定义.

T& operator() ( index_t  i_row,
index_t  i_col 
)

operator overload for matrix r/w access

参数
i_row
i_col

在文件 SGMatrix.h92 行定义.

bool operator== ( SGMatrix< T > &  other)

check for pointer identity

在文件 SGMatrix.cpp62 行定义.

const T& operator[] ( index_t  index) const

operator overload for matrix read only access

参数
indexto access

在文件 SGMatrix.h83 行定义.

T& operator[] ( index_t  index)

operator overload for matrix r/w access

参数
indexto access

在文件 SGMatrix.h101 行定义.

float64_t * pinv ( float64_t matrix,
int32_t  rows,
int32_t  cols,
float64_t target = NULL 
)
static

return the pseudo inverse for matrix when matrix has shape (rows, cols) the pseudo inverse has (cols, rows)

在文件 SGMatrix.cpp802 行定义.

int32_t ref ( )
protectedinherited

increase reference counter

返回
reference count

在文件 SGReferencedData.cpp64 行定义.

int32_t ref_count ( )
inherited

display reference counter

返回
reference count

在文件 SGReferencedData.cpp41 行定义.

void remove_column_mean ( )

remove column mean

在文件 SGMatrix.cpp333 行定义.

void save ( CFile saver)

save matrix to file

参数
saverFile object via which to save data

在文件 SGMatrix.cpp1029 行定义.

void save ( CFile saver)

在文件 SGMatrix.cpp1038 行定义.

void set_const ( const_elem)

set matrix to a constant

在文件 SGMatrix.cpp89 行定义.

float64_t trace ( float64_t mat,
int32_t  cols,
int32_t  rows 
)
static

compute trace

在文件 SGMatrix.cpp266 行定义.

void transpose_matrix ( T *&  matrix,
int32_t &  num_feat,
int32_t &  num_vec 
)
static

transpose matrix

在文件 SGMatrix.cpp233 行定义.

int32_t unref ( )
protectedinherited

decrement reference counter and deallocate object if refcount is zero before or after decrementing it

返回
reference count

在文件 SGReferencedData.cpp84 行定义.

void zero ( )

在文件 SGMatrix.cpp103 行定义.

void zero ( )

fill matrix with zeros

在文件 SGMatrix.cpp96 行定义.

类成员变量说明

T* matrix

matrix

在文件 SGMatrix.h296 行定义.

index_t num_cols

number of columns of matrix

在文件 SGMatrix.h300 行定义.

index_t num_rows

number of rows of matrix

在文件 SGMatrix.h298 行定义.


该类的文档由以下文件生成:

SHOGUN 机器学习工具包 - 项目文档