1 #ifndef STAN_MATH_REV_SCAL_FUN_INC_BETA_HPP
2 #define STAN_MATH_REV_SCAL_FUN_INC_BETA_HPP
17 class inc_beta_vvv_vari :
public op_vvv_vari {
19 inc_beta_vvv_vari(vari* avi, vari* bvi, vari* cvi) :
20 op_vvv_vari(stan::math::
inc_beta(avi->val_, bvi->val_, cvi->val_),
27 double d_a;
double d_b;
29 cvi_->val_,
digamma(avi_->val_),
31 digamma(avi_->val_ + bvi_->val_),
35 avi_->adj_ += adj_ * d_a;
36 bvi_->adj_ += adj_ * d_b;
37 cvi_->adj_ += adj_ *
std::pow((1-cvi_->val_), bvi_->val_-1)
fvar< T > lbeta(const fvar< T > &x1, const fvar< T > &x2)
Independent (input) and dependent (output) variables for gradients.
fvar< T > inc_beta(const fvar< T > &a, const fvar< T > &b, const fvar< T > &x)
fvar< T > exp(const fvar< T > &x)
vari * vi_
Pointer to the implementation of this variable.
fvar< T > pow(const fvar< T > &x1, const fvar< T > &x2)
void grad_reg_inc_beta(T &g1, T &g2, T a, T b, T z, T digammaA, T digammaB, T digammaSum, T betaAB)
fvar< T > digamma(const fvar< T > &x)