1 #ifndef STAN_MATH_PRIM_SCAL_FUN_GRAD_INC_BETA_HPP
2 #define STAN_MATH_PRIM_SCAL_FUN_GRAD_INC_BETA_HPP
17 void grad_inc_beta(
double& g1,
double& g2,
double a,
double b,
double z) {
28 double C =
exp(a * c1 + b * c2) / a;
31 if (C)
grad_2F1(dF1, dF2, a + b, 1.0, a + 1, z);
32 g1 = (c1 - 1.0 / a) * c3 + C * (dF1 + dF2);
33 g2 = c2 * c3 + C * dF1;
fvar< T > lbeta(const fvar< T > &x1, const fvar< T > &x2)
fvar< T > log(const fvar< T > &x)
fvar< T > inc_beta(const fvar< T > &a, const fvar< T > &b, const fvar< T > &x)
void grad_inc_beta(stan::math::fvar< T > &g1, stan::math::fvar< T > &g2, stan::math::fvar< T > a, stan::math::fvar< T > b, stan::math::fvar< T > z)
fvar< T > exp(const fvar< T > &x)
fvar< T > log1m(const fvar< T > &x)
void grad_2F1(T &gradA, T &gradC, T a, T b, T c, T z, T precision=1e-6)