chi_square#

Generates chi-square distributed random values.

Description#

The chi_square class object is used in the generate function to provide random numbers with chi-square distribution and ν degrees of freedom, \(n \in N; n > 0\).

The probability density function is:

\[\begin{split}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}\end{split}\]

The cumulative distribution function is:

\[\begin{split}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}\end{split}\]

API#

Syntax#

namespace oneapi::mkl::rng {
  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: 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 = 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.