/* Table for Advanced SIMD erf approximation
Copyright (C) 2024-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/>. */
#include "vecmath_config.h"
/* Lookup table used in vector erf.
For each possible rounded input r (multiples of 1/128), between
r = 0.0 and r = 6.0 (769 values):
- the first entry __v_erff_data.tab.erf contains the values of erf(r),
- the second entry __v_erff_data.tab.scale contains the values of
2/sqrt(pi)*exp(-r^2). Note that indices 0 and 1 are never hit by the
algorithm, since lookup is performed only for x >= 1/64-1/512. */
const struct v_erf_data __v_erf_data = {
.tab = { { 0x0.0000000000000p+0, 0x1.20dd750429b6dp+0 },
{ 0x1.20dbf3deb1340p-7, 0x1.20d8f1975c85dp+0 },
{ 0x1.20d77083f17a0p-6, 0x1.20cb67bd452c7p+0 },
{ 0x1.b137e0cf584dcp-6, 0x1.20b4d8bac36c1p+0 },
{ 0x1.20c5645dd2538p-5, 0x1.209546ad13ccfp+0 },
{ 0x1.68e5d3bbc9526p-5, 0x1.206cb4897b148p+0 },
{ 0x1.b0fafef135745p-5, 0x1.203b261cd0052p+0 },
{ 0x1.f902a77bd3821p-5, 0x1.2000a00ae3804p+0 },
{ 0x1.207d480e90658p-4, 0x1.1fbd27cdc72d3p+0 },
{ 0x1.44703e87e8593p-4, 0x1.1f70c3b4f2cc7p+0 },
{ 0x1.68591a1e83b5dp-4, 0x1.1f1b7ae44867fp+0 },
{ 0x1.8c36beb8a8d23p-4, 0x1.1ebd5552f795bp+0 },
{ 0x1.b0081148a873ap-4, 0x1.1e565bca400d4p+0 },
{ 0x1.d3cbf7e70a4b3p-4, 0x1.1de697e413d28p+0 },
{ 0x1.f78159ec8bb50p-4, 0x1.1d6e14099944ap+0 },
{ 0x1.0d939005f65e5p-3, 0x1.1cecdb718d61cp+0 },
{ 0x1.1f5e1a35c3b89p-3, 0x1.1c62fa1e869b6p+0 },
{ 0x1.311fc15f56d14p-3, 0x1.1bd07cdd189acp+0 },
{ 0x1.42d7fc2f64959p-3, 0x1.1b357141d95d5p+0 },
{ 0x1.548642321d7c6p-3, 0x1.1a91e5a748165p+0 },
{ 0x1.662a0bdf7a89fp-3, 0x1.19e5e92b964abp+0 },
{ 0x1.77c2d2a765f9ep-3, 0x1.19318bae53a04p+0 },
{ 0x1.895010fdbdbfdp-3, 0x1.1874ddcdfce24p+0 },
{ 0x1.9ad142662e14dp-3, 0x1.17aff0e56ec10p+0 },
{ 0x1.ac45e37fe2526p-3, 0x1.16e2d7093cd8cp+0 },
{ 0x1.bdad72110a648p-3, 0x1.160da304ed92fp+0 },
{ 0x1.cf076d1233237p-3, 0x1.153068581b781p+0 },
{ 0x1.e05354b96ff36p-3, 0x1.144b3b337c90cp+0 },
{ 0x1.f190aa85540e2p-3, 0x1.135e3075d076bp+0 },
{ 0x1.015f78a3dcf3dp-2, 0x1.12695da8b5bdep+0 },
{ 0x1.09eed6982b948p-2, 0x1.116cd8fd67618p+0 },
{