1*412f47f9SXin Li// tables and constants for approximating erf(x). 2*412f47f9SXin Li// 3*412f47f9SXin Li// Copyright (c) 2023, Arm Limited. 4*412f47f9SXin Li// SPDX-License-Identifier: MIT OR Apache-2.0 WITH LLVM-exception 5*412f47f9SXin Li 6*412f47f9SXin Lidisplay = hexadecimal; 7*412f47f9SXin Liprec=128; 8*412f47f9SXin Li 9*412f47f9SXin Li// Tables 10*412f47f9SXin Liprint("{ i, r, erf(r), 2/sqrt(pi) * exp(-r^2)}"); 11*412f47f9SXin Lifor i from 0 to 768 do { 12*412f47f9SXin Li r = i / 128; 13*412f47f9SXin Li t0 = double(erf(r)); 14*412f47f9SXin Li t1 = double(2/sqrt(pi) * exp(-r * r)); 15*412f47f9SXin Li print("{ " @ i @ ",\t" @ r @ ",\t" @ t0 @ ",\t" @ t1 @ " },"); 16*412f47f9SXin Li}; 17*412f47f9SXin Li 18*412f47f9SXin Li// Constants 19*412f47f9SXin Lidouble(1/3); 20*412f47f9SXin Lidouble(1/10); 21*412f47f9SXin Lidouble(2/15); 22*412f47f9SXin Lidouble(2/9); 23*412f47f9SXin Lidouble(2/45); 24*412f47f9SXin Lidouble(2/sqrt(pi)); 25*412f47f9SXin Li 26