mlpack  3.4.2
lin_alg.hpp
Go to the documentation of this file.
1 
12 #ifndef MLPACK_CORE_MATH_LIN_ALG_HPP
13 #define MLPACK_CORE_MATH_LIN_ALG_HPP
14 
15 #include <mlpack/prereqs.hpp>
16 
20 namespace mlpack {
21 namespace math {
22 
28 void VectorPower(arma::vec& vec, const double power);
29 
37 void Center(const arma::mat& x, arma::mat& xCentered);
38 
44 void WhitenUsingSVD(const arma::mat& x,
45  arma::mat& xWhitened,
46  arma::mat& whiteningMatrix);
47 
48 
52 void RandVector(arma::vec& v);
53 
58 void Orthogonalize(const arma::mat& x, arma::mat& W);
59 
64 void Orthogonalize(arma::mat& x);
65 
73 void RemoveRows(const arma::mat& input,
74  const std::vector<size_t>& rowsToRemove,
75  arma::mat& output);
76 
86 void Svec(const arma::mat& input, arma::vec& output);
87 
88 void Svec(const arma::sp_mat& input, arma::sp_vec& output);
89 
96 void Smat(const arma::vec& input, arma::mat& output);
97 
106 inline size_t SvecIndex(size_t i, size_t j, size_t n);
107 
118 void SymKronId(const arma::mat& A, arma::mat& op);
119 
127 template <typename T>
128 T Sign(const T x)
129 {
130  return (T(0) < x) - (x < T(0));
131 }
132 
133 } // namespace math
134 } // namespace mlpack
135 
136 // Partially include implementation
137 #include "lin_alg_impl.hpp"
138 
139 #endif // MLPACK_CORE_MATH_LIN_ALG_HPP
void VectorPower(arma::vec &vec, const double power)
Auxiliary function to raise vector elements to a specific power.
void RandVector(arma::vec &v)
Overwrites a dimension-N vector to a random vector on the unit sphere in R^N.
void Orthogonalize(const arma::mat &x, arma::mat &W)
Orthogonalize x and return the result in W, using eigendecomposition.
T Sign(const T x)
Signum function.
Definition: lin_alg.hpp:128
size_t SvecIndex(size_t i, size_t j, size_t n)
Return the index such that A[i,j] == factr(i, j) * svec(A)[pos(i, j)], where factr(i,...
void Svec(const arma::mat &input, arma::vec &output)
Upper triangular representation of a symmetric matrix, scaled such that, dot(Svec(A),...
void WhitenUsingSVD(const arma::mat &x, arma::mat &xWhitened, arma::mat &whiteningMatrix)
Whitens a matrix using the singular value decomposition of the covariance matrix.
void SymKronId(const arma::mat &A, arma::mat &op)
If A is a symmetric matrix, then SymKronId returns an operator Op such that.
void RemoveRows(const arma::mat &input, const std::vector< size_t > &rowsToRemove, arma::mat &output)
Remove a certain set of rows in a matrix while copying to a second matrix.
void Smat(const arma::vec &input, arma::mat &output)
The inverse of Svec.
void Center(const arma::mat &x, arma::mat &xCentered)
Creates a centered matrix, where centering is done by subtracting the sum over the columns (a column ...
Linear algebra utility functions, generally performed on matrices or vectors.
The core includes that mlpack expects; standard C++ includes and Armadillo.