Eigen::Rand Namespace Reference

namespace for EigenRand More...

Classes

class  MersenneTwister
 A vectorized version of Mersenne Twister Engine. More...
 
class  PacketRandomEngineAdaptor
 Scalar adaptor for random engines which generates packet. More...
 

Typedefs

template<typename Derived , typename Urng >
using RandBitsType = CwiseNullaryOp< internal::scalar_randbits_op< typename Derived::Scalar, Urng >, const Derived >
 
template<typename Derived , typename Urng >
using UniformIntType = CwiseNullaryOp< internal::scalar_uniform_int_op< typename Derived::Scalar, Urng >, const Derived >
 
template<typename Derived , typename Urng >
using BalancedType = CwiseNullaryOp< internal::scalar_balanced_op< typename Derived::Scalar, Urng >, const Derived >
 
template<typename Derived , typename Urng >
using UniformRealType = CwiseNullaryOp< internal::scalar_uniform_real_op< typename Derived::Scalar, Urng >, const Derived >
 
template<typename Derived , typename Urng >
using NormalType = CwiseNullaryOp< internal::scalar_norm_dist_op< typename Derived::Scalar, Urng >, const Derived >
 
template<typename Derived , typename Urng >
using Normal2Type = CwiseNullaryOp< internal::scalar_norm_dist2_op< typename Derived::Scalar, Urng >, const Derived >
 
template<typename Derived , typename Urng >
using LognormalType = CwiseNullaryOp< internal::scalar_lognorm_dist_op< typename Derived::Scalar, Urng >, const Derived >
 
template<typename Derived , typename Urng >
using ExponentialType = CwiseNullaryOp< internal::scalar_exp_dist_op< typename Derived::Scalar, Urng >, const Derived >
 
template<typename Derived , typename Urng >
using GammaType = CwiseNullaryOp< internal::scalar_gamma_dist_op< typename Derived::Scalar, Urng >, const Derived >
 
template<typename Derived , typename Urng >
using WeibullType = CwiseNullaryOp< internal::scalar_weibull_dist_op< typename Derived::Scalar, Urng >, const Derived >
 
template<typename Derived , typename Urng >
using ExtremeValueType = CwiseNullaryOp< internal::scalar_extreme_value_dist_op< typename Derived::Scalar, Urng >, const Derived >
 
template<typename Derived , typename Urng >
using ChiSquaredType = CwiseNullaryOp< internal::scalar_chi_squared_dist_op< typename Derived::Scalar, Urng >, const Derived >
 
template<typename Derived , typename Urng >
using DiscreteFType = CwiseNullaryOp< internal::scalar_discrete_dist_op< typename Derived::Scalar, Urng, float >, const Derived >
 
template<typename Derived , typename Urng >
using DiscreteDType = CwiseNullaryOp< internal::scalar_discrete_dist_op< typename Derived::Scalar, Urng, double >, const Derived >
 
template<typename Derived , typename Urng >
using DiscreteType = CwiseNullaryOp< internal::scalar_discrete_dist_op< typename Derived::Scalar, Urng, int32_t >, const Derived >
 
template<typename Packet >
using Pmt19937_64 = MersenneTwister< Packet, 312, 156, 31, 0xb5026f5aa96619e9, 29, 0x5555555555555555, 17, 0x71d67fffeda60000, 37, 0xfff7eee000000000, 43, 6364136223846793005 >
 Alias of Eigen::Rand::MersenneTwister, equivalent to std::mt19937_64. More...
 
using Vmt19937_64 = std::mt19937_64
 same as std::mt19937_64 when EIGEN_DONT_VECTORIZE, Pmt19937_64<internal::Packet4i> when SSE2 enabled and Pmt19937_64<internal::Packet8i> when AVX2 enabled More...
 

Enumerations

enum  RandomEngineType { none, scalar, packet }
 

Functions

