📄 complex_test.cpp
字号:
check_complex(ct(half_pi), result, 2); result = boost::math::acos(ct(mzero)); check_complex(ct(half_pi), result, 2); result = boost::math::acos(ct(zero, mzero)); check_complex(ct(half_pi), result, 2); result = boost::math::acos(ct(mzero, mzero)); check_complex(ct(half_pi), result, 2); if(test_nan) { result = boost::math::acos(ct(zero,nan)); BOOST_CHECK_CLOSE(result.real(), half_pi, eps*200); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::acos(ct(mzero,nan)); BOOST_CHECK_CLOSE(result.real(), half_pi, eps*200); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); } if(test_infinity) { result = boost::math::acos(ct(zero, infinity)); BOOST_CHECK_CLOSE(result.real(), half_pi, eps*200); BOOST_CHECK(result.imag() == -infinity); result = boost::math::acos(ct(zero, -infinity)); BOOST_CHECK_CLOSE(result.real(), half_pi, eps*200); BOOST_CHECK(result.imag() == infinity); } if(test_nan) { result = boost::math::acos(ct(one, nan)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); } if(test_infinity) { result = boost::math::acos(ct(-infinity, one)); BOOST_CHECK_CLOSE(result.real(), pi, eps*200); BOOST_CHECK(result.imag() == -infinity); result = boost::math::acos(ct(infinity, one)); BOOST_CHECK(result.real() == 0); BOOST_CHECK(result.imag() == -infinity); result = boost::math::acos(ct(-infinity, -one)); BOOST_CHECK_CLOSE(result.real(), pi, eps*200); BOOST_CHECK(result.imag() == infinity); result = boost::math::acos(ct(infinity, -one)); BOOST_CHECK(result.real() == 0); BOOST_CHECK(result.imag() == infinity); result = boost::math::acos(ct(-infinity, infinity)); BOOST_CHECK_CLOSE(result.real(), three_quarter_pi, eps*200); BOOST_CHECK(result.imag() == -infinity); result = boost::math::acos(ct(infinity, infinity)); BOOST_CHECK_CLOSE(result.real(), quarter_pi, eps*200); BOOST_CHECK(result.imag() == -infinity); result = boost::math::acos(ct(-infinity, -infinity)); BOOST_CHECK_CLOSE(result.real(), three_quarter_pi, eps*200); BOOST_CHECK(result.imag() == infinity); result = boost::math::acos(ct(infinity, -infinity)); BOOST_CHECK_CLOSE(result.real(), quarter_pi, eps*200); BOOST_CHECK(result.imag() == infinity); } if(test_nan) { result = boost::math::acos(ct(infinity, nan)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(std::fabs(result.imag()) == infinity); result = boost::math::acos(ct(-infinity, nan)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(std::fabs(result.imag()) == infinity); result = boost::math::acos(ct(nan, zero)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::acos(ct(nan, -zero)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::acos(ct(nan, one)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::acos(ct(nan, -one)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::acos(ct(nan, nan)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::acos(ct(nan, infinity)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(result.imag() == -infinity); result = boost::math::acos(ct(nan, -infinity)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(result.imag() == infinity); } // // C99 spot tests for acosh: // result = boost::math::acosh(ct(zero, zero)); BOOST_CHECK(result.real() == 0); BOOST_CHECK_CLOSE(result.imag(), half_pi, eps*200); result = boost::math::acosh(ct(zero, mzero)); BOOST_CHECK(result.real() == 0); BOOST_CHECK_CLOSE(result.imag(), half_pi, eps*200); result = boost::math::acosh(ct(mzero, zero)); BOOST_CHECK(result.real() == 0); BOOST_CHECK_CLOSE(result.imag(), half_pi, eps*200); result = boost::math::acosh(ct(mzero, mzero)); BOOST_CHECK(result.real() == 0); BOOST_CHECK_CLOSE(result.imag(), half_pi, eps*200); if(test_infinity) { result = boost::math::acosh(ct(one, infinity)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK_CLOSE(result.imag(), half_pi, eps*200); result = boost::math::acosh(ct(one, -infinity)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK_CLOSE(result.imag(), -half_pi, eps*200); } if(test_nan) { result = boost::math::acosh(ct(one, nan)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); } if(test_infinity) { result = boost::math::acosh(ct(-infinity, one)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK_CLOSE(result.imag(), pi, eps*200); result = boost::math::acosh(ct(infinity, one)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK(result.imag() == 0); result = boost::math::acosh(ct(-infinity, -one)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK_CLOSE(result.imag(), -pi, eps*200); result = boost::math::acosh(ct(infinity, -one)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK(result.imag() == 0); result = boost::math::acosh(ct(-infinity, infinity)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK_CLOSE(result.imag(), three_quarter_pi, eps*200); result = boost::math::acosh(ct(infinity, infinity)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK_CLOSE(result.imag(), quarter_pi, eps*200); result = boost::math::acosh(ct(-infinity, -infinity)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK_CLOSE(result.imag(), -three_quarter_pi, eps*200); result = boost::math::acosh(ct(infinity, -infinity)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK_CLOSE(result.imag(), -quarter_pi, eps*200); } if(test_nan) { result = boost::math::acosh(ct(infinity, nan)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::acosh(ct(-infinity, nan)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::acosh(ct(nan, one)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::acosh(ct(nan, infinity)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::acosh(ct(nan, -one)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::acosh(ct(nan, -infinity)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::acosh(ct(nan, nan)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); } // // C99 spot checks for asinh: // result = boost::math::asinh(ct(zero, zero)); BOOST_CHECK(result.real() == 0); BOOST_CHECK(result.imag() == 0); result = boost::math::asinh(ct(mzero, zero)); BOOST_CHECK(result.real() == 0); BOOST_CHECK(result.imag() == 0); result = boost::math::asinh(ct(zero, mzero)); BOOST_CHECK(result.real() == 0); BOOST_CHECK(result.imag() == 0); result = boost::math::asinh(ct(mzero, mzero)); BOOST_CHECK(result.real() == 0); BOOST_CHECK(result.imag() == 0); if(test_infinity) { result = boost::math::asinh(ct(one, infinity)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK_CLOSE(result.imag(), half_pi, eps*200); result = boost::math::asinh(ct(one, -infinity)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK_CLOSE(result.imag(), -half_pi, eps*200); result = boost::math::asinh(ct(-one, -infinity)); BOOST_CHECK(result.real() == -infinity); BOOST_CHECK_CLOSE(result.imag(), -half_pi, eps*200); result = boost::math::asinh(ct(-one, infinity)); BOOST_CHECK(result.real() == -infinity); BOOST_CHECK_CLOSE(result.imag(), half_pi, eps*200); } if(test_nan) { result = boost::math::asinh(ct(one, nan)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::asinh(ct(-one, nan)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); result = boost::math::asinh(ct(zero, nan)); BOOST_CHECK(boost::math::detail::test_is_nan(result.real())); BOOST_CHECK(boost::math::detail::test_is_nan(result.imag())); } if(test_infinity) { result = boost::math::asinh(ct(infinity, one)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK(result.imag() == 0); result = boost::math::asinh(ct(infinity, -one)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK(result.imag() == 0); result = boost::math::asinh(ct(-infinity, -one)); BOOST_CHECK(result.real() == -infinity); BOOST_CHECK(result.imag() == 0); result = boost::math::asinh(ct(-infinity, one)); BOOST_CHECK(result.real() == -infinity); BOOST_CHECK(result.imag() == 0); result = boost::math::asinh(ct(infinity, infinity)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK_CLOSE(result.imag(), quarter_pi, eps*200); result = boost::math::asinh(ct(infinity, -infinity)); BOOST_CHECK(result.real() == infinity); BOOST_CHECK_CLOSE(result.imag(), -quarter_pi, eps*200);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -