Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-03 08:13:14

0001 // -*- C++ -*-
0002 //===----------------------------------------------------------------------===//
0003 //
0004 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0005 // See https://llvm.org/LICENSE.txt for license information.
0006 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0007 //
0008 //===----------------------------------------------------------------------===//
0009 
0010 #ifndef _LIBCPP___CHARCONV_TABLES
0011 #define _LIBCPP___CHARCONV_TABLES
0012 
0013 #include <__config>
0014 #include <cstdint>
0015 
0016 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
0017 #  pragma GCC system_header
0018 #endif
0019 
0020 _LIBCPP_BEGIN_NAMESPACE_STD
0021 
0022 #if _LIBCPP_STD_VER >= 17
0023 
0024 namespace __itoa {
0025 
0026 inline constexpr char __base_2_lut[64] = {
0027     '0', '0', '0', '0', '0', '0', '0', '1', '0', '0', '1', '0', '0', '0', '1', '1', '0', '1', '0', '0', '0', '1',
0028     '0', '1', '0', '1', '1', '0', '0', '1', '1', '1', '1', '0', '0', '0', '1', '0', '0', '1', '1', '0', '1', '0',
0029     '1', '0', '1', '1', '1', '1', '0', '0', '1', '1', '0', '1', '1', '1', '1', '0', '1', '1', '1', '1'};
0030 
0031 inline constexpr char __base_8_lut[128] = {
0032     '0', '0', '0', '1', '0', '2', '0', '3', '0', '4', '0', '5', '0', '6', '0', '7', '1', '0', '1', '1', '1', '2',
0033     '1', '3', '1', '4', '1', '5', '1', '6', '1', '7', '2', '0', '2', '1', '2', '2', '2', '3', '2', '4', '2', '5',
0034     '2', '6', '2', '7', '3', '0', '3', '1', '3', '2', '3', '3', '3', '4', '3', '5', '3', '6', '3', '7', '4', '0',
0035     '4', '1', '4', '2', '4', '3', '4', '4', '4', '5', '4', '6', '4', '7', '5', '0', '5', '1', '5', '2', '5', '3',
0036     '5', '4', '5', '5', '5', '6', '5', '7', '6', '0', '6', '1', '6', '2', '6', '3', '6', '4', '6', '5', '6', '6',
0037     '6', '7', '7', '0', '7', '1', '7', '2', '7', '3', '7', '4', '7', '5', '7', '6', '7', '7'};
0038 
0039 inline constexpr char __base_16_lut[512] = {
0040     '0', '0', '0', '1', '0', '2', '0', '3', '0', '4', '0', '5', '0', '6', '0', '7', '0', '8', '0', '9', '0', 'a', '0',
0041     'b', '0', 'c', '0', 'd', '0', 'e', '0', 'f', '1', '0', '1', '1', '1', '2', '1', '3', '1', '4', '1', '5', '1', '6',
0042     '1', '7', '1', '8', '1', '9', '1', 'a', '1', 'b', '1', 'c', '1', 'd', '1', 'e', '1', 'f', '2', '0', '2', '1', '2',
0043     '2', '2', '3', '2', '4', '2', '5', '2', '6', '2', '7', '2', '8', '2', '9', '2', 'a', '2', 'b', '2', 'c', '2', 'd',
0044     '2', 'e', '2', 'f', '3', '0', '3', '1', '3', '2', '3', '3', '3', '4', '3', '5', '3', '6', '3', '7', '3', '8', '3',
0045     '9', '3', 'a', '3', 'b', '3', 'c', '3', 'd', '3', 'e', '3', 'f', '4', '0', '4', '1', '4', '2', '4', '3', '4', '4',
0046     '4', '5', '4', '6', '4', '7', '4', '8', '4', '9', '4', 'a', '4', 'b', '4', 'c', '4', 'd', '4', 'e', '4', 'f', '5',
0047     '0', '5', '1', '5', '2', '5', '3', '5', '4', '5', '5', '5', '6', '5', '7', '5', '8', '5', '9', '5', 'a', '5', 'b',
0048     '5', 'c', '5', 'd', '5', 'e', '5', 'f', '6', '0', '6', '1', '6', '2', '6', '3', '6', '4', '6', '5', '6', '6', '6',
0049     '7', '6', '8', '6', '9', '6', 'a', '6', 'b', '6', 'c', '6', 'd', '6', 'e', '6', 'f', '7', '0', '7', '1', '7', '2',
0050     '7', '3', '7', '4', '7', '5', '7', '6', '7', '7', '7', '8', '7', '9', '7', 'a', '7', 'b', '7', 'c', '7', 'd', '7',
0051     'e', '7', 'f', '8', '0', '8', '1', '8', '2', '8', '3', '8', '4', '8', '5', '8', '6', '8', '7', '8', '8', '8', '9',
0052     '8', 'a', '8', 'b', '8', 'c', '8', 'd', '8', 'e', '8', 'f', '9', '0', '9', '1', '9', '2', '9', '3', '9', '4', '9',
0053     '5', '9', '6', '9', '7', '9', '8', '9', '9', '9', 'a', '9', 'b', '9', 'c', '9', 'd', '9', 'e', '9', 'f', 'a', '0',
0054     'a', '1', 'a', '2', 'a', '3', 'a', '4', 'a', '5', 'a', '6', 'a', '7', 'a', '8', 'a', '9', 'a', 'a', 'a', 'b', 'a',
0055     'c', 'a', 'd', 'a', 'e', 'a', 'f', 'b', '0', 'b', '1', 'b', '2', 'b', '3', 'b', '4', 'b', '5', 'b', '6', 'b', '7',
0056     'b', '8', 'b', '9', 'b', 'a', 'b', 'b', 'b', 'c', 'b', 'd', 'b', 'e', 'b', 'f', 'c', '0', 'c', '1', 'c', '2', 'c',
0057     '3', 'c', '4', 'c', '5', 'c', '6', 'c', '7', 'c', '8', 'c', '9', 'c', 'a', 'c', 'b', 'c', 'c', 'c', 'd', 'c', 'e',
0058     'c', 'f', 'd', '0', 'd', '1', 'd', '2', 'd', '3', 'd', '4', 'd', '5', 'd', '6', 'd', '7', 'd', '8', 'd', '9', 'd',
0059     'a', 'd', 'b', 'd', 'c', 'd', 'd', 'd', 'e', 'd', 'f', 'e', '0', 'e', '1', 'e', '2', 'e', '3', 'e', '4', 'e', '5',
0060     'e', '6', 'e', '7', 'e', '8', 'e', '9', 'e', 'a', 'e', 'b', 'e', 'c', 'e', 'd', 'e', 'e', 'e', 'f', 'f', '0', 'f',
0061     '1', 'f', '2', 'f', '3', 'f', '4', 'f', '5', 'f', '6', 'f', '7', 'f', '8', 'f', '9', 'f', 'a', 'f', 'b', 'f', 'c',
0062     'f', 'd', 'f', 'e', 'f', 'f'};
0063 
0064 inline constexpr uint32_t __pow10_32[10] = {
0065     UINT32_C(0),
0066     UINT32_C(10),
0067     UINT32_C(100),
0068     UINT32_C(1000),
0069     UINT32_C(10000),
0070     UINT32_C(100000),
0071     UINT32_C(1000000),
0072     UINT32_C(10000000),
0073     UINT32_C(100000000),
0074     UINT32_C(1000000000)};
0075 
0076 inline constexpr uint64_t __pow10_64[20] = {
0077     UINT64_C(0),
0078     UINT64_C(10),
0079     UINT64_C(100),
0080     UINT64_C(1000),
0081     UINT64_C(10000),
0082     UINT64_C(100000),
0083     UINT64_C(1000000),
0084     UINT64_C(10000000),
0085     UINT64_C(100000000),
0086     UINT64_C(1000000000),
0087     UINT64_C(10000000000),
0088     UINT64_C(100000000000),
0089     UINT64_C(1000000000000),
0090     UINT64_C(10000000000000),
0091     UINT64_C(100000000000000),
0092     UINT64_C(1000000000000000),
0093     UINT64_C(10000000000000000),
0094     UINT64_C(100000000000000000),
0095     UINT64_C(1000000000000000000),
0096     UINT64_C(10000000000000000000)};
0097 
0098 #  if _LIBCPP_HAS_INT128
0099 inline constexpr int __pow10_128_offset      = 0;
0100 inline constexpr __uint128_t __pow10_128[40] = {
0101     UINT64_C(0),
0102     UINT64_C(10),
0103     UINT64_C(100),
0104     UINT64_C(1000),
0105     UINT64_C(10000),
0106     UINT64_C(100000),
0107     UINT64_C(1000000),
0108     UINT64_C(10000000),
0109     UINT64_C(100000000),
0110     UINT64_C(1000000000),
0111     UINT64_C(10000000000),
0112     UINT64_C(100000000000),
0113     UINT64_C(1000000000000),
0114     UINT64_C(10000000000000),
0115     UINT64_C(100000000000000),
0116     UINT64_C(1000000000000000),
0117     UINT64_C(10000000000000000),
0118     UINT64_C(100000000000000000),
0119     UINT64_C(1000000000000000000),
0120     UINT64_C(10000000000000000000),
0121     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(10),
0122     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(100),
0123     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(1000),
0124     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(10000),
0125     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(100000),
0126     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(1000000),
0127     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(10000000),
0128     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(100000000),
0129     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(1000000000),
0130     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(10000000000),
0131     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(100000000000),
0132     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(1000000000000),
0133     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(10000000000000),
0134     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(100000000000000),
0135     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(1000000000000000),
0136     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(10000000000000000),
0137     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(100000000000000000),
0138     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(1000000000000000000),
0139     __uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(10000000000000000000),
0140     (__uint128_t(UINT64_C(10000000000000000000)) * UINT64_C(10000000000000000000)) * 10};
0141 #  endif
0142 
0143 inline constexpr char __digits_base_10[200] = {
0144     // clang-format off
0145     '0', '0', '0', '1', '0', '2', '0', '3', '0', '4', '0', '5', '0', '6', '0', '7', '0', '8', '0', '9',
0146     '1', '0', '1', '1', '1', '2', '1', '3', '1', '4', '1', '5', '1', '6', '1', '7', '1', '8', '1', '9',
0147     '2', '0', '2', '1', '2', '2', '2', '3', '2', '4', '2', '5', '2', '6', '2', '7', '2', '8', '2', '9',
0148     '3', '0', '3', '1', '3', '2', '3', '3', '3', '4', '3', '5', '3', '6', '3', '7', '3', '8', '3', '9',
0149     '4', '0', '4', '1', '4', '2', '4', '3', '4', '4', '4', '5', '4', '6', '4', '7', '4', '8', '4', '9',
0150     '5', '0', '5', '1', '5', '2', '5', '3', '5', '4', '5', '5', '5', '6', '5', '7', '5', '8', '5', '9',
0151     '6', '0', '6', '1', '6', '2', '6', '3', '6', '4', '6', '5', '6', '6', '6', '7', '6', '8', '6', '9',
0152     '7', '0', '7', '1', '7', '2', '7', '3', '7', '4', '7', '5', '7', '6', '7', '7', '7', '8', '7', '9',
0153     '8', '0', '8', '1', '8', '2', '8', '3', '8', '4', '8', '5', '8', '6', '8', '7', '8', '8', '8', '9',
0154     '9', '0', '9', '1', '9', '2', '9', '3', '9', '4', '9', '5', '9', '6', '9', '7', '9', '8', '9', '9'};
0155 // clang-format on
0156 
0157 } // namespace __itoa
0158 
0159 #endif // _LIBCPP_STD_VER >= 17
0160 
0161 _LIBCPP_END_NAMESPACE_STD
0162 
0163 #endif // _LIBCPP___CHARCONV_TABLES