template<typename Derived , typename Urng >
const RandBitsType< Derived, Urng > randBits (Index rows, Index cols, Urng &&urng)
 generates integers with random bits More...
 
template<typename Derived , typename Urng >
const RandBitsType< Derived, Urng > randBitsLike (Derived &o, Urng &&urng)
 generates integers with random bits More...
 
template<typename Derived , typename Urng >
const UniformIntType< Derived, Urng > uniformInt (Index rows, Index cols, Urng &&urng, typename Derived::Scalar min, typename Derived::Scalar max)
 generates integers with a given range [min, max] More...
 
template<typename Derived , typename Urng >
const UniformIntType< Derived, Urng > uniformIntLike (Derived &o, Urng &&urng, typename Derived::Scalar min, typename Derived::Scalar max)
 generates integers with a given range [min, max] More...
 
template<typename Derived , typename Urng >
const BalancedType< Derived, Urng > balanced (Index rows, Index cols, Urng &&urng)
 generates reals in a range [-1, 1] More...
 
template<typename Derived , typename Urng >
const BalancedType< Derived, Urng > balancedLike (const Derived &o, Urng &&urng)
 generates reals in a range [-1, 1] More...
 
template<typename Derived , typename Urng >
const UniformRealType< Derived, Urng > uniformReal (Index rows, Index cols, Urng &&urng)
 generates reals in a range [0, 1) More...
 
template<typename Derived , typename Urng >
const UniformRealType< Derived, Urng > uniformRealLike (Derived &o, Urng &&urng)
 generates reals in a range [0, 1) More...
 
template<typename Derived , typename Urng >
const NormalType< Derived, Urng > normal (Index rows, Index cols, Urng &&urng)
 generates reals on a standard normal distribution (mean = 0, stdev=1) More...
 
template<typename Derived , typename Urng >
const NormalType< Derived, Urng > normalLike (Derived &o, Urng &&urng)
 generates reals on a standard normal distribution (mean = 0, stdev=1) More...
 
template<typename Derived , typename Urng >
const Normal2Type< Derived, Urng > normal (Index rows, Index cols, Urng &&urng, typename Derived::Scalar mean, typename Derived::Scalar stdev=1)
 generates reals on a normal distribution with arbitrary mean and stdev. More...
 
template<typename Derived , typename Urng >
const Normal2Type< Derived, Urng > normalLike (Derived &o, Urng &&urng, typename Derived::Scalar mean, typename Derived::Scalar stdev=1)
 generates reals on a normal distribution with arbitrary mean and stdev. More...
 
template<typename Derived , typename Urng >
const LognormalType< Derived, Urng > lognormal (Index rows, Index cols, Urng &&urng, typename Derived::Scalar mean=0, typename Derived::Scalar stdev=1)
 generates reals on a lognormal distribution with arbitrary mean and stdev. More...
 
template<typename Derived , typename Urng >
const LognormalType< Derived, Urng > lognormalLike (Derived &o, Urng &&urng, typename Derived::Scalar mean=0, typename Derived::Scalar stdev=1)
 generates reals on a lognormal distribution with arbitrary mean and stdev. More...
 
template<typename Derived , typename Urng >
const ExponentialType< Derived, Urng > exponential (Index rows, Index cols, Urng &&urng, typename Derived::Scalar lambda=1)
 generates reals on an exponential distribution with arbitrary scale parameter. More...
 
template<typename Derived , typename Urng >
const ExponentialType< Derived, Urng > exponentialLike (Derived &o, Urng &&urng, typename Derived::Scalar lambda=1)
 generates reals on an exponential distribution with arbitrary scale parameter. More...
 
template<typename Derived , typename Urng >
const GammaType< Derived, Urng > gamma (Index rows, Index cols, Urng &&urng, typename Derived::Scalar alpha=1, typename Derived::Scalar beta=1)
 generates reals on a gamma distribution with arbitrary shape and scale parameter. More...
 
