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)\fC [inline]\fP

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)\fC [inline]\fP

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)\fC [inline]\fP

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)\fC [inline]\fP

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)\fC [inline]\fP

Generates a uniform random integer.

Definition at line 114 of file random.hpp.

References randGen, and randUniformDist.

double mlpack::math::RandNormal ()\fC [inline]\fP

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)\fC [inline]\fP

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 ()\fC [inline]\fP

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)\fC [inline]\fP

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)\fC [inline]\fP

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.