10#ifndef EIGEN_SPECIALFUNCTIONS_HALF_H
11#define EIGEN_SPECIALFUNCTIONS_HALF_H
14#include "./InternalHeaderCheck.h"
20EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half lgamma(
const Eigen::half& a) {
21 return Eigen::half(Eigen::numext::lgamma(
static_cast<float>(a)));
24EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half digamma(
const Eigen::half& a) {
25 return Eigen::half(Eigen::numext::digamma(
static_cast<float>(a)));
28EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half zeta(
const Eigen::half& x,
const Eigen::half& q) {
29 return Eigen::half(Eigen::numext::zeta(
static_cast<float>(x),
static_cast<float>(q)));
32EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half polygamma(
const Eigen::half& n,
const Eigen::half& x) {
33 return Eigen::half(Eigen::numext::polygamma(
static_cast<float>(n),
static_cast<float>(x)));
36EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half erf(
const Eigen::half& a) {
37 return Eigen::half(Eigen::numext::erf(
static_cast<float>(a)));
40EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half erfc(
const Eigen::half& a) {
41 return Eigen::half(Eigen::numext::erfc(
static_cast<float>(a)));
44EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half ndtri(
const Eigen::half& a) {
45 return Eigen::half(Eigen::numext::ndtri(
static_cast<float>(a)));
48EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half igamma(
const Eigen::half& a,
const Eigen::half& x) {
49 return Eigen::half(Eigen::numext::igamma(
static_cast<float>(a),
static_cast<float>(x)));
52EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half igamma_der_a(
const Eigen::half& a,
const Eigen::half& x) {
53 return Eigen::half(Eigen::numext::igamma_der_a(
static_cast<float>(a),
static_cast<float>(x)));
56EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half gamma_sample_der_alpha(
const Eigen::half& alpha,
57 const Eigen::half& sample) {
58 return Eigen::half(Eigen::numext::gamma_sample_der_alpha(
static_cast<float>(alpha),
static_cast<float>(sample)));
61EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half igammac(
const Eigen::half& a,
const Eigen::half& x) {
62 return Eigen::half(Eigen::numext::igammac(
static_cast<float>(a),
static_cast<float>(x)));
65EIGEN_STRONG_INLINE EIGEN_DEVICE_FUNC Eigen::half betainc(
const Eigen::half& a,
const Eigen::half& b,
66 const Eigen::half& x) {
67 return Eigen::half(Eigen::numext::betainc(
static_cast<float>(a),
static_cast<float>(b),
static_cast<float>(x)));
Namespace containing all symbols from the Eigen library.