id summary reporter owner description type status milestone component version severity resolution keywords cc 6937 Wrong cdf/pdf/quantile domain checks for some probability distributions Florian Schoppmann John Maddock "`students_t_distribution` and `fisher_f_distribution` are affected, and possibly others (have not checked yet). `quantile(const students_t[...])` contains the following code: {{{ if(false == detail::check_df( function, degrees_of_freedom, &error_result, Policy()) && detail::check_probability(function, probability, &error_result, Policy())) return error_result; }}} `quantile(const fisher_f[...])` contains: {{{ if(false == detail::check_df( function, df1, &error_result, Policy()) && detail::check_df( function, df2, &error_result, Policy()) && detail::check_probability( function, p, &error_result, Policy())) return error_result; }}} The code snippets above would only be correct if the ""`&&`"" operator had precedence over ""`==`"". `pdf` and `cdf` contain code of the same form. Side effects: - The Student's t `quantile()` can be called with a probability outside of ![0,1] with unexpected results. Example: {{{ #include using namespace boost::math; int main() { std::cout << quantile(students_t(1), 2) << std::endl; } }}} The output is: `-1.84467e+19 ` - The Fisher F `quantile()` function, when called with probability NaN and parameters 1 and 1, leads to a failed BOOST_ASSERT. Example: {{{ #include using namespace boost::math; int main() { quantile(fisher_f(1, 1), std::numeric_limits::quiet_NaN()); } }}} " Bugs closed Boost 1.52.0 math Boost 1.49.0 Problem fixed pbristow@…