1 #ifndef STAN_MATH_REV_SCAL_FUN_GAMMA_Q_HPP 2 #define STAN_MATH_REV_SCAL_FUN_GAMMA_Q_HPP 9 #include <boost/math/special_functions/gamma.hpp> 16 class gamma_q_vv_vari :
public op_vv_vari {
18 gamma_q_vv_vari(vari* avi, vari* bvi) :
19 op_vv_vari(
gamma_q(avi->val_, bvi->val_),
28 * boost::math::gamma_p_derivative(avi_->val_, bvi_->val_);
32 class gamma_q_vd_vari :
public op_vd_vari {
34 gamma_q_vd_vari(vari* avi,
double b) :
35 op_vd_vari(
gamma_q(avi->val_, b),
46 class gamma_q_dv_vari :
public op_dv_vari {
48 gamma_q_dv_vari(
double a, vari* bvi) :
49 op_dv_vari(
gamma_q(a, bvi->val_),
54 * boost::math::gamma_p_derivative(ad_, bvi_->val_);
61 return var(
new gamma_q_vv_vari(a.
vi_, b.
vi_));
66 return var(
new gamma_q_vd_vari(a.
vi_, b));
71 return var(
new gamma_q_dv_vari(a, b.
vi_));
Independent (input) and dependent (output) variables for gradients.
vari * vi_
Pointer to the implementation of this variable.
T grad_reg_inc_gamma(T a, T z, T g, T dig, double precision=1e-6, int max_steps=1e5)
Gradient of the regularized incomplete gamma functions igamma(a, z)
fvar< T > tgamma(const fvar< T > &x)
Return the result of applying the gamma function to the specified argument.
fvar< T > gamma_q(const fvar< T > &x1, const fvar< T > &x2)
fvar< T > digamma(const fvar< T > &x)
Return the derivative of the log gamma function at the specified argument.