// Copyright (c) Microsoft Corporation.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

// values used by math functions -- IEEE 754 version

#if defined(_M_CEE_PURE)
#if defined(MRTDLL)
#undef MRTDLL
#endif
#endif

#include "xmath.hpp"

// macros
#define NBITS (48 + _DOFF)

#define INIT(w0)      {0, 0, 0, w0}
#define INIT2(w0, w1) {w1, 0, 0, w0}

// static data
extern /* const */ _Dconst _Denorm  = {INIT2(0, 1)};
extern const _Dconst _Eps           = {INIT((_DBIAS - NBITS - 1) << _DOFF)};
extern /* const */ _Dconst _Hugeval = {INIT(_DMAX << _DOFF)};
extern /* const */ _Dconst _Inf     = {INIT(_DMAX << _DOFF)};
extern /* const */ _Dconst _Nan     = {INIT((_DMAX << _DOFF) | (1 << (_DOFF - 1)))};
extern /* const */ _Dconst _Snan    = {INIT2(_DMAX << _DOFF, 1)};
extern const _Dconst _Rteps         = {INIT((_DBIAS - NBITS / 2) << _DOFF)};

extern const double _Xbig = (NBITS + 2) * 0.347;
