1*412f47f9SXin Li// tables and constants for approximating erfcf(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, erfc(r), 2/sqrt(pi) * exp(-r^2) }"); 11*412f47f9SXin Lifor i from 0 to 644 do { 12*412f47f9SXin Li r = 0.0 + i / 64; 13*412f47f9SXin Li t0 = single(erfc(r) * 2^47); 14*412f47f9SXin Li t1 = single(2/sqrt(pi) * exp(-r * r) * 2^47); 15*412f47f9SXin Li print("{ " @ t0 @ ",\t" @ t1 @ " },"); 16*412f47f9SXin Li}; 17*412f47f9SXin Li 18*412f47f9SXin Li// Constants 19*412f47f9SXin Lisingle(1/3); 20*412f47f9SXin Lisingle(2/15); 21*412f47f9SXin Lisingle(1/10); 22*412f47f9SXin Lisingle(2/sqrt(pi)); 23