template<typename Derived , typename Urng >
const GammaType< Derived, Urng > gammaLike (Derived &o, Urng &&urng, typename Derived::Scalar alpha=1, typename Derived::Scalar beta=1)
 generates reals on a gamma distribution with arbitrary shape and scale parameter. More...
 
template<typename Derived , typename Urng >
const WeibullType< Derived, Urng > weibull (Index rows, Index cols, Urng &&urng, typename Derived::Scalar a=1, typename Derived::Scalar b=1)
 generates reals on a Weibull distribution with arbitrary shape and scale parameter. More...
 
template<typename Derived , typename Urng >
const WeibullType< Derived, Urng > weibullLike (Derived &o, Urng &&urng, typename Derived::Scalar a=1, typename Derived::Scalar b=1)
 generates reals on a Weibull distribution with arbitrary shape and scale parameter. More...
 
template<typename Derived , typename Urng >
const ExtremeValueType< Derived, Urng > extremeValue (Index rows, Index cols, Urng &&urng, typename Derived::Scalar a=0, typename Derived::Scalar b=1)
 generates reals on an extreme value distribution (a.k.a Gumbel Type I, log-Weibull, Fisher-Tippett Type I) with arbitrary shape and scale parameter. More...
 
template<typename Derived , typename Urng >
const ExtremeValueType< Derived, Urng > extremeValueLike (Derived &o, Urng &&urng, typename Derived::Scalar a=0, typename Derived::Scalar b=1)
 generates reals on an extreme value distribution (a.k.a Gumbel Type I, log-Weibull, Fisher-Tippett Type I) with arbitrary shape and scale parameter. More...
 
template<typename Derived , typename Urng >
const ChiSquaredType< Derived, Urng > chiSquared (Index rows, Index cols, Urng &&urng, typename Derived::Scalar n=1)
 generates reals on the Chi-squared distribution with arbitrary degrees of freedom. More...
 
template<typename Derived , typename Urng >
const ChiSquaredType< Derived, Urng > chiSquaredLike (Derived &o, Urng &&urng, typename Derived::Scalar n=1)
 generates reals on the Chi-squared distribution with arbitrary degrees of freedom. More...
 
template<typename Derived , typename Urng , typename RealIter >
const DiscreteFType< Derived, Urng > discreteF (Index rows, Index cols, Urng &&urng, RealIter first, RealIter last)
 generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is float(23bit precision). More...
 
template<typename Derived , typename Urng , typename RealIter >
const DiscreteFType< Derived, Urng > discreteFLike (Derived &o, Urng &&urng, RealIter first, RealIter last)
 generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is float(23bit precision). More...
 
template<typename Derived , typename Urng , typename Real >
const DiscreteFType< Derived, Urng > discreteF (Index rows, Index cols, Urng &&urng, const std::initializer_list< Real > &il)
 generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is float(23bit precision). More...
 
template<typename Derived , typename Urng , typename Real >
const DiscreteFType< Derived, Urng > discreteFLike (Derived &o, Urng &&urng, const std::initializer_list< Real > &il)
 generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is float(23bit precision). More...
 
template<typename Derived , typename Urng , typename RealIter >
const DiscreteDType< Derived, Urng > discreteD (Index rows, Index cols, Urng &&urng, RealIter first, RealIter last)
 generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is double(52bit precision). More...
 
template<typename Derived , typename Urng , typename RealIter >
const DiscreteDType< Derived, Urng > discreteDLike (Derived &o, Urng &&urng, RealIter first, RealIter last)
 generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is double(52bit precision). More...
 
template<typename Derived , typename Urng , typename Real >
const DiscreteDType< Derived, Urng > discreteD (Index rows, Index cols, Urng &&urng, const std::initializer_list< Real > &il)
 generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is double(52bit precision). More...
 
