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