MLPACK  1.0.11
Classes | Functions | Variables
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. More...
 
double ClampNonNegative (const double d)
 Forces a number to be non-negative, turning negative numbers into zero. More...
 
double ClampNonPositive (const double d)
 Forces a number to be non-positive, turning positive numbers into zero. More...
 
double ClampRange (double value, const double rangeMin, const double rangeMax)
 Clamp a number between a particular range. More...
 
void Orthogonalize (const arma::mat &x, arma::mat &W)
 Orthogonalize x and return the result in W, using eigendecomposition. More...
 
void Orthogonalize (arma::mat &x)
 Orthogonalize x in-place. More...
 
int RandInt (const int hiExclusive)
 Generates a uniform random integer. More...
 
int RandInt (const int lo, const int hiExclusive)
 Generates a uniform random integer. More...
 
double RandNormal ()
 Generates a normally distributed random number with mean 0 and variance 1. More...
 
double RandNormal (const double mean, const double variance)
 Generates a normally distributed random number with specified mean and variance. More...
 
double Random ()
 Generates a uniform random number between 0 and 1. More...
 
double Random (const double lo, const double hi)
 Generates a uniform random number in the specified range. More...
 
void RandomSeed (const size_t seed)
 Set the random seed used by the random functions (Random() and RandInt()). More...
 
void RandVector (arma::vec &v)
 Overwrites a dimension-N vector to a random vector on the unit sphere in R^N. More...
 
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. More...
 
void VectorPower (arma::vec &vec, const double power)
 Auxiliary function to raise vector elements to a specific power. More...
 
void WhitenUsingEig (const arma::mat &x, arma::mat &xWhitened, arma::mat &whiteningMatrix)
 Whitens a matrix using the eigendecomposition of the covariance matrix. More...
 
void WhitenUsingSVD (const arma::mat &x, arma::mat &xWhitened, arma::mat &whiteningMatrix)
 Whitens a matrix using the singular value decomposition of the covariance matrix. More...
 

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
xInput matrix
xCenteredMatrix 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
dDouble 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
dDouble to clamp.
0if 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
valueThe number to clamp.
rangeMinThe first of the range.
rangeMaxThe 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 int  hiExclusive)
inline
int mlpack::math::RandInt ( const int  lo,
const int  hiExclusive 
)
inline

Generates a uniform random integer.

Definition at line 120 of file random.hpp.

References randUniformDist.

double mlpack::math::RandNormal ( )
inline

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

Definition at line 137 of file random.hpp.

References randNormalDist.

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

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

Parameters
meanMean of distribution.
varianceVariance of distribution.

Definition at line 149 of file random.hpp.

References randNormalDist.

double mlpack::math::Random ( )
inline

Generates a uniform random number between 0 and 1.

Definition at line 78 of file random.hpp.

References randUniformDist.

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

Generates a uniform random number in the specified range.

Definition at line 92 of file random.hpp.

References 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
seedSeed for the random number generator.

Definition at line 63 of file random.hpp.

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
inputInput matrix to copy.
rowsToRemoveVector containing indices of rows to be removed.
outputMatrix to copy non-removed rows into.
void mlpack::math::VectorPower ( arma::vec &  vec,
const 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<boost::mt19937, double> mlpack::math::randUniformDist

Referenced by RandInt(), and Random().