1#ifndef STAN_MATH_PRIM_FUN_GRAD_REG_INC_BETA_HPP
2#define STAN_MATH_PRIM_FUN_GRAD_REG_INC_BETA_HPP
36 const T& digammaA,
const T& digammaB,
37 const T& digammaSum,
const T& betaAB) {
43 T C =
exp(a * c1 + b * c2) / a;
49 std::forward_as_tuple(dF1, dF2, dF3, dFz)
50 = grad_2F1<true>(a + b, 1.0, a + 1, z);
53 T dBda = (c1 - 1.0 / a) * c3 + C * (dF1 + dF3);
54 T dBdb = c2 * c3 + C * dF1;
56 g1 = (dBda - c3 * (digammaA - digammaSum)) / betaAB;
57 g2 = (dBdb - c3 * (digammaB - digammaSum)) / betaAB;
double value_of_rec(const fvar< T > &v)
Return the value of the specified variable.
fvar< T > log(const fvar< T > &x)
void grad_reg_inc_beta(T &g1, T &g2, const T &a, const T &b, const T &z, const T &digammaA, const T &digammaB, const T &digammaSum, const T &betaAB)
Computes the gradients of the regularized incomplete beta function.
fvar< T > inc_beta(const fvar< T > &a, const fvar< T > &b, const fvar< T > &x)
fvar< T > log1m(const fvar< T > &x)
fvar< T > exp(const fvar< T > &x)
The lgamma implementation in stan-math is based on either the reentrant safe lgamma_r implementation ...