template<typename Derived , typename Urng , typename Real >
const DiscreteDType< Derived, Urng > discreteDLike (Derived &o, Urng &&urng, const std::initializer_list< Real > &il)
 generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is double(52bit precision). More...
 
template<typename Derived , typename Urng , typename RealIter >
const DiscreteType< Derived, Urng > discrete (Index rows, Index cols, Urng &&urng, RealIter first, RealIter last)
 generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is int32(32bit precision). More...
 
template<typename Derived , typename Urng , typename RealIter >
const DiscreteType< Derived, Urng > discreteLike (Derived &o, Urng &&urng, RealIter first, RealIter last)
 generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is int32(32bit precision). More...
 
template<typename Derived , typename Urng , typename Real >
const DiscreteType< Derived, Urng > discrete (Index rows, Index cols, Urng &&urng, const std::initializer_list< Real > &il)
 generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is int32(32bit precision). More...
 
template<typename Derived , typename Urng , typename Real >
const DiscreteType< Derived, Urng > discreteLike (Derived &o, Urng &&urng, const std::initializer_list< Real > &il)
 generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is int32(32bit precision). More...
 
template<typename UIntType , typename Rng >
auto makeScalarRng (Rng &&rng) -> typename std::enable_if< IsPacketRandomEngine< typename std::remove_reference< Rng >::type >::value, PacketRandomEngineAdaptor< UIntType, typename std::remove_reference< Rng >::type > >::type
 Helper function for making a PacketRandomEngineAdaptor. More...
 

Detailed Description

namespace for EigenRand

Typedef Documentation

◆ Pmt19937_64

template<typename Packet >
using Eigen::Rand::Pmt19937_64 = typedef MersenneTwister<Packet, 312, 156, 31, 0xb5026f5aa96619e9, 29, 0x5555555555555555, 17, 0x71d67fffeda60000, 37, 0xfff7eee000000000, 43, 6364136223846793005>

Alias of Eigen::Rand::MersenneTwister, equivalent to std::mt19937_64.

Template Parameters
Packet

◆ Vmt19937_64

using Eigen::Rand::Vmt19937_64 = typedef std::mt19937_64

same as std::mt19937_64 when EIGEN_DONT_VECTORIZE, Pmt19937_64<internal::Packet4i> when SSE2 enabled and Pmt19937_64<internal::Packet8i> when AVX2 enabled

Function Documentation

◆ balanced()

template<typename Derived , typename Urng >
const BalancedType<Derived, Urng> Eigen::Rand::balanced ( Index  rows,
Index  cols,
Urng &&  urng 
)
inline

generates reals in a range [-1, 1]

Template Parameters
Deriveda type of Eigen::DenseBase
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
Returns
a random matrix expression with a shape (rows, cols)

◆ balancedLike()

template<typename Derived , typename Urng >
const BalancedType<Derived, Urng> Eigen::Rand::balancedLike ( const Derived &  o,
Urng &&  urng 
)
inline

generates reals in a range [-1, 1]

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
Returns
a random matrix expression of the same shape as o

◆ chiSquared()

template<typename Derived , typename Urng >
const ChiSquaredType<Derived, Urng> Eigen::Rand::chiSquared ( Index  rows,
Index  cols,
Urng &&  urng,
typename Derived::Scalar  n = 1 
)
inline

generates reals on the Chi-squared distribution with arbitrary degrees of freedom.

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
nthe degrees of freedom of the distribution
Returns
a random matrix expression with a shape (rows, cols)

◆ chiSquaredLike()

template<typename Derived , typename Urng >
const ChiSquaredType<Derived, Urng> Eigen::Rand::chiSquaredLike ( Derived &  o,
Urng &&  urng,
typename Derived::Scalar  n = 1 
)
inline

generates reals on the Chi-squared distribution with arbitrary degrees of freedom.

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
nthe degrees of freedom of the distribution
Returns
a random matrix expression of the same shape as o

