// This file is part of Eigen, a lightweight C++ template library // for linear algebra. // // Copyright (C) 2016 Eugene Brevdo <[email protected]> // Copyright (C) 2016 Gael Guennebaud <[email protected]> // // This Source Code Form is subject to the terms of the Mozilla // Public License v. 2.0. If a copy of the MPL was not distributed // with this file, You can obtain one at http://mozilla.org/MPL/2.0/. #ifndef EIGEN_SPECIALFUNCTIONS_FUNCTORS_H #define EIGEN_SPECIALFUNCTIONS_FUNCTORS_H // IWYU pragma: private #include "./InternalHeaderCheck.h" namespace Eigen { namespace internal { /** \internal * \brief Template functor to compute the incomplete gamma function igamma(a, x) * * \sa class CwiseBinaryOp, Cwise::igamma */ template <typename Scalar> struct scalar_igamma_op : binary_op_base<Scalar, Scalar> { … }; functor_traits<scalar_igamma_op<Scalar>>; /** \internal * \brief Template functor to compute the derivative of the incomplete gamma * function igamma_der_a(a, x) * * \sa class CwiseBinaryOp, Cwise::igamma_der_a */ template <typename Scalar> struct scalar_igamma_der_a_op { … }; functor_traits<scalar_igamma_der_a_op<Scalar>>; /** \internal * \brief Template functor to compute the derivative of the sample * of a Gamma(alpha, 1) random variable with respect to the parameter alpha * gamma_sample_der_alpha(alpha, sample) * * \sa class CwiseBinaryOp, Cwise::gamma_sample_der_alpha */ template <typename Scalar> struct scalar_gamma_sample_der_alpha_op { … }; functor_traits<scalar_gamma_sample_der_alpha_op<Scalar>>; /** \internal * \brief Template functor to compute the complementary incomplete gamma function igammac(a, x) * * \sa class CwiseBinaryOp, Cwise::igammac */ template <typename Scalar> struct scalar_igammac_op : binary_op_base<Scalar, Scalar> { … }; functor_traits<scalar_igammac_op<Scalar>>; /** \internal * \brief Template functor to compute the incomplete beta integral betainc(a, b, x) * */ template <typename Scalar> struct scalar_betainc_op { … }; functor_traits<scalar_betainc_op<Scalar>>; /** \internal * \brief Template functor to compute the natural log of the absolute * value of Gamma of a scalar * \sa class CwiseUnaryOp, Cwise::lgamma() */ template <typename Scalar> struct scalar_lgamma_op { … }; functor_traits<scalar_lgamma_op<Scalar>>; /** \internal * \brief Template functor to compute psi, the derivative of lgamma of a scalar. * \sa class CwiseUnaryOp, Cwise::digamma() */ template <typename Scalar> struct scalar_digamma_op { … }; functor_traits<scalar_digamma_op<Scalar>>; /** \internal * \brief Template functor to compute the Riemann Zeta function of two arguments. * \sa class CwiseUnaryOp, Cwise::zeta() */ template <typename Scalar> struct scalar_zeta_op { … }; functor_traits<scalar_zeta_op<Scalar>>; /** \internal * \brief Template functor to compute the polygamma function. * \sa class CwiseUnaryOp, Cwise::polygamma() */ template <typename Scalar> struct scalar_polygamma_op { … }; functor_traits<scalar_polygamma_op<Scalar>>; /** \internal * \brief Template functor to compute the error function of a scalar * \sa class CwiseUnaryOp, ArrayBase::erf() */ template <typename Scalar> struct scalar_erf_op { … }; functor_traits<scalar_erf_op<Scalar>>; /** \internal * \brief Template functor to compute the Complementary Error Function * of a scalar * \sa class CwiseUnaryOp, Cwise::erfc() */ template <typename Scalar> struct scalar_erfc_op { … }; functor_traits<scalar_erfc_op<Scalar>>; /** \internal * \brief Template functor to compute the Inverse of the normal distribution * function of a scalar * \sa class CwiseUnaryOp, Cwise::ndtri() */ template <typename Scalar> struct scalar_ndtri_op { … }; functor_traits<scalar_ndtri_op<Scalar>>; } // end namespace internal } // end namespace Eigen #endif // EIGEN_SPECIALFUNCTIONS_FUNCTORS_H