|
template<typename T > |
int | math::internal::find_largest_ev_index (T const *values, int length) |
| Returns the index of the largest eigenvalue.
|
|
template<typename T > |
void | math::internal::matrix_2x2_eigenvalues (T const *mat, T *smaller_ev, T *larger_ev) |
| Returns the larger eigenvalue of the given 2x2 matrix.
|
|
template<typename T > |
void | math::internal::matrix_apply_householder_matrix (T *mat_a, int rows, int cols, T const *house_mat, int house_length, int offset_rows, int offset_cols) |
| Applies a given householder matrix to a frame in a given matrix with offset (offset_rows, offset_cols).
|
|
template<typename T > |
void | math::internal::matrix_bidiagonalize (T const *mat_a, int rows, int cols, T *mat_u, T *mat_b, T *mat_v, T const &epsilon) |
| Bidiagonalizes a given MxN matrix, resulting in a MxN matrix U, a bidiagonal MxN matrix B and a NxN matrix V.
|
|
template<typename T > |
void | math::internal::matrix_gk_svd (T const *mat_a, int rows, int cols, T *mat_u, T *vec_s, T *mat_v, T const &epsilon) |
| Implementation of the [GK-SVD] method.
|
|
template<typename T > |
void | math::internal::matrix_gk_svd_step (int rows, int cols, T *mat_b, T *mat_q, T *mat_p, int p, int q, T const &epsilon) |
| Single step in the [GK-SVD] method.
|
|
template<typename T > |
void | math::internal::matrix_householder_matrix (T const *vector, int length, T const beta, T *matrix) |
| Given a Householder vector and beta coefficient, this function creates a transformation matrix to apply the Householder Transformation by simple matrix multiplication.
|
|
template<typename T > |
void | math::internal::matrix_householder_vector (T const *input, int length, T *vector, T *beta, T const &epsilon, T const &norm_factor) |
| Creates a householder transformation vector and the coefficient for householder matrix creation.
|
|
template<typename T > |
bool | math::internal::matrix_is_submatrix_zero_enclosed (T const *mat, int m, int k, T const &epsilon) |
| Checks whether the lower-right square sub-matrix of size KxK is enclosed by zeros (up to some epsilon) within a square matrix of size MxM.
|
|
template<typename T > |
bool | math::internal::matrix_is_superdiagonal_nonzero (T const *mat, int rows, int cols, T const &epsilon) |
| Checks whether the super-diagonal (above the diagonal) of a MxN matrix does not contain zeros up to some epsilon.
|
|
template<typename T , int M, int N> |
void | math::matrix_pseudo_inverse (Matrix< T, M, N > const &A, Matrix< T, N, M > *result, T const &epsilon=T(1e-12)) |
| Computes the Moore–Penrose pseudoinverse of matrix A using the SVD.
|
|
template<typename T > |
void | math::internal::matrix_r_svd (T const *mat_a, int rows, int cols, T *mat_u, T *vec_s, T *mat_v, T const &epsilon) |
| Implementation of the [R-SVD] method, uses [GK-SVD] as solver for the reduced problem.
|
|
template<typename T , int M, int N> |
void | math::matrix_svd (Matrix< T, M, N > const &mat_a, Matrix< T, M, N > *mat_u, Matrix< T, N, N > *mat_s, Matrix< T, N, N > *mat_v, T const &epsilon=T(1e-12)) |
| SVD for compile-time fixed-size matrices.
|
|
template<typename T > |
void | math::matrix_svd (T const *mat_a, int rows, int cols, T *mat_u, T *vec_s, T *mat_v, T const &epsilon=T(1e-12)) |
| SVD for dynamic-size matrices A of size MxN (M rows, N columns).
|
|
template<typename T > |
void | math::internal::matrix_svd_clear_super_entry (int rows, int cols, T *mat_b, T *mat_q, int row_index, T const &epsilon) |
|