Stan Math Library  2.15.0
reverse mode automatic differentiation
rising_factorial.hpp
Go to the documentation of this file.
1 #ifndef STAN_MATH_FWD_SCAL_FUN_RISING_FACTORIAL_HPP
2 #define STAN_MATH_FWD_SCAL_FUN_RISING_FACTORIAL_HPP
3 
4 #include <stan/math/fwd/core.hpp>
7 
8 namespace stan {
9  namespace math {
10 
11  template<typename T>
12  inline
13  fvar<T>
14  rising_factorial(const fvar<T>& x, const fvar<T>& n) {
15  T rising_fact(rising_factorial(x.val_, n.val_));
16  return fvar<T>(rising_fact,
17  rising_fact * (digamma(x.val_ + n.val_)
18  * (x.d_ + n.d_) - digamma(x.val_) * x.d_));
19  }
20 
21  template<typename T>
22  inline
23  fvar<T>
24  rising_factorial(const fvar<T>& x, double n) {
26 
27  T rising_fact(rising_factorial(x.val_, n));
28  return fvar<T>(rising_fact,
29  rising_fact * x.d_
30  * (digamma(x.val_ + n) - digamma(x.val_)));
31  }
32 
33  template<typename T>
34  inline
35  fvar<T>
36  rising_factorial(double x, const fvar<T>& n) {
38 
39  T rising_fact(rising_factorial(x, n.val_));
40  return fvar<T>(rising_fact,
41  rising_fact * (digamma(x + n.val_) * n.d_));
42  }
43  }
44 }
45 #endif
fvar< T > rising_factorial(const fvar< T > &x, const fvar< T > &n)
fvar< T > digamma(const fvar< T > &x)
Return the derivative of the log gamma function at the specified argument.
Definition: digamma.hpp:22

     [ Stan Home Page ] © 2011–2016, Stan Development Team.