88 lines
3.2 KiB
C++
88 lines
3.2 KiB
C++
/* Translated into C++ by SciPy developers in 2024.
|
|
* Original header with Copyright information appears below.
|
|
*
|
|
* Since we support only IEEE-754 floating point numbers, conditional logic
|
|
* supporting other arithmetic types has been removed.
|
|
*/
|
|
|
|
/*
|
|
*
|
|
*
|
|
* const.c
|
|
*
|
|
* Globally declared constants
|
|
*
|
|
*
|
|
*
|
|
* SYNOPSIS:
|
|
*
|
|
* extern double nameofconstant;
|
|
*
|
|
*
|
|
*
|
|
*
|
|
* DESCRIPTION:
|
|
*
|
|
* This file contains a number of mathematical constants and
|
|
* also some needed size parameters of the computer arithmetic.
|
|
* The values are supplied as arrays of hexadecimal integers
|
|
* for IEEE arithmetic, and in a normal decimal scientific notation for
|
|
* other machines. The particular notation used is determined
|
|
* by a symbol (IBMPC, or UNK) defined in the include file
|
|
* mconf.h.
|
|
*
|
|
* The default size parameters are as follows.
|
|
*
|
|
* For UNK mode:
|
|
* MACHEP = 1.38777878078144567553E-17 2**-56
|
|
* MAXLOG = 8.8029691931113054295988E1 log(2**127)
|
|
* MINLOG = -8.872283911167299960540E1 log(2**-128)
|
|
*
|
|
* For IEEE arithmetic (IBMPC):
|
|
* MACHEP = 1.11022302462515654042E-16 2**-53
|
|
* MAXLOG = 7.09782712893383996843E2 log(2**1024)
|
|
* MINLOG = -7.08396418532264106224E2 log(2**-1022)
|
|
*
|
|
* The global symbols for mathematical constants are
|
|
* SQ2OPI = 7.9788456080286535587989E-1 sqrt( 2/pi )
|
|
* LOGSQ2 = 3.46573590279972654709E-1 log(2)/2
|
|
* THPIO4 = 2.35619449019234492885 3*pi/4
|
|
*
|
|
* These lists are subject to change.
|
|
*/
|
|
/* const.c */
|
|
|
|
/*
|
|
* Cephes Math Library Release 2.3: March, 1995
|
|
* Copyright 1984, 1995 by Stephen L. Moshier
|
|
*/
|
|
#pragma once
|
|
|
|
namespace xsf {
|
|
namespace cephes {
|
|
namespace detail {
|
|
constexpr std::uint64_t MAXITER = 500;
|
|
constexpr double MACHEP = 1.11022302462515654042E-16; // 2**-53
|
|
constexpr double MAXLOG = 7.09782712893383996732E2; // log(DBL_MAX)
|
|
constexpr double MINLOG = -7.451332191019412076235E2; // log 2**-1022
|
|
constexpr double SQRT1OPI = 5.64189583547756286948E-1; // sqrt( 1/pi)
|
|
constexpr double SQRT2OPI = 7.9788456080286535587989E-1; // sqrt( 2/pi )
|
|
constexpr double SQRT2PI = 0.79788456080286535587989; // sqrt(2pi)
|
|
constexpr double LOGSQ2 = 3.46573590279972654709E-1; // log(2)/2
|
|
constexpr double THPIO4 = 2.35619449019234492885; // 3*pi/4
|
|
constexpr double SQRT3 = 1.732050807568877293527; // sqrt(3)
|
|
constexpr double PI180 = 1.74532925199432957692E-2; // pi/180
|
|
constexpr double SQRTPI = 2.50662827463100050242E0; // sqrt(pi)
|
|
constexpr double LOGPI = 1.14472988584940017414; // log(pi)
|
|
constexpr double MAXGAM = 171.624376956302725;
|
|
constexpr double LOGSQRT2PI = 0.9189385332046727; // log(sqrt(pi))
|
|
|
|
// Following two added by SciPy developers.
|
|
// Euler's constant
|
|
constexpr double SCIPY_EULER = 0.577215664901532860606512090082402431;
|
|
// e as long double
|
|
constexpr long double SCIPY_El = 2.718281828459045235360287471352662498L;
|
|
} // namespace detail
|
|
} // namespace cephes
|
|
} // namespace xsf
|