◆ discrete() [1/2]

template<typename Derived , typename Urng , typename Real >
const DiscreteType<Derived, Urng> Eigen::Rand::discrete ( Index  rows,
Index  cols,
Urng &&  urng,
const std::initializer_list< Real > &  il 
)
inline

generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is int32(32bit precision).

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
ilan instance of initializer_list containing the numbers to use as weights. The type of the elements referred by RealIter must be convertible to double.
Returns
a random matrix expression with a shape (rows, cols)

◆ discrete() [2/2]

template<typename Derived , typename Urng , typename RealIter >
const DiscreteType<Derived, Urng> Eigen::Rand::discrete ( Index  rows,
Index  cols,
Urng &&  urng,
RealIter  first,
RealIter  last 
)
inline

generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is int32(32bit precision).

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
first,lastthe range of elements defining the numbers to use as weights. The type of the elements referred by RealIter must be convertible to double.
Returns
a random matrix expression with a shape (rows, cols)

◆ discreteD() [1/2]

template<typename Derived , typename Urng , typename Real >
const DiscreteDType<Derived, Urng> Eigen::Rand::discreteD ( Index  rows,
Index  cols,
Urng &&  urng,
const std::initializer_list< Real > &  il 
)
inline

generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is double(52bit precision).

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
ilan instance of initializer_list containing the numbers to use as weights. The type of the elements referred by RealIter must be convertible to double.
Returns
a random matrix expression with a shape (rows, cols)

◆ discreteD() [2/2]

template<typename Derived , typename Urng , typename RealIter >
const DiscreteDType<Derived, Urng> Eigen::Rand::discreteD ( Index  rows,
Index  cols,
Urng &&  urng,
RealIter  first,
RealIter  last 
)
inline

generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is double(52bit precision).

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
first,lastthe range of elements defining the numbers to use as weights. The type of the elements referred by RealIter must be convertible to double.
Returns
a random matrix expression with a shape (rows, cols)

◆ discreteDLike() [1/2]

template<typename Derived , typename Urng , typename Real >
const DiscreteDType<Derived, Urng> Eigen::Rand::discreteDLike ( Derived &  o,
Urng &&  urng,
const std::initializer_list< Real > &  il 
)
inline

generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is double(52bit precision).

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
ilan instance of initializer_list containing the numbers to use as weights. The type of the elements referred by RealIter must be convertible to double.
Returns
a random matrix expression of the same shape as o

◆ discreteDLike() [2/2]

template<typename Derived , typename Urng , typename RealIter >
const DiscreteDType<Derived, Urng> Eigen::Rand::discreteDLike ( Derived &  o,
Urng &&  urng,
RealIter  first,
RealIter  last 
)
inline

generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is double(52bit precision).

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
first,lastthe range of elements defining the numbers to use as weights. The type of the elements referred by RealIter must be convertible to double.
Returns
a random matrix expression of the same shape as o

◆ discreteF() [1/2]

template<typename Derived , typename Urng , typename Real >
const DiscreteFType<Derived, Urng> Eigen::Rand::discreteF ( Index  rows,
Index  cols,
Urng &&  urng,
const std::initializer_list< Real > &  il 
)
inline

generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is float(23bit precision).

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
ilan instance of initializer_list containing the numbers to use as weights. The type of the elements referred by RealIter must be convertible to double.
Returns
a random matrix expression with a shape (rows, cols)

◆ discreteF() [2/2]

template<typename Derived , typename Urng , typename RealIter >
const DiscreteFType<Derived, Urng> Eigen::Rand::discreteF ( Index  rows,
Index  cols,
Urng &&  urng,
RealIter  first,
RealIter  last 
)
inline

generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is float(23bit precision).

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
first,lastthe range of elements defining the numbers to use as weights. The type of the elements referred by RealIter must be convertible to double.
Returns
a random matrix expression with a shape (rows, cols)

