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