aboutsummaryrefslogtreecommitdiff
path: root/pl/math/tools/v_erf.sollya
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);