mlpack::math(3) Miscellaneous math routines.

SYNOPSIS


Classes


class Range
Simple real-valued range.

Functions


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.

Variables


boost::mt19937 randGen

boost::normal_distribution randNormalDist

boost::uniform_01
< boost::mt19937, double > randUniformDist"

Detailed Description

Miscellaneous math routines.

Function Documentation

void mlpack::math::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.

Parameters:

x Input matrix
xCentered Matrix to write centered output into

double mlpack::math::ClampNonNegative (const doubled) [inline]

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().

double mlpack::math::ClampNonPositive (const doubled) [inline]

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().

double mlpack::math::ClampRange (doublevalue, const doublerangeMin, const doublerangeMax) [inline]

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().

void mlpack::math::Orthogonalize (const arma::mat &x, arma::mat &W)

Orthogonalize x and return the result in W, using eigendecomposition. We will be using the formula $ W = x (x^T x)^{-0.5} $.

void mlpack::math::Orthogonalize (arma::mat &x)

Orthogonalize x in-place. This could be sped up by a custom implementation.

int mlpack::math::RandInt (const inthiExclusive) [inline]

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().

int mlpack::math::RandInt (const intlo, const inthiExclusive) [inline]

Generates a uniform random integer.

Definition at line 114 of file random.hpp.

References randGen, and randUniformDist.

double mlpack::math::RandNormal () [inline]

Generates a normally distributed random number with mean 0 and variance 1.

Definition at line 131 of file random.hpp.

References randGen, and randNormalDist.

double mlpack::math::RandNormal (const doublemean, const doublevariance) [inline]

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.

double mlpack::math::Random () [inline]

Generates a uniform random number between 0 and 1.

Definition at line 72 of file random.hpp.

References randGen, and randUniformDist.

double mlpack::math::Random (const doublelo, const doublehi) [inline]

Generates a uniform random number in the specified range.

Definition at line 86 of file random.hpp.

References randGen, and randUniformDist.

void mlpack::math::RandomSeed (const size_tseed) [inline]

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.

void mlpack::math::RandVector (arma::vec &v)

Overwrites a dimension-N vector to a random vector on the unit sphere in R^N.

void mlpack::math::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.

Parameters:

input Input matrix to copy.
rowsToRemove Vector containing indices of rows to be removed.
output Matrix to copy non-removed rows into.

void mlpack::math::VectorPower (arma::vec &vec, const doublepower)

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.

void mlpack::math::WhitenUsingEig (const arma::mat &x, arma::mat &xWhitened, arma::mat &whiteningMatrix)

Whitens a matrix using the eigendecomposition of the covariance matrix. Whitening means the covariance matrix of the result is the identity matrix.

void mlpack::math::WhitenUsingSVD (const arma::mat &x, arma::mat &xWhitened, arma::mat &whiteningMatrix)

Whitens a matrix using the singular value decomposition of the covariance matrix. Whitening means the covariance matrix of the result is the identity matrix.

Variable Documentation

boost::mt19937 mlpack::math::randGen

Referenced by RandInt(), RandNormal(), Random(), and RandomSeed().

boost::normal_distribution mlpack::math::randNormalDist

Referenced by RandNormal().

boost::uniform_01<boost::mt19937, double> mlpack::math::randUniformDist

Referenced by RandInt(), and Random().

Author

Generated automatically by Doxygen for MLPACK from the source code.