◆ discreteFLike() [1/2]

template<typename Derived , typename Urng , typename Real >
const DiscreteFType<Derived, Urng> Eigen::Rand::discreteFLike ( Derived &  o,
Urng &&  urng,
const std::initializer_list< Real > &  il 
)
inline

generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is float(23bit precision).

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
ilan instance of initializer_list containing the numbers to use as weights. The type of the elements referred by RealIter must be convertible to double.
Returns
a random matrix expression of the same shape as o

◆ discreteFLike() [2/2]

template<typename Derived , typename Urng , typename RealIter >
const DiscreteFType<Derived, Urng> Eigen::Rand::discreteFLike ( Derived &  o,
Urng &&  urng,
RealIter  first,
RealIter  last 
)
inline

generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is float(23bit precision).

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
first,lastthe range of elements defining the numbers to use as weights. The type of the elements referred by RealIter must be convertible to double.
Returns
a random matrix expression of the same shape as o

◆ discreteLike() [1/2]

template<typename Derived , typename Urng , typename Real >
const DiscreteType<Derived, Urng> Eigen::Rand::discreteLike ( Derived &  o,
Urng &&  urng,
const std::initializer_list< Real > &  il 
)
inline

generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is int32(32bit precision).

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
ilan instance of initializer_list containing the numbers to use as weights. The type of the elements referred by RealIter must be convertible to double.
Returns
a random matrix expression of the same shape as o

◆ discreteLike() [2/2]

template<typename Derived , typename Urng , typename RealIter >
const DiscreteType<Derived, Urng> Eigen::Rand::discreteLike ( Derived &  o,
Urng &&  urng,
RealIter  first,
RealIter  last 
)
inline

generates random integers on the interval [0, n), where the probability of each individual integer i is proportional to w(i). The data type used for calculation of probabilities is int32(32bit precision).

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
first,lastthe range of elements defining the numbers to use as weights. The type of the elements referred by RealIter must be convertible to double.
Returns
a random matrix expression of the same shape as o

◆ exponential()

template<typename Derived , typename Urng >
const ExponentialType<Derived, Urng> Eigen::Rand::exponential ( Index  rows,
Index  cols,
Urng &&  urng,
typename Derived::Scalar  lambda = 1 
)
inline

generates reals on an exponential distribution with arbitrary scale parameter.

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
lambdaa scale parameter of the distribution
Returns
a random matrix expression with a shape (rows, cols)

◆ exponentialLike()

template<typename Derived , typename Urng >
const ExponentialType<Derived, Urng> Eigen::Rand::exponentialLike ( Derived &  o,
Urng &&  urng,
typename Derived::Scalar  lambda = 1 
)
inline

generates reals on an exponential distribution with arbitrary scale parameter.

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
lambdaa scale parameter of the distribution
Returns
a random matrix expression of the same shape as o

◆ extremeValue()

template<typename Derived , typename Urng >
const ExtremeValueType<Derived, Urng> Eigen::Rand::extremeValue ( Index  rows,
Index  cols,
Urng &&  urng,
typename Derived::Scalar  a = 0,
typename Derived::Scalar  b = 1 
)
inline

generates reals on an extreme value distribution (a.k.a Gumbel Type I, log-Weibull, Fisher-Tippett Type I) with arbitrary shape and scale parameter.

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
aa location parameter of the distribution
ba scale parameter of the distribution
Returns
a random matrix expression with a shape (rows, cols)

◆ extremeValueLike()

template<typename Derived , typename Urng >
const ExtremeValueType<Derived, Urng> Eigen::Rand::extremeValueLike ( Derived &  o,
Urng &&  urng,
typename Derived::Scalar  a = 0,
typename Derived::Scalar  b = 1 
)
inline

generates reals on an extreme value distribution (a.k.a Gumbel Type I, log-Weibull, Fisher-Tippett Type I) with arbitrary shape and scale parameter.

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
aa location parameter of the distribution
ba scale parameter of the distribution
Returns
a random matrix expression of the same shape as o

◆ gamma()

template<typename Derived , typename Urng >
const GammaType<Derived, Urng> Eigen::Rand::gamma ( Index  rows,
Index  cols,
Urng &&  urng,
typename Derived::Scalar  alpha = 1,
typename Derived::Scalar  beta = 1 
)
inline

generates reals on a gamma distribution with arbitrary shape and scale parameter.

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
alphaa shape parameter of the distribution
betaa scale parameter of the distribution
Returns
a random matrix expression with a shape (rows, cols)

◆ gammaLike()

template<typename Derived , typename Urng >
const GammaType<Derived, Urng> Eigen::Rand::gammaLike ( Derived &  o,
Urng &&  urng,
typename Derived::Scalar  alpha = 1,
typename Derived::Scalar  beta = 1 
)
inline

generates reals on a gamma distribution with arbitrary shape and scale parameter.

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
alphaa shape parameter of the distribution
betaa scale parameter of the distribution
Returns
a random matrix expression of the same shape as o

◆ lognormal()

template<typename Derived , typename Urng >
const LognormalType<Derived, Urng> Eigen::Rand::lognormal ( Index  rows,
Index  cols,
Urng &&  urng,
typename Derived::Scalar  mean = 0,
typename Derived::Scalar  stdev = 1 
)
inline

generates reals on a lognormal distribution with arbitrary mean and stdev.

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
meana mean value of the distribution
stdeva standard deviation value of the distribution
Returns
a random matrix expression with a shape (rows, cols)

◆ lognormalLike()

template<typename Derived , typename Urng >
const LognormalType<Derived, Urng> Eigen::Rand::lognormalLike ( Derived &  o,
Urng &&  urng,
typename Derived::Scalar  mean = 0,
typename Derived::Scalar  stdev = 1 
)
inline

generates reals on a lognormal distribution with arbitrary mean and stdev.

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
meana mean value of the distribution
stdeva standard deviation value of the distribution
Returns
a random matrix expression of the same shape as o

◆ makeScalarRng()

template<typename UIntType , typename Rng >
auto Eigen::Rand::makeScalarRng ( Rng &&  rng) -> typename std::enable_if< IsPacketRandomEngine<typename std::remove_reference<Rng>::type>::value, PacketRandomEngineAdaptor<UIntType, typename std::remove_reference<Rng>::type> >::type

Helper function for making a PacketRandomEngineAdaptor.

Template Parameters
UIntType
Rng
Parameters
rngany random number engine for either packet or scalar type
Returns
an instance of PacketRandomEngineAdaptor for UIntType

◆ normal() [1/2]

template<typename Derived , typename Urng >
const NormalType<Derived, Urng> Eigen::Rand::normal ( Index  rows,
Index  cols,
Urng &&  urng 
)
inline

generates reals on a standard normal distribution (mean = 0, stdev=1)

Template Parameters
Deriveda type of Eigen::DenseBase
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
Returns
a random matrix expression with a shape (rows, cols)

◆ normal() [2/2]

template<typename Derived , typename Urng >
const Normal2Type<Derived, Urng> Eigen::Rand::normal ( Index  rows,
Index  cols,
Urng &&  urng,
typename Derived::Scalar  mean,
typename Derived::Scalar  stdev = 1 
)
inline

generates reals on a normal distribution with arbitrary mean and stdev.

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
meana mean value of the distribution
stdeva standard deviation value of the distribution
Returns
a random matrix expression with a shape (rows, cols)

◆ normalLike() [1/2]

template<typename Derived , typename Urng >
const NormalType<Derived, Urng> Eigen::Rand::normalLike ( Derived &  o,
Urng &&  urng 
)
inline

generates reals on a standard normal distribution (mean = 0, stdev=1)

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
Returns
a random matrix expression of the same shape as o

◆ normalLike() [2/2]

template<typename Derived , typename Urng >
const Normal2Type<Derived, Urng> Eigen::Rand::normalLike ( Derived &  o,
Urng &&  urng,
typename Derived::Scalar  mean,
typename Derived::Scalar  stdev = 1 
)
inline

generates reals on a normal distribution with arbitrary mean and stdev.

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
meana mean value of the distribution
stdeva standard deviation value of the distribution
Returns
a random matrix expression of the same shape as o

◆ randBits()

template<typename Derived , typename Urng >
const RandBitsType<Derived, Urng> Eigen::Rand::randBits ( Index  rows,
Index  cols,
Urng &&  urng 
)
inline

generates integers with random bits

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
Returns
a random matrix expression with a shape (rows, cols)

◆ randBitsLike()

template<typename Derived , typename Urng >
const RandBitsType<Derived, Urng> Eigen::Rand::randBitsLike ( Derived &  o,
Urng &&  urng 
)
inline

generates integers with random bits

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
Returns
a random matrix expression of the same shape as o

◆ uniformInt()

template<typename Derived , typename Urng >
const UniformIntType<Derived, Urng> Eigen::Rand::uniformInt ( Index  rows,
Index  cols,
Urng &&  urng,
typename Derived::Scalar  min,
typename Derived::Scalar  max 
)
inline

generates integers with a given range [min, max]

Template Parameters
Deriveda type of Eigen::DenseBase
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
min,maxthe range of integers being generated
Returns
a random matrix expression with a shape (rows, cols)

◆ uniformIntLike()

template<typename Derived , typename Urng >
const UniformIntType<Derived, Urng> Eigen::Rand::uniformIntLike ( Derived &  o,
Urng &&  urng,
typename Derived::Scalar  min,
typename Derived::Scalar  max 
)
inline

generates integers with a given range [min, max]

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
min,maxthe range of integers being generated
Returns
a random matrix expression of the same shape as o

◆ uniformReal()

template<typename Derived , typename Urng >
const UniformRealType<Derived, Urng> Eigen::Rand::uniformReal ( Index  rows,
Index  cols,
Urng &&  urng 
)
inline

generates reals in a range [0, 1)

Template Parameters
Deriveda type of Eigen::DenseBase
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
Returns
a random matrix expression with a shape (rows, cols)

◆ uniformRealLike()

template<typename Derived , typename Urng >
const UniformRealType<Derived, Urng> Eigen::Rand::uniformRealLike ( Derived &  o,
Urng &&  urng 
)
inline

generates reals in a range [0, 1)

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
Returns
a random matrix expression of the same shape as o

◆ weibull()

template<typename Derived , typename Urng >
const WeibullType<Derived, Urng> Eigen::Rand::weibull ( Index  rows,
Index  cols,
Urng &&  urng,
typename Derived::Scalar  a = 1,
typename Derived::Scalar  b = 1 
)
inline

generates reals on a Weibull distribution with arbitrary shape and scale parameter.

Template Parameters
Derived
Urng
Parameters
rowsthe number of rows being generated
colsthe number of columns being generated
urngc++11-style random number generator
aa shape parameter of the distribution
ba scale parameter of the distribution
Returns
a random matrix expression with a shape (rows, cols)

◆ weibullLike()

template<typename Derived , typename Urng >
const WeibullType<Derived, Urng> Eigen::Rand::weibullLike ( Derived &  o,
Urng &&  urng,
typename Derived::Scalar  a = 1,
typename Derived::Scalar  b = 1 
)
inline

generates reals on a Weibull distribution with arbitrary shape and scale parameter.

Template Parameters
Derived
Urng
Parameters
oan instance of any type of Eigen::DenseBase
urngc++11-style random number generator
aa shape parameter of the distribution
ba scale parameter of the distribution
Returns
a random matrix expression of the same shape as o