Public 类型 | |
typedef T | Scalar |
Public 成员函数 | |
SGMatrix () | |
SGMatrix (bool ref_counting) | |
SGMatrix (T *m, index_t nrows, index_t ncols, bool ref_counting=true) | |
SGMatrix (T *m, index_t nrows, index_t ncols, index_t offset) | |
SGMatrix (index_t nrows, index_t ncols, bool ref_counting=true) | |
SGMatrix (SGVector< T > vec) | |
SGMatrix (SGVector< T > vec, index_t nrows, index_t ncols) | |
SGMatrix (EigenMatrixXt &mat) | |
operator EigenMatrixXtMap () const | |
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 () |
T * | data () const |
uint64_t | size () const |
bool | operator== (SGMatrix< T > &other) |
bool | equals (SGMatrix< T > &other) |
void | set_const (T const_elem) |
void | zero () |
bool | is_symmetric () |
T | 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_t > | create_identity_matrix (index_t size, float32_t scale) |
template<> | |
SGMatrix< float64_t > | create_identity_matrix (index_t size, float64_t scale) |
template<> | |
SGMatrix< floatmax_t > | create_identity_matrix (index_t size, floatmax_t scale) |
template<> | |
SGMatrix< complex128_t > | create_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_t > | compute_eigenvectors (SGMatrix< float64_t > matrix) |
static double * | compute_eigenvectors (double *matrix, int n, int m) |
static 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 void | inverse (SGMatrix< float64_t > matrix) |
inverses square matrix in-place 更多... | |
static float64_t * | pinv (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 () |
typedef T Scalar |
The scalar type of the matrix
在文件 SGMatrix.h 第 40 行定义.
SGMatrix | ( | ) |
Default constructor
在文件 SGMatrix.cpp 第 30 行定义.
SGMatrix | ( | bool | ref_counting | ) |
Constructor for setting reference counting while not creating the matrix in memory (use this for static SGMatrix instances)
在文件 SGMatrix.cpp 第 36 行定义.
Constructor for setting params
在文件 SGMatrix.cpp 第 42 行定义.
Wraps a matrix around an existing memory segment with an offset
在文件 SGMatrix.h 第 53 行定义.
Constructor to create new matrix in memory
在文件 SGMatrix.cpp 第 47 行定义.
Constructor for creating a SGMatrix from a SGVector with refcounting. We do not copy the data here, just the pointer to data and the ref- count object of the SGVector (i.e. vec and this share same data and ref-count object).
This constructor assumes that the vector is the column 0 in the matrix.
vec | The SGVector |
在文件 SGMatrix.cpp 第 54 行定义.
Constructor for creating a SGMatrix from a SGVector with refcounting. We do not copy the data here, just the pointer to data and the ref- count object of the SGVector (i.e. vec and this share same data and ref-count object).
The number of elements in the matrix MUST be same as the number of elements in the vector
vec | The SGVector |
nrows | number of rows in the matrix |
ncols | number of columns in the matrix |
在文件 SGMatrix.cpp 第 63 行定义.
SGMatrix | ( | EigenMatrixXt & | mat | ) |
Wraps a matrix around the data of an Eigen3 matrix
在文件 SGMatrix.cpp 第 85 行定义.
Copy constructor
在文件 SGMatrix.cpp 第 78 行定义.
|
virtual |
Empty destructor
在文件 SGMatrix.cpp 第 100 行定义.
void center | ( | ) |
Centers the matrix, i.e. removes column/row mean from columns/rows
在文件 SGMatrix.cpp 第 346 行定义.
|
static |
Centers matrix (e.g. kernel matrix in feature space INPLACE
在文件 SGMatrix.cpp 第 352 行定义.
SGMatrix< T > clone | ( | ) |
Clone matrix
在文件 SGMatrix.cpp 第 260 行定义.
|
static |
Clone matrix
在文件 SGMatrix.cpp 第 267 行定义.
Compute eigenvalues and eigenvectors of symmetric matrix using LAPACK
matrix | symmetric matrix to compute eigenproblem. Is overwritten and contains orthonormal eigenvectors afterwards |
在文件 SGMatrix.cpp 第 895 行定义.
|
static |
Compute eigenvalues and eigenvectors of symmetric matrix
matrix | overwritten and contains n orthonormal eigenvectors |
n | |
m |
在文件 SGMatrix.cpp 第 912 行定义.
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 |
eigenvalues | contains iu-il+1 eigenvalues in ascending order (to be free'd) |
eigenvectors | contains iu-il+1 orthonormal eigenvectors of given matrix column-wise (to be free'd) |
n | dimension of matrix |
il | low index of requested eigenpairs (1<=il<=n) |
iu | high index of requested eigenpairs (1<=il<=iu<=n) |
在文件 SGMatrix.cpp 第 934 行定义.
|
protectedvirtual |
|
protectedinherited |
copy refcount
在文件 SGReferencedData.cpp 第 55 行定义.
|
static |
Create diagonal matrix
在文件 SGMatrix.cpp 第 295 行定义.
Returns the identity matrix, scaled by a factor
size | size of square identity matrix |
scale | (optional) scaling factor |
在文件 SGMatrix.cpp 第 660 行定义.
在文件 SGMatrix.cpp 第 667 行定义.
在文件 SGMatrix.cpp 第 680 行定义.
在文件 SGMatrix.cpp 第 693 行定义.
在文件 SGMatrix.cpp 第 706 行定义.
在文件 SGMatrix.cpp 第 719 行定义.
在文件 SGMatrix.cpp 第 732 行定义.
在文件 SGMatrix.cpp 第 745 行定义.
在文件 SGMatrix.cpp 第 758 行定义.
在文件 SGMatrix.cpp 第 771 行定义.
在文件 SGMatrix.cpp 第 784 行定义.
在文件 SGMatrix.cpp 第 797 行定义.
SGMatrix< floatmax_t > create_identity_matrix | ( | index_t | size, |
floatmax_t | scale | ||
) |
在文件 SGMatrix.cpp 第 810 行定义.
SGMatrix< complex128_t > create_identity_matrix | ( | index_t | size, |
complex128_t | scale | ||
) |
在文件 SGMatrix.cpp 第 823 行定义.
T* data | ( | ) | const |
The data
在文件 SGMatrix.h 第 181 行定义.
void display_matrix | ( | const char * | name = "matrix" | ) | const |
Display matrix
在文件 SGMatrix.cpp 第 394 行定义.
|
static |
Display matrix (useful for debugging)
|
static |
Display matrix
在文件 SGMatrix.cpp 第 400 行定义.
void display_matrix | ( | const bool * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 408 行定义.
void display_matrix | ( | const char * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 426 行定义.
void display_matrix | ( | const int8_t * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 444 行定义.
void display_matrix | ( | const uint8_t * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 462 行定义.
void display_matrix | ( | const int16_t * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 480 行定义.
void display_matrix | ( | const uint16_t * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 498 行定义.
void display_matrix | ( | const int32_t * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 517 行定义.
void display_matrix | ( | const uint32_t * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 535 行定义.
void display_matrix | ( | const int64_t * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 552 行定义.
void display_matrix | ( | const uint64_t * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 570 行定义.
void display_matrix | ( | const float32_t * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 588 行定义.
void display_matrix | ( | const float64_t * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 606 行定义.
void display_matrix | ( | const floatmax_t * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 624 行定义.
void display_matrix | ( | const complex128_t * | matrix, |
int32_t | rows, | ||
int32_t | cols, | ||
const char * | name, | ||
const char * | prefix | ||
) |
在文件 SGMatrix.cpp 第 642 行定义.
bool equals | ( | SGMatrix< T > & | other | ) |
Operator overload for element-wise matrix comparison. Note that only numerical data is compared
other | matrix to compare with |
在文件 SGMatrix.cpp 第 118 行定义.
|
protectedvirtual |
SGMatrix<T> get | ( | ) |
|
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_rows | rows of returned matrix |
num_cols | columns of returned matrix |
pre_allocated | optional matrix that is returned instead of new matrix. Make sure dimensions match |
在文件 SGMatrix.cpp 第 997 行定义.
|
static |
Sums up all columns of a matrix and returns the resulting columnvector
在文件 SGMatrix.cpp 第 333 行定义.
T* get_column_vector | ( | index_t | col | ) | const |
SGVector< T > get_diagonal_vector | ( | ) | const |
Get a main diagonal vector. Matrix is not required to be square.
在文件 SGMatrix.cpp 第 1099 行定义.
|
static |
Sums up all rows of a matrix and returns the resulting rowvector
在文件 SGMatrix.cpp 第 320 行定义.
|
protectedvirtual |
bool is_symmetric | ( | ) |
在文件 SGMatrix.cpp 第 170 行定义.
bool is_symmetric | ( | ) |
在文件 SGMatrix.cpp 第 187 行定义.
bool is_symmetric | ( | ) |
在文件 SGMatrix.cpp 第 204 行定义.
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
在文件 SGMatrix.cpp 第 154 行定义.
bool is_symmetric | ( | ) |
在文件 SGMatrix.cpp 第 221 行定义.
void load | ( | CFile * | loader | ) |
void load | ( | CFile * | loader | ) |
在文件 SGMatrix.cpp 第 1067 行定义.
|
static |
Computes scale* A*B, where A and B may be transposed. Asserts for matching inner dimensions.
A | matrix A |
transpose_A | optional whether A should be transposed before |
B | matrix B |
transpose_B | optional whether B should be transposed before |
scale | optional scaling factor for result |
在文件 SGMatrix.cpp 第 947 行定义.
T max_single | ( | ) |
在文件 SGMatrix.cpp 第 240 行定义.
complex128_t max_single | ( | ) |
在文件 SGMatrix.cpp 第 253 行定义.
operator EigenMatrixXtMap | ( | ) | const |
Wraps an Eigen3 matrix around the data of this matrix
在文件 SGMatrix.cpp 第 93 行定义.
bool operator== | ( | SGMatrix< T > & | other | ) |
Check for pointer identity
在文件 SGMatrix.cpp 第 106 行定义.
const T& operator[] | ( | index_t | index | ) | const |
T& operator[] | ( | index_t | index | ) |
|
static |
Return the pseudo inverse for matrix when matrix has shape (rows, cols) the pseudo inverse has (cols, rows)
在文件 SGMatrix.cpp 第 846 行定义.
|
protectedinherited |
|
inherited |
void remove_column_mean | ( | ) |
Remove column mean
在文件 SGMatrix.cpp 第 377 行定义.
void save | ( | CFile * | saver | ) |
void save | ( | CFile * | saver | ) |
在文件 SGMatrix.cpp 第 1082 行定义.
void set_const | ( | T | const_elem | ) |
Set matrix to a constant
在文件 SGMatrix.cpp 第 133 行定义.
uint64_t size | ( | ) | const |
The size
在文件 SGMatrix.h 第 187 行定义.
Compute trace
在文件 SGMatrix.cpp 第 310 行定义.
|
static |
Transpose matrix
在文件 SGMatrix.cpp 第 277 行定义.
|
protectedinherited |
decrement reference counter and deallocate object if refcount is zero before or after decrementing it
在文件 SGReferencedData.cpp 第 84 行定义.
void zero | ( | ) |
在文件 SGMatrix.cpp 第 147 行定义.
void zero | ( | ) |
fill matrix with zeros
在文件 SGMatrix.cpp 第 140 行定义.
T* matrix |
matrix
在文件 SGMatrix.h 第 374 行定义.
index_t num_cols |
number of columns of matrix
在文件 SGMatrix.h 第 378 行定义.
index_t num_rows |
number of rows of matrix
在文件 SGMatrix.h 第 376 行定义.