mlpack
a scalable c++ machine learning library
mlpack: mlpack::math Namespace Reference

# mlpack::math Namespace Reference

Miscellaneous math routines. More...

## Classes

class  Range
Simple real-valued range. More...

## 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 lo, const int hiExclusive)
Generates a uniform random integer.
int RandInt (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, 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 double d ) ` [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 double d ) ` [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 ( double value, const double rangeMin, const double rangeMax ) ` [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 .

 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 int lo, const int hiExclusive ) ` [inline]`

Generates a uniform random integer.

Definition at line 117 of file random.hpp.

References randGen, and randUniformDist.

 int mlpack::math::RandInt ( const int hiExclusive ) ` [inline]`

Generates a uniform random integer.

Definition at line 103 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 134 of file random.hpp.

References randGen, and randNormalDist.

 double mlpack::math::RandNormal ( const double mean, const double variance ) ` [inline]`

Generates a normally distributed random number with specified mean and variance.

Parameters:
 mean Mean of distribution. variance Variance of distribution.

Definition at line 146 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 75 of file random.hpp.

References randGen, and randUniformDist.

 double mlpack::math::Random ( const double lo, const double hi ) ` [inline]`

Generates a uniform random number in the specified range.

Definition at line 89 of file random.hpp.

References randGen, and randUniformDist.

 void mlpack::math::RandomSeed ( const size_t seed ) ` [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 66 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, double power )

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
 boost::normal_distribution mlpack::math::randNormalDist

Referenced by RandNormal().

 boost::uniform_01 mlpack::math::randUniformDist

Referenced by RandInt(), and Random().