Automatic Differentiation
 
Loading...
Searching...
No Matches

◆ hyper_2F1_special_cases()

template<typename Ta1 , typename Ta2 , typename Tb , typename Tz , typename RtnT = boost::optional<return_type_t<Ta1, Ta1, Tb, Tz>>, require_all_arithmetic_t< Ta1, Ta2, Tb, Tz > * = nullptr>
RtnT stan::math::internal::hyper_2F1_special_cases ( const Ta1 &  a1,
const Ta2 &  a2,
const Tb &  b,
const Tz &  z 
)
inline

Calculate the Gauss Hypergeometric (2F1) function for special-case combinations of parameters which can be calculated in closed-form.

For more background (and other possible special-cases), see: https://functions.wolfram.com/HypergeometricFunctions/Hypergeometric2F1/03/

The return value is wrapped in a boost::optional<> type so that a void return is possible if no special-case rules are applicable

Template Parameters
Ta1Type of scalar first 'a' argument
Ta2Type of scalar second 'a' argument
TbType of scalar 'b' argument
TzType of scalar 'z' argument
Parameters
[in]a1First of 'a' arguments to function
[in]a2Second of 'a' arguments to function
[in]b'b' argument to function
[in]zScalar z argument
Returns
Gauss hypergeometric function

Definition at line 48 of file hypergeometric_2F1.hpp.