v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
ieee754.cc File Reference
#include "src/base/ieee754.h"
#include <cmath>
#include <limits>
#include "src/base/build_config.h"
#include "src/base/macros.h"
#include "src/base/overflowing-math.h"
Include dependency graph for ieee754.cc:

Go to the source code of this file.

Namespaces

namespace  v8
 
namespace  v8::base
 
namespace  v8::base::ieee754
 
namespace  v8::base::ieee754::legacy
 

Macros

#define EXTRACT_WORDS(ix0, ix1, d)
 
#define GET_HIGH_WORD(i, d)
 
#define GET_LOW_WORD(i, d)
 
#define INSERT_WORDS(d, ix0, ix1)
 
#define SET_HIGH_WORD(d, v)
 
#define one   xxx[13]
 
#define pio4   xxx[14]
 
#define pio4lo   xxx[15]
 
#define T   xxx
 

Functions

double v8::base::ieee754::acos (double x)
 
double v8::base::ieee754::acosh (double x)
 
double v8::base::ieee754::asin (double x)
 
double v8::base::ieee754::asinh (double x)
 
double v8::base::ieee754::atan (double x)
 
double v8::base::ieee754::atan2 (double y, double x)
 
double v8::base::ieee754::cos (double x)
 
double v8::base::ieee754::exp (double x)
 
double v8::base::ieee754::atanh (double x)
 
double v8::base::ieee754::log (double x)
 
double v8::base::ieee754::log1p (double x)
 
static double v8::base::ieee754::k_log1p (double f)
 
double v8::base::ieee754::log2 (double x)
 
double v8::base::ieee754::log10 (double x)
 
double v8::base::ieee754::expm1 (double x)
 
double v8::base::ieee754::cbrt (double x)
 
double v8::base::ieee754::sin (double x)
 
double v8::base::ieee754::tan (double x)
 
double v8::base::ieee754::cosh (double x)
 
double v8::base::ieee754::legacy::pow (double x, double y)
 
double v8::base::ieee754::sinh (double x)
 
double v8::base::ieee754::tanh (double x)
 

Variables

static const double v8::base::ieee754::Lg1 = 6.666666666666735130e-01
 
static const double v8::base::ieee754::Lg2 = 3.999999999940941908e-01
 
static const double v8::base::ieee754::Lg3 = 2.857142874366239149e-01
 
static const double v8::base::ieee754::Lg4 = 2.222219843214978396e-01
 
static const double v8::base::ieee754::Lg5 = 1.818357216161805012e-01
 
static const double v8::base::ieee754::Lg6 = 1.531383769920937332e-01
 
static const double v8::base::ieee754::Lg7 = 1.479819860511658591e-01
 

Macro Definition Documentation

◆ EXTRACT_WORDS

#define EXTRACT_WORDS ( ix0,
ix1,
d )
Value:
do { \
uint64_t bits = base::bit_cast<uint64_t>(d); \
(ix0) = bits >> 32; \
(ix1) = bits & 0xFFFFFFFFu; \
} while (false)

Definition at line 54 of file ieee754.cc.

◆ GET_HIGH_WORD

#define GET_HIGH_WORD ( i,
d )
Value:
do { \
uint64_t bits = base::bit_cast<uint64_t>(d); \
(i) = bits >> 32; \
} while (false)

Definition at line 63 of file ieee754.cc.

◆ GET_LOW_WORD

#define GET_LOW_WORD ( i,
d )
Value:
do { \
uint64_t bits = base::bit_cast<uint64_t>(d); \
(i) = bits & 0xFFFFFFFFu; \
} while (false)

Definition at line 71 of file ieee754.cc.

◆ INSERT_WORDS

#define INSERT_WORDS ( d,
ix0,
ix1 )
Value:
do { \
uint64_t bits = 0; \
bits |= static_cast<uint64_t>(ix0) << 32; \
bits |= static_cast<uint32_t>(ix1); \
(d) = base::bit_cast<double>(bits); \
} while (false)

Definition at line 79 of file ieee754.cc.

◆ one

#define one   xxx[13]

◆ pio4

#define pio4   xxx[14]

◆ pio4lo

#define pio4lo   xxx[15]

◆ SET_HIGH_WORD

#define SET_HIGH_WORD ( d,
v )
Value:
do { \
uint64_t bits = base::bit_cast<uint64_t>(d); \
bits &= 0x0000'0000'FFFF'FFFF; \ bits |= static_cast<uint64_t>(v) << 32; \ (d) = base::bit_cast<double>(bits); \ } while (false)#define SET_LOW_WORD(d, v) \ do { \ uint64_t bits = base::bit_cast<uint64_t>(d); \ bits &= 0xFFFF'FFFF'0000'0000; \
bits |= static_cast<uint32_t>(v); \
(d) = base::bit_cast<double>(bits); \
} while (false)

Definition at line 89 of file ieee754.cc.

◆ T

#define T   xxx