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

详细描述

template<class ST>
class shogun::SGMatrix< ST >

shogun matrix

在文件 DenseFeatures.h27 行定义.

类 SGMatrix< ST > 继承关系图:
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 ()
 
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<>
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 SGMatrix< float64_tcreate_centering_matrix (index_t size)
 
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< ST > &  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.cpp216 行定义.

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

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

在文件 SGMatrix.cpp222 行定义.

SGMatrix< T > clone ( )

clone matrix

在文件 SGMatrix.cpp130 行定义.

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

clone matrix

在文件 SGMatrix.cpp137 行定义.

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.cpp781 行定义.

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.cpp798 行定义.

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.cpp820 行定义.

void copy_data ( const SGReferencedData orig)
protectedvirtual

overridden to copy data

实现了 SGReferencedData.

在文件 SGMatrix.cpp906 行定义.

void copy_refcount ( const SGReferencedData orig)
protectedinherited

copy refcount

在文件 SGReferencedData.cpp58 行定义.

SGMatrix< float64_t > create_centering_matrix ( index_t  size)
static

returns the centering matrix, given by H=I-1/n*O, where I is the identity matrix, O is a square matrix of ones of size n Multiplied from the left hand side, subtracts from each column its mean. Multiplied from the right hand side, subtracts from each row its mean (so from each dimension of a SHOGUN feature)

Note that H*H=H=H^T

参数
sizesize of centering matrix

在文件 SGMatrix.cpp707 行定义.

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

create diagonal matrix

在文件 SGMatrix.cpp165 行定义.

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.cpp530 行定义.

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

在文件 SGMatrix.cpp537 行定义.

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

在文件 SGMatrix.cpp550 行定义.

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

在文件 SGMatrix.cpp563 行定义.

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

在文件 SGMatrix.cpp576 行定义.

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

在文件 SGMatrix.cpp589 行定义.

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

在文件 SGMatrix.cpp602 行定义.

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

在文件 SGMatrix.cpp615 行定义.

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

在文件 SGMatrix.cpp628 行定义.

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

在文件 SGMatrix.cpp641 行定义.

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

在文件 SGMatrix.cpp654 行定义.

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

在文件 SGMatrix.cpp667 行定义.

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

在文件 SGMatrix.cpp680 行定义.

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

在文件 SGMatrix.cpp693 行定义.

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

display matrix

在文件 SGMatrix.cpp264 行定义.

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.cpp270 行定义.

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

在文件 SGMatrix.cpp278 行定义.

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

在文件 SGMatrix.cpp296 行定义.

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

在文件 SGMatrix.cpp314 行定义.

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

在文件 SGMatrix.cpp332 行定义.

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

在文件 SGMatrix.cpp350 行定义.

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

在文件 SGMatrix.cpp368 行定义.

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

在文件 SGMatrix.cpp387 行定义.

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

在文件 SGMatrix.cpp405 行定义.

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

在文件 SGMatrix.cpp422 行定义.

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

在文件 SGMatrix.cpp440 行定义.

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

在文件 SGMatrix.cpp458 行定义.

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

在文件 SGMatrix.cpp476 行定义.

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

在文件 SGMatrix.cpp494 行定义.

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

在文件 SGMatrix.cpp512 行定义.

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.cpp922 行定义.

SGMatrix<T> get ( )

get the matrix (no copying is done here)

返回
the refcount increased matrix

在文件 SGMatrix.h112 行定义.

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.cpp876 行定义.

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.cpp203 行定义.

T* get_column_vector ( index_t  col) const

get a column vector

参数
colcolumn index

在文件 SGMatrix.h52 行定义.

SGVector< T > get_diagonal_vector ( ) const

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

返回
main diagonal vector

在文件 SGMatrix.cpp978 行定义.

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.cpp190 行定义.

SGVector< T > get_row_vector ( index_t  row) const

get a row vector

参数
rowrow index
返回
row vector

在文件 SGMatrix.cpp967 行定义.

void init_data ( )
protectedvirtual

overridden to initialize empty data

实现了 SGReferencedData.

在文件 SGMatrix.cpp914 行定义.

void inverse ( SGMatrix< float64_t matrix)
static

inverses square matrix in-place

inverses square matrix in-place

在文件 SGMatrix.cpp771 行定义.

void load ( CFile loader)

load matrix from file

参数
loaderFile object via which to load data

在文件 SGMatrix.cpp931 行定义.

void load ( CFile loader)

在文件 SGMatrix.cpp946 行定义.

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.cpp833 行定义.

complex128_t max_single ( )

在文件 SGMatrix.cpp123 行定义.

T max_single ( )

returns the maximum single element of the matrix

在文件 SGMatrix.cpp110 行定义.

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

operator overload for matrix read only access

参数
i_row
i_col

在文件 SGMatrix.h75 行定义.

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

operator overload for matrix r/w access

参数
i_row
i_col

在文件 SGMatrix.h93 行定义.

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.h84 行定义.

T& operator[] ( index_t  index)

operator overload for matrix r/w access

参数
indexto access

在文件 SGMatrix.h102 行定义.

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.cpp732 行定义.

int32_t ref ( )
protectedinherited

increase reference counter

返回
reference count

在文件 SGReferencedData.cpp67 行定义.

int32_t ref_count ( )
inherited

display reference counter

返回
reference count

在文件 SGReferencedData.cpp44 行定义.

void remove_column_mean ( )

remove column mean

在文件 SGMatrix.cpp247 行定义.

void save ( CFile saver)

save matrix to file

参数
saverFile object via which to save data

在文件 SGMatrix.cpp952 行定义.

void save ( CFile saver)

在文件 SGMatrix.cpp961 行定义.

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.cpp180 行定义.

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

transpose matrix

在文件 SGMatrix.cpp147 行定义.

int32_t unref ( )
protectedinherited

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

返回
reference count

在文件 SGReferencedData.cpp87 行定义.

void zero ( )

在文件 SGMatrix.cpp103 行定义.

void zero ( )

fill matrix with zeros

在文件 SGMatrix.cpp96 行定义.

类成员变量说明

T* matrix

matrix

在文件 SGMatrix.h299 行定义.

index_t num_cols

number of columns of matrix

在文件 SGMatrix.h303 行定义.

index_t num_rows

number of rows of matrix

在文件 SGMatrix.h301 行定义.


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

SHOGUN Machine Learning Toolbox - Documentation