Flutter Engine
The Flutter Engine
|
Namespaces | |
namespace | PowersOfTenCache |
Classes | |
class | Bignum |
class | DiyFp |
class | Double |
class | DoubleToStringConverter |
class | Single |
class | StringBuilder |
class | StringToDoubleConverter |
class | UInt128 |
class | Vector |
Enumerations | |
enum | BignumDtoaMode { BIGNUM_DTOA_SHORTEST , BIGNUM_DTOA_SHORTEST_SINGLE , BIGNUM_DTOA_FIXED , BIGNUM_DTOA_PRECISION } |
enum | FastDtoaMode { FAST_DTOA_SHORTEST , FAST_DTOA_SHORTEST_SINGLE , FAST_DTOA_PRECISION } |
Functions | |
static int | NormalizedExponent (uint64_t significand, int exponent) |
static int | EstimatePower (int exponent) |
static void | InitialScaledStartValues (uint64_t significand, int exponent, bool lower_boundary_is_closer, int estimated_power, bool need_boundary_deltas, Bignum *numerator, Bignum *denominator, Bignum *delta_minus, Bignum *delta_plus) |
static void | FixupMultiply10 (int estimated_power, bool is_even, int *decimal_point, Bignum *numerator, Bignum *denominator, Bignum *delta_minus, Bignum *delta_plus) |
static void | GenerateShortestDigits (Bignum *numerator, Bignum *denominator, Bignum *delta_minus, Bignum *delta_plus, bool is_even, Vector< char > buffer, int *length) |
static void | BignumToFixed (int requested_digits, int *decimal_point, Bignum *numerator, Bignum *denominator, Vector< char > buffer, int *length) |
static void | GenerateCountedDigits (int count, int *decimal_point, Bignum *numerator, Bignum *denominator, Vector< char > buffer, int *length) |
void | BignumDtoa (double v, BignumDtoaMode mode, int requested_digits, Vector< char > buffer, int *length, int *decimal_point) |
static void | InitialScaledStartValuesPositiveExponent (uint64_t significand, int exponent, int estimated_power, bool need_boundary_deltas, Bignum *numerator, Bignum *denominator, Bignum *delta_minus, Bignum *delta_plus) |
static void | InitialScaledStartValuesNegativeExponentPositivePower (uint64_t significand, int exponent, int estimated_power, bool need_boundary_deltas, Bignum *numerator, Bignum *denominator, Bignum *delta_minus, Bignum *delta_plus) |
static void | InitialScaledStartValuesNegativeExponentNegativePower (uint64_t significand, int exponent, int estimated_power, bool need_boundary_deltas, Bignum *numerator, Bignum *denominator, Bignum *delta_minus, Bignum *delta_plus) |
template<typename S > | |
static int | BitSize (const S value) |
static uint64_t | ReadUInt64 (const Vector< const char > buffer, const int from, const int digits_to_read) |
static uint64_t | HexCharValue (const int c) |
template<typename S > | |
static int | SizeInHexChars (S number) |
static char | HexCharOfValue (const int value) |
static BignumDtoaMode | DtoaToBignumDtoaMode (DoubleToStringConverter::DtoaMode dtoa_mode) |
static bool | RoundWeed (Vector< char > buffer, int length, uint64_t distance_too_high_w, uint64_t unsafe_interval, uint64_t rest, uint64_t ten_kappa, uint64_t unit) |
static bool | RoundWeedCounted (Vector< char > buffer, int length, uint64_t rest, uint64_t ten_kappa, uint64_t unit, int *kappa) |
static void | BiggestPowerTen (uint32_t number, int number_bits, uint32_t *power, int *exponent_plus_one) |
static bool | DigitGen (DiyFp low, DiyFp w, DiyFp high, Vector< char > buffer, int *length, int *kappa) |
static bool | DigitGenCounted (DiyFp w, int requested_digits, Vector< char > buffer, int *length, int *kappa) |
static bool | Grisu3 (double v, FastDtoaMode mode, Vector< char > buffer, int *length, int *decimal_exponent) |
static bool | Grisu3Counted (double v, int requested_digits, Vector< char > buffer, int *length, int *decimal_exponent) |
bool | FastDtoa (double v, FastDtoaMode mode, int requested_digits, Vector< char > buffer, int *length, int *decimal_point) |
static void | FillDigits32FixedLength (uint32_t number, int requested_length, Vector< char > buffer, int *length) |
static void | FillDigits32 (uint32_t number, Vector< char > buffer, int *length) |
static void | FillDigits64FixedLength (uint64_t number, Vector< char > buffer, int *length) |
static void | FillDigits64 (uint64_t number, Vector< char > buffer, int *length) |
static void | RoundUp (Vector< char > buffer, int *length, int *decimal_point) |
static void | FillFractionals (uint64_t fractionals, int exponent, int fractional_count, Vector< char > buffer, int *length, int *decimal_point) |
static void | TrimZeros (Vector< char > buffer, int *length, int *decimal_point) |
bool | FastFixedDtoa (double v, int fractional_count, Vector< char > buffer, int *length, int *decimal_point) |
static uint64_t | double_to_uint64 (double d) |
static double | uint64_to_double (uint64_t d64) |
static uint32_t | float_to_uint32 (float f) |
static float | uint32_to_float (uint32_t d32) |
static bool | isWhitespace (int x) |
template<class Iterator > | |
static bool | AdvanceToNonspace (Iterator *current, Iterator end) |
static bool | isDigit (int x, int radix) |
static double | SignedZero (bool sign) |
static bool | IsDecimalDigitForRadix (int c, int radix) |
static bool | IsCharacterDigitForRadix (int c, int radix, char a_character) |
template<class Iterator > | |
static bool | Advance (Iterator *it, uc16 separator, int base, Iterator &end) |
template<class Iterator > | |
static bool | IsHexFloatString (Iterator start, Iterator end, uc16 separator, bool allow_trailing_junk) |
template<int radix_log_2, class Iterator > | |
static double | RadixStringToIeee (Iterator *current, Iterator end, bool sign, uc16 separator, bool parse_as_hex_float, bool allow_trailing_junk, double junk_string_value, bool read_as_double, bool *result_is_junk) |
static Vector< const char > | TrimLeadingZeros (Vector< const char > buffer) |
static void | CutToMaxSignificantDigits (Vector< const char > buffer, int exponent, char *significant_buffer, int *significant_exponent) |
static void | TrimAndCut (Vector< const char > buffer, int exponent, char *buffer_copy_space, int space_size, Vector< const char > *trimmed, int *updated_exponent) |
static uint64_t | ReadUint64 (Vector< const char > buffer, int *number_of_read_digits) |
static void | ReadDiyFp (Vector< const char > buffer, DiyFp *result, int *remaining_decimals) |
static bool | DoubleStrtod (Vector< const char > trimmed, int exponent, double *result) |
static DiyFp | AdjustmentPowerOfTen (int exponent) |
static bool | DiyFpStrtod (Vector< const char > buffer, int exponent, double *result) |
static int | CompareBufferWithDiyFp (Vector< const char > buffer, int exponent, DiyFp diy_fp) |
static bool | ComputeGuess (Vector< const char > trimmed, int exponent, double *guess) |
static bool | IsDigit (const char d) |
static bool | IsNonZeroDigit (const char d) |
static bool | AssertTrimmedDigits (const Vector< const char > &buffer) |
double | StrtodTrimmed (Vector< const char > trimmed, int exponent) |
double | Strtod (Vector< const char > buffer, int exponent) |
static float | SanitizedDoubletof (double d) |
float | Strtof (Vector< const char > buffer, int exponent) |
float | StrtofTrimmed (Vector< const char > trimmed, int exponent) |
Vector< const char > | TrimTrailingZeros (Vector< const char > buffer) |
int | StrLength (const char *string) |
template<class Dest , class Source > | |
Dest | BitCast (const Source &source) |
template<class Dest , class Source > | |
Dest | BitCast (Source *source) |
Variables | |
static const int | kMinimalTargetExponent = -60 |
static const int | kMaximalTargetExponent = -32 |
static unsigned int const | kSmallPowersOfTen [] |
static const int | kFastDtoaMaximalLength = 17 |
static const int | kFastDtoaMaximalSingleLength = 9 |
static const int | kDoubleSignificandSize = 53 |
const int | kMaxSignificantDigits = 772 |
static const char | kWhitespaceTable7 [] = { 32, 13, 10, 9, 11, 12 } |
static const int | kWhitespaceTable7Length = DOUBLE_CONVERSION_ARRAY_SIZE(kWhitespaceTable7) |
static const uc16 | kWhitespaceTable16 [] |
static const int | kWhitespaceTable16Length = DOUBLE_CONVERSION_ARRAY_SIZE(kWhitespaceTable16) |
static const int | kMaxUint64DecimalDigits = 19 |
static const int | kMaxDecimalPower = 309 |
static const int | kMinDecimalPower = -324 |
static const uint64_t | kMaxUint64 = DOUBLE_CONVERSION_UINT64_2PART_C(0xFFFFFFFF, FFFFFFFF) |
static const int | kMaxSignificantDecimalDigits = 780 |
Enumerator | |
---|---|
BIGNUM_DTOA_SHORTEST | |
BIGNUM_DTOA_SHORTEST_SINGLE | |
BIGNUM_DTOA_FIXED | |
BIGNUM_DTOA_PRECISION |
Definition at line 35 of file bignum-dtoa.h.
Enumerator | |
---|---|
FAST_DTOA_SHORTEST | |
FAST_DTOA_SHORTEST_SINGLE | |
FAST_DTOA_PRECISION |
Definition at line 35 of file fast-dtoa.h.
Definition at line 247 of file strtod.cc.
|
static |
Definition at line 190 of file string-to-double.cc.
|
inlinestatic |
Definition at line 139 of file string-to-double.cc.
|
static |
Definition at line 457 of file strtod.cc.
|
static |
Definition at line 240 of file fast-dtoa.cc.
void double_conversion::BignumDtoa | ( | double | v, |
BignumDtoaMode | mode, | ||
int | requested_digits, | ||
Vector< char > | buffer, | ||
int * | length, | ||
int * | decimal_point | ||
) |
Definition at line 89 of file bignum-dtoa.cc.
|
static |
Definition at line 326 of file bignum-dtoa.cc.
Dest double_conversion::BitCast | ( | const Source & | source | ) |
Definition at line 395 of file utils.h.
Dest double_conversion::BitCast | ( | Source * | source | ) |
|
static |
|
static |
Definition at line 388 of file strtod.cc.
|
static |
Definition at line 419 of file strtod.cc.
|
static |
|
static |
Definition at line 300 of file fast-dtoa.cc.
|
static |
Definition at line 428 of file fast-dtoa.cc.
|
static |
Definition at line 270 of file strtod.cc.
|
static |
|
static |
Definition at line 190 of file strtod.cc.
|
static |
Definition at line 372 of file double-to-string.cc.
Definition at line 385 of file bignum-dtoa.cc.
bool double_conversion::FastDtoa | ( | double | v, |
FastDtoaMode | mode, | ||
int | requested_digits, | ||
Vector< char > | buffer, | ||
int * | length, | ||
int * | decimal_point | ||
) |
Definition at line 635 of file fast-dtoa.cc.
bool double_conversion::FastFixedDtoa | ( | double | v, |
int | fractional_count, | ||
Vector< char > | buffer, | ||
int * | length, | ||
int * | decimal_point | ||
) |
Definition at line 310 of file fixed-dtoa.cc.
|
static |
Definition at line 130 of file fixed-dtoa.cc.
|
static |
Definition at line 168 of file fixed-dtoa.cc.
|
static |
Definition at line 153 of file fixed-dtoa.cc.
|
static |
Definition at line 230 of file fixed-dtoa.cc.
|
static |
Definition at line 612 of file bignum-dtoa.cc.
|
static |
|
static |
Definition at line 283 of file bignum-dtoa.cc.
|
static |
Definition at line 185 of file bignum-dtoa.cc.
|
static |
Definition at line 519 of file fast-dtoa.cc.
|
static |
Definition at line 591 of file fast-dtoa.cc.
|
static |
|
static |
|
static |
Definition at line 568 of file bignum-dtoa.cc.
|
static |
Definition at line 484 of file bignum-dtoa.cc.
|
static |
Definition at line 450 of file bignum-dtoa.cc.
|
static |
Definition at line 417 of file bignum-dtoa.cc.
|
static |
Definition at line 184 of file string-to-double.cc.
Definition at line 173 of file string-to-double.cc.
|
static |
|
static |
Definition at line 216 of file string-to-double.cc.
|
static |
|
static |
Definition at line 123 of file string-to-double.cc.
Definition at line 37 of file bignum-dtoa.cc.
|
static |
Definition at line 256 of file string-to-double.cc.
|
static |
|
static |
Definition at line 151 of file strtod.cc.
|
static |
Definition at line 189 of file fixed-dtoa.cc.
|
static |
Definition at line 61 of file fast-dtoa.cc.
|
static |
Definition at line 181 of file fast-dtoa.cc.
|
static |
Definition at line 497 of file strtod.cc.
|
static |
Definition at line 155 of file string-to-double.cc.
|
static |
|
inline |
Definition at line 488 of file strtod.cc.
Definition at line 466 of file strtod.cc.
Definition at line 521 of file strtod.cc.
Definition at line 531 of file strtod.cc.
|
static |
Definition at line 126 of file strtod.cc.
|
static |
Definition at line 292 of file fixed-dtoa.cc.
|
static |
|
static |
|
static |
Definition at line 117 of file fixed-dtoa.cc.
|
static |
Definition at line 49 of file fast-dtoa.h.
|
static |
Definition at line 51 of file fast-dtoa.h.
|
static |
Definition at line 43 of file fast-dtoa.cc.
|
static |
const int double_conversion::kMaxSignificantDigits = 772 |
Definition at line 109 of file string-to-double.cc.
|
static |
|
static |
|
static |
|
static |
Definition at line 42 of file fast-dtoa.cc.
|
static |
Definition at line 236 of file fast-dtoa.cc.
|
static |
Definition at line 116 of file string-to-double.cc.
|
static |
Definition at line 120 of file string-to-double.cc.
|
static |
Definition at line 112 of file string-to-double.cc.
|
static |
Definition at line 113 of file string-to-double.cc.