1717#include < stan/math/prim/fun/sqrt.hpp>
1818#include < stan/math/prim/fun/square.hpp>
1919#include < stan/math/prim/fun/hypergeometric_pFq.hpp>
20- #include < boost/ optional.hpp >
20+ #include < optional>
2121
2222namespace stan {
2323namespace math {
@@ -29,7 +29,7 @@ namespace internal {
2929 * more background (and other possible special-cases), see:
3030 * https://functions.wolfram.com/HypergeometricFunctions/Hypergeometric2F1/03/
3131 *
32- * The return value is wrapped in a boost ::optional<> type so that a void
32+ * The return value is wrapped in a std ::optional<> type so that a void
3333 * return is possible if no special-case rules are applicable
3434 *
3535 * @tparam Ta1 Type of scalar first 'a' argument
@@ -43,7 +43,7 @@ namespace internal {
4343 * @return Gauss hypergeometric function
4444 */
4545template <typename Ta1, typename Ta2, typename Tb, typename Tz,
46- typename RtnT = boost ::optional<return_type_t <Ta1, Ta2, Tb, Tz>>,
46+ typename RtnT = std ::optional<return_type_t <Ta1, Ta2, Tb, Tz>>,
4747 require_all_arithmetic_t <Ta1, Ta2, Tb, Tz>* = nullptr >
4848inline RtnT hyper_2F1_special_cases (const Ta1& a1, const Ta2& a2, const Tb& b,
4949 const Tz& z) {
@@ -149,7 +149,7 @@ inline RtnT hyper_2F1_special_cases(const Ta1& a1, const Ta2& a2, const Tb& b,
149149 */
150150template <typename Ta1, typename Ta2, typename Tb, typename Tz,
151151 typename ScalarT = return_type_t <Ta1, Ta2, Tb, Tz>,
152- typename OptT = boost ::optional<ScalarT>,
152+ typename OptT = std ::optional<ScalarT>,
153153 require_all_arithmetic_t <Ta1, Ta2, Tb, Tz>* = nullptr >
154154inline return_type_t <Ta1, Ta2, Tb, Tz> hypergeometric_2F1 (const Ta1& a1,
155155 const Ta2& a2,
@@ -168,15 +168,15 @@ inline return_type_t<Ta1, Ta2, Tb, Tz> hypergeometric_2F1(const Ta1& a1,
168168 // Check whether value can be calculated by any special-case rules
169169 // before estimating infinite sum
170170 OptT special_case_a1a2 = internal::hyper_2F1_special_cases (a1, a2, b, z);
171- if (special_case_a1a2.is_initialized ()) {
172- return special_case_a1a2.get ();
171+ if (special_case_a1a2.has_value ()) {
172+ return special_case_a1a2.value ();
173173 }
174174
175175 // Check whether any special case rules apply with 'a' arguments reversed
176176 // as 2F1(a1, a2, b, z) = 2F1(a2, a1, b, z)
177177 OptT special_case_a2a1 = internal::hyper_2F1_special_cases (a2, a1, b, z);
178- if (special_case_a2a1.is_initialized ()) {
179- return special_case_a2a1.get ();
178+ if (special_case_a2a1.has_value ()) {
179+ return special_case_a2a1.value ();
180180 }
181181
182182 Eigen::Matrix<double , 2 , 1 > a_args (2 );
0 commit comments