Miscellaneous math routines.
class Range
Simple real-valued range.
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 vector) from each column of the matrix. double ClampNonNegative (const double d)
Forces a number to be non-negative, turning negative numbers into zero. double ClampNonPositive (const double d)
Forces a number to be non-positive, turning positive numbers into zero. double ClampRange (double value, const double rangeMin, const double rangeMax)
Clamp a number between a particular range. void Orthogonalize (const arma::mat &x, arma::mat &W)
Orthogonalize x and return the result in W, using eigendecomposition. void Orthogonalize (arma::mat &x)
Orthogonalize x in-place. int RandInt (const int hiExclusive)
Generates a uniform random integer. int RandInt (const int lo, const int hiExclusive)
Generates a uniform random integer. double RandNormal ()
Generates a normally distributed random number with mean 0 and variance 1. double RandNormal (const double mean, const double variance)
Generates a normally distributed random number with specified mean and variance. double Random ()
Generates a uniform random number between 0 and 1. double Random (const double lo, const double hi)
Generates a uniform random number in the specified range. void RandomSeed (const size_t seed)
Set the random seed used by the random functions (Random() and RandInt()). void RandVector (arma::vec &v)
Overwrites a dimension-N vector to a random vector on the unit sphere in R^N. 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 VectorPower (arma::vec &vec, const double power)
Auxiliary function to raise vector elements to a specific power. void WhitenUsingEig (const arma::mat &x, arma::mat &xWhitened, arma::mat &whiteningMatrix)
Whitens a matrix using the eigendecomposition of the covariance matrix. void WhitenUsingSVD (const arma::mat &x, arma::mat &xWhitened, arma::mat &whiteningMatrix)
Whitens a matrix using the singular value decomposition of the covariance matrix.
boost::mt19937 randGen
boost::normal_distribution randNormalDist
boost::uniform_01
< boost::mt19937, double > randUniformDist"
Miscellaneous math routines.
Creates a centered matrix, where centering is done by subtracting the sum over the columns (a column vector) from each column of the matrix.
Parameters:
x Input matrix
xCentered Matrix to write centered output into
Forces a number to be non-negative, turning negative numbers into zero. Avoids branching costs (this is a measurable improvement).
Parameters:
d Double to clamp.
Returns:
0 if d < 0, d otherwise.
Definition at line 38 of file clamp.hpp.
Referenced by ClampRange().
Forces a number to be non-positive, turning positive numbers into zero. Avoids branching costs (this is a measurable improvement).
Parameters:
d Double to clamp.
0 if d > 0, d otherwise.
Definition at line 50 of file clamp.hpp.
Referenced by ClampRange().
Clamp a number between a particular range.
Parameters:
value The number to clamp.
rangeMin The first of the range.
rangeMax The last of the range.
Returns:
max(rangeMin, min(rangeMax, d)).
Definition at line 63 of file clamp.hpp.
References ClampNonNegative(), and ClampNonPositive().
Orthogonalize x and return the result in W, using eigendecomposition. We will be using the formula $ W = x (x^T x)^{-0.5} $.
Orthogonalize x in-place. This could be sped up by a custom implementation.
Generates a uniform random integer.
Definition at line 100 of file random.hpp.
References randGen, and randUniformDist.
Referenced by mlpack::sparse_coding::DataDependentRandomInitializer::Initialize(), mlpack::amf::RandomAcolInitialization< p >::Initialize(), and mlpack::kernel::RandomSelection::Select().
Generates a uniform random integer.
Definition at line 114 of file random.hpp.
References randGen, and randUniformDist.
Generates a normally distributed random number with mean 0 and variance 1.
Definition at line 131 of file random.hpp.
References randGen, and randNormalDist.
Generates a normally distributed random number with specified mean and variance.
Parameters:
mean Mean of distribution.
variance Variance of distribution.
Definition at line 143 of file random.hpp.
References randGen, and randNormalDist.
Generates a uniform random number between 0 and 1.
Definition at line 72 of file random.hpp.
References randGen, and randUniformDist.
Generates a uniform random number in the specified range.
Definition at line 86 of file random.hpp.
References randGen, and randUniformDist.
Set the random seed used by the random functions (Random() and RandInt()). The seed is casted to a 32-bit integer before being given to the random number generator, but a size_t is taken as a parameter for API consistency.
Parameters:
seed Seed for the random number generator.
Definition at line 63 of file random.hpp.
References randGen.
Overwrites a dimension-N vector to a random vector on the unit sphere in R^N.
Remove a certain set of rows in a matrix while copying to a second matrix.
Parameters:
input Input matrix to copy.
rowsToRemove Vector containing indices of rows to be removed.
output Matrix to copy non-removed rows into.
Auxiliary function to raise vector elements to a specific power. The sign is ignored in the power operation and then re-added. Useful for eigenvalues.
Whitens a matrix using the eigendecomposition of the covariance matrix. Whitening means the covariance matrix of the result is the identity matrix.
Whitens a matrix using the singular value decomposition of the covariance matrix. Whitening means the covariance matrix of the result is the identity matrix.
Referenced by RandInt(), RandNormal(), Random(), and RandomSeed().
Referenced by RandNormal().
Referenced by RandInt(), and Random().
Generated automatically by Doxygen for MLPACK from the source code.