xref: /netbsd-src/external/gpl3/gcc.old/dist/libstdc++-v3/src/shared/hashtable-aux.cc (revision 8feb0f0b7eaff0608f8350bbfa3098827b4bb91b)
136ac495dSmrg // std::__detail and std::tr1::__detail definitions -*- C++ -*-
236ac495dSmrg 
3*8feb0f0bSmrg // Copyright (C) 2007-2020 Free Software Foundation, Inc.
436ac495dSmrg //
536ac495dSmrg // This file is part of the GNU ISO C++ Library.  This library is free
636ac495dSmrg // software; you can redistribute it and/or modify it under the
736ac495dSmrg // terms of the GNU General Public License as published by the
836ac495dSmrg // Free Software Foundation; either version 3, or (at your option)
936ac495dSmrg // any later version.
1036ac495dSmrg 
1136ac495dSmrg // This library is distributed in the hope that it will be useful,
1236ac495dSmrg // but WITHOUT ANY WARRANTY; without even the implied warranty of
1336ac495dSmrg // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1436ac495dSmrg // GNU General Public License for more details.
1536ac495dSmrg 
1636ac495dSmrg // Under Section 7 of GPL version 3, you are granted additional
1736ac495dSmrg // permissions described in the GCC Runtime Library Exception, version
1836ac495dSmrg // 3.1, as published by the Free Software Foundation.
1936ac495dSmrg 
2036ac495dSmrg // You should have received a copy of the GNU General Public License and
2136ac495dSmrg // a copy of the GCC Runtime Library Exception along with this program;
2236ac495dSmrg // see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
2336ac495dSmrg // <http://www.gnu.org/licenses/>.
2436ac495dSmrg 
2536ac495dSmrg namespace __detail
2636ac495dSmrg {
2736ac495dSmrg   // The sentinel value is kept only for abi backward compatibility.
2836ac495dSmrg   extern const unsigned long __prime_list[] = // 256 + 1 or 256 + 48 + 1
2936ac495dSmrg   {
3036ac495dSmrg     2ul, 3ul, 5ul, 7ul, 11ul, 13ul, 17ul, 19ul, 23ul, 29ul, 31ul,
3136ac495dSmrg     37ul, 41ul, 43ul, 47ul, 53ul, 59ul, 61ul, 67ul, 71ul, 73ul, 79ul,
3236ac495dSmrg     83ul, 89ul, 97ul, 103ul, 109ul, 113ul, 127ul, 137ul, 139ul, 149ul,
3336ac495dSmrg     157ul, 167ul, 179ul, 193ul, 199ul, 211ul, 227ul, 241ul, 257ul,
3436ac495dSmrg     277ul, 293ul, 313ul, 337ul, 359ul, 383ul, 409ul, 439ul, 467ul,
3536ac495dSmrg     503ul, 541ul, 577ul, 619ul, 661ul, 709ul, 761ul, 823ul, 887ul,
3636ac495dSmrg     953ul, 1031ul, 1109ul, 1193ul, 1289ul, 1381ul, 1493ul, 1613ul,
3736ac495dSmrg     1741ul, 1879ul, 2029ul, 2179ul, 2357ul, 2549ul, 2753ul, 2971ul,
3836ac495dSmrg     3209ul, 3469ul, 3739ul, 4027ul, 4349ul, 4703ul, 5087ul, 5503ul,
3936ac495dSmrg     5953ul, 6427ul, 6949ul, 7517ul, 8123ul, 8783ul, 9497ul, 10273ul,
4036ac495dSmrg     11113ul, 12011ul, 12983ul, 14033ul, 15173ul, 16411ul, 17749ul,
4136ac495dSmrg     19183ul, 20753ul, 22447ul, 24281ul, 26267ul, 28411ul, 30727ul,
4236ac495dSmrg     33223ul, 35933ul, 38873ul, 42043ul, 45481ul, 49201ul, 53201ul,
4336ac495dSmrg     57557ul, 62233ul, 67307ul, 72817ul, 78779ul, 85229ul, 92203ul,
4436ac495dSmrg     99733ul, 107897ul, 116731ul, 126271ul, 136607ul, 147793ul,
4536ac495dSmrg     159871ul, 172933ul, 187091ul, 202409ul, 218971ul, 236897ul,
4636ac495dSmrg     256279ul, 277261ul, 299951ul, 324503ul, 351061ul, 379787ul,
4736ac495dSmrg     410857ul, 444487ul, 480881ul, 520241ul, 562841ul, 608903ul,
4836ac495dSmrg     658753ul, 712697ul, 771049ul, 834181ul, 902483ul, 976369ul,
4936ac495dSmrg     1056323ul, 1142821ul, 1236397ul, 1337629ul, 1447153ul, 1565659ul,
5036ac495dSmrg     1693859ul, 1832561ul, 1982627ul, 2144977ul, 2320627ul, 2510653ul,
5136ac495dSmrg     2716249ul, 2938679ul, 3179303ul, 3439651ul, 3721303ul, 4026031ul,
5236ac495dSmrg     4355707ul, 4712381ul, 5098259ul, 5515729ul, 5967347ul, 6456007ul,
5336ac495dSmrg     6984629ul, 7556579ul, 8175383ul, 8844859ul, 9569143ul, 10352717ul,
5436ac495dSmrg     11200489ul, 12117689ul, 13109983ul, 14183539ul, 15345007ul,
5536ac495dSmrg     16601593ul, 17961079ul, 19431899ul, 21023161ul, 22744717ul,
5636ac495dSmrg     24607243ul, 26622317ul, 28802401ul, 31160981ul, 33712729ul,
5736ac495dSmrg     36473443ul, 39460231ul, 42691603ul, 46187573ul, 49969847ul,
5836ac495dSmrg     54061849ul, 58488943ul, 63278561ul, 68460391ul, 74066549ul,
5936ac495dSmrg     80131819ul, 86693767ul, 93793069ul, 101473717ul, 109783337ul,
6036ac495dSmrg     118773397ul, 128499677ul, 139022417ul, 150406843ul, 162723577ul,
6136ac495dSmrg     176048909ul, 190465427ul, 206062531ul, 222936881ul, 241193053ul,
6236ac495dSmrg     260944219ul, 282312799ul, 305431229ul, 330442829ul, 357502601ul,
6336ac495dSmrg     386778277ul, 418451333ul, 452718089ul, 489790921ul, 529899637ul,
6436ac495dSmrg     573292817ul, 620239453ul, 671030513ul, 725980837ul, 785430967ul,
6536ac495dSmrg     849749479ul, 919334987ul, 994618837ul, 1076067617ul, 1164186217ul,
6636ac495dSmrg     1259520799ul, 1362662261ul, 1474249943ul, 1594975441ul, 1725587117ul,
6736ac495dSmrg     1866894511ul, 2019773507ul, 2185171673ul, 2364114217ul, 2557710269ul,
6836ac495dSmrg     2767159799ul, 2993761039ul, 3238918481ul, 3504151727ul, 3791104843ul,
6936ac495dSmrg     4101556399ul, 4294967291ul,
7036ac495dSmrg     // Sentinel, so we don't have to test the result of lower_bound,
7136ac495dSmrg     // or, on 64-bit machines, rest of the table.
7236ac495dSmrg #if __SIZEOF_LONG__ != 8
7336ac495dSmrg     4294967291ul
7436ac495dSmrg #else
7536ac495dSmrg     6442450933ul, 8589934583ul, 12884901857ul, 17179869143ul,
7636ac495dSmrg     25769803693ul, 34359738337ul, 51539607367ul, 68719476731ul,
7736ac495dSmrg     103079215087ul, 137438953447ul, 206158430123ul, 274877906899ul,
7836ac495dSmrg     412316860387ul, 549755813881ul, 824633720731ul, 1099511627689ul,
7936ac495dSmrg     1649267441579ul, 2199023255531ul, 3298534883309ul, 4398046511093ul,
8036ac495dSmrg     6597069766607ul, 8796093022151ul, 13194139533241ul, 17592186044399ul,
8136ac495dSmrg     26388279066581ul, 35184372088777ul, 52776558133177ul, 70368744177643ul,
8236ac495dSmrg     105553116266399ul, 140737488355213ul, 211106232532861ul, 281474976710597ul,
8336ac495dSmrg     562949953421231ul, 1125899906842597ul, 2251799813685119ul,
8436ac495dSmrg     4503599627370449ul, 9007199254740881ul, 18014398509481951ul,
8536ac495dSmrg     36028797018963913ul, 72057594037927931ul, 144115188075855859ul,
8636ac495dSmrg     288230376151711717ul, 576460752303423433ul,
8736ac495dSmrg     1152921504606846883ul, 2305843009213693951ul,
8836ac495dSmrg     4611686018427387847ul, 9223372036854775783ul,
8936ac495dSmrg     18446744073709551557ul, 18446744073709551557ul
9036ac495dSmrg #endif
9136ac495dSmrg   };
9236ac495dSmrg } // namespace __detail
93