blob: 394ba377df12b528b52f7e2494c82792720ae1bc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
// polynomial for approximating erf(x).
// To generate coefficients for interval i (0 to 47) do:
// $ sollya v_erf.sollya $i
//
// Copyright (c) 2022-2023, Arm Limited.
// SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception
scale = 1/8;
deg = 9;
itv = parse(__argv[0]);
if (itv == 0) then { a = 0x1p-1022; }
else { a = itv * scale; };
prec=256;
poly = fpminimax(erf(scale*x+a), deg, [|D ...|], [0; 1]);
display = hexadecimal;
for i from 0 to deg do coeff(poly, i);
|