Sam Chaudry
Upload folder using huggingface_hub
7885a28 verified
raw
history blame
3.24 kB
/* 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