oneapi::mkl::rng::chi_square

Generates chi-square distributed random values.

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 and CPU

Include Files

  • oneapi/mkl/rng.hpp

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}

Template Parameters

typename RealType = float

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

float

double

typename Method = oneapi::mkl::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.