oneapi::mkl::rng::chi_square

Generates chi-square distributed random values.

Description

The oneapi::mkl::rng::chi_square class object is used in the oneapi::mkl::rng::generate function to provide random numbers with chi-square distribution and ν degrees of freedom, nN, n > 0.

The probability density function is:

F_{v}(x) =
\begin{cases}
      \frac {x^{\frac {n-2}{2}} e^{-\frac{x}{2}}}
            {2^{n/2} \Gamma (\frac {n}{2})} dy,
            & x \geq 0 \\
   0, & x < 0
\end{cases}

The cumulative distribution function is:

F_{v}(x) =
\begin{cases}
   \int _{0}^{x}
      \frac {y^{\frac {n-2}{2}} e^{-\frac{n}{2}}}
            {2^{n/2} \Gamma (\frac {n}{2})} dy,
            & x \geq 0 \\
   0, & x < 0
\end{cases}

API

Syntax

template<typename RealType = float, typename Method = chi_square_method::by_default>
class chi_square {
public:
using method_type = Method;
using result_type = RealType;
chi_square(): chi_square(5){}
explicit chi_square(std::int32_t n);
explicit chi_square(const param_type& pt);
std::int32_t n() const;
param_type param() const;
void param(const param_type& pt);
};

Devices supported: Host, CPU, and GPU.

Include Files

  • oneapi/mkl/rng.hpp

Template Parameters

typename RealType = float

Type of the produced values. The specific values are as follows:

float

double

typename Method = oneamkl::rng::chi_square_method::by_default

Generation method. The specific values are as follows:

oneapi::mkl::rng::chi_square_method::gamma_based

See brief descriptions of the methods in Distributions Template Parameter Method.

Input Parameters

Name

Type

Description

n

std::int32_t

Degrees of freedom.