RandomLib  1.10
 All Classes Namespaces Files Functions Variables Typedefs Enumerator Friends Macros Pages
Public Member Functions | List of all members
RandomLib::MPFRExponential< bits > Class Template Reference

The exponential distribution for MPFR. More...

#include <RandomLib/MPFRExponential.hpp>

Public Member Functions

 MPFRExponential ()
 
void operator() (MPFRRandom< bits > &t, gmp_randstate_t r) const
 
int operator() (mpfr_t val, gmp_randstate_t r, mpfr_rnd_t round) const
 

Detailed Description

template<int bits = 32>
class RandomLib::MPFRExponential< bits >

The exponential distribution for MPFR.

This is a transcription of ExactExponential (version 1.4) for use with MPFR.

This class uses mutable private objects. So a single MPFRExponential object cannot safely be used by multiple threads. In a multi-processing environment, each thread should use a thread-specific MPFRExponential object.

Template Parameters
bitsthe number of bits in each digit.

Definition at line 34 of file MPFRExponential.hpp.

Constructor & Destructor Documentation

template<int bits = 32>
RandomLib::MPFRExponential< bits >::MPFRExponential ( )
inline

Initialize the MPFRExponential object.

Definition at line 40 of file MPFRExponential.hpp.

Member Function Documentation

template<int bits = 32>
void RandomLib::MPFRExponential< bits >::operator() ( MPFRRandom< bits > &  t,
gmp_randstate_t  r 
) const
inline

Sample from the exponential distribution with mean 1 returning a MPFRRandom.

Parameters
[out]tthe MPFRRandom result.
[in,out]ra GMP random generator.

Definition at line 48 of file MPFRExponential.hpp.

template<int bits = 32>
int RandomLib::MPFRExponential< bits >::operator() ( mpfr_t  val,
gmp_randstate_t  r,
mpfr_rnd_t  round 
) const
inline

Sample from the exponential distribution with mean 1.

Parameters
[out]valthe sample from the exponential distribution
[in,out]ra GMP random generator.
[in]roundthe rounding direction.
Returns
the MPFR ternary result (± if val is larger/smaller than the exact sample).

Definition at line 59 of file MPFRExponential.hpp.


The documentation for this class was generated from the following file: