/* Accurate table for expl().
Copyright (C) 1999-2025 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, see
<https://www.gnu.org/licenses/>. */
/* __expl_table basically consists of four tables, T_EXPL_ARG{1,2} and
T_EXPL_RES{1,2}. All tables use positive and negative indexes, the 0 points
are marked by T_EXPL_* defines.
For ARG1 and RES1 tables lets B be 89 and S 256.0, for ARG2 and RES2 B is 65
and S 32768.0.
These table have the property that, for all integers -B <= i <= B
expl(__expl_table[T_EXPL_ARGN+2*i]+__expl_table[T_EXPL_ARGN+2*i+1]+r) ==
__expl_table[T_EXPL_RESN+i], __expl_table[T_EXPL_RESN+i] is some exact number
with the low 58 bits of the mantissa 0,
__expl_table[T_EXPL_ARGN+2*i] == i/S+s
where absl(s) <= 2^-54 and absl(r) <= 2^-212. */
static const _Float128 __expl_table [] = {
L(-3.47656250000000000584188889839535373E-01), /* bffd640000000000002b1b04213cf000 */
L(6.90417668990715641167244540876988960E-32), /* 3f97667c3fdb588a6ae1af8748357a17 */
L(-3.43749999999999981853132895957607418E-01), /* bffd5ffffffffffffac4ff5f4050b000 */
L(-7.16021898043268093462818380603370350E-33), /* bf94296c8219427edc1431ac2498583e */
L(-3.39843750000000013418643523138766329E-01), /* bffd5c000000000003de1f027a30e000 */
L(8.16920774283317801641347327589583265E-32), /* 3f97a82b65774bdca1b4440d749ed8d3 */
L(-3.35937500000000014998092453039303051E-01), /* bffd5800000000000452a9f4d8857000 */
L(-6.55865578425428447938248396879359670E-32), /* bf97548b7d240f3d034b395e6eecfac8 */
L(-3.32031250000000000981984049529998541E-01), /* bffd540000000000004875277cda5000 */
L