xref: /inferno-os/libmath/bin/fdlibm-stubs (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1echo '#include "real.h"' > real.c
2
3for(i in getFPcontrol getFPstatus){
4	echo 'void'
5	echo 'Real_'$i'(void *fp)'
6	echo '{'
7	echo '	F_Real_'$i' *f;'
8	echo ''
9	echo '	f = fp;'
10	echo ''
11	echo '	*f->ret = '$i'(f->x);'
12	echo '}'
13	echo ''
14} >> real.c
15
16for(i in finite ilogb isnan acos acosh asin asinh atan atanh cbrt ceil cos cosh erf erfc exp expm1 fabs floor j0 j1 log log10 log1p rint sin sinh sqrt tan tanh y0 y1){
17	echo 'void'
18	echo 'Real_'$i'(void *fp)'
19	echo '{'
20	echo '	F_Real_'$i' *f;'
21	echo ''
22	echo '	f = fp;'
23	echo ''
24	echo '	*f->ret = '$i'(f->x);'
25	echo '}'
26	echo ''
27} >> real.c
28
29for(i in fdim fmax fmin fmod hypot nextafter pow){
30	echo 'void'
31	echo 'Real_'$i'(void *fp)'
32	echo '{'
33	echo '	F_Real_'$i' *f;'
34	echo ''
35	echo '	f = fp;'
36	echo ''
37	echo '	*f->ret = '$i'(f->x, f->x);'
38	echo '}'
39	echo ''
40} >> real.c
41
42
43FPcontrol	fn(r, mask: int) of int;
44FPstatus	fn(r, mask: int) of int;
45atan2		fn(y, x: real) of real;
46copysign	fn(x, s: real) of real;
47jn		fn(n: int; x: real) of real;
48lgamma		fn(x: real) of (int,real);
49modf		fn(x: real) of (int,real);
50pow10		fn(p: int) of real;
51remainder	fn(x, p: real) of real;
52scalbn		fn(x: real; n: int) of real;
53yn		fn(n: int; x: real) of real;
54
55dot		fn(x, y: array of real) of real;
56iamax		fn(x: array of real) of int;
57norm1, norm2	fn(x: array of real) of real;
58gemm		fn(transa, transb: byte; m, n, k: int; alpha: real; a: array of real; ai0, aj0, lda: int; b: array of real; bi0, bj0, ldb: int; beta: real; c: array of real; ci0, cj0, ldc: int);
59
60for(i in FPcontrol FPstatus atan2 copysign jn lgamma modf pow10 remainder scalbn yn  dot iamax norm1, norm2 gemm){
61	echo 'void'
62	echo 'Real_'$i'(void *fp)'
63	echo '{'
64	echo '	F_Real_'$i' *f;'
65	echo ''
66	echo '	f = fp;'
67	echo ''
68	echo '	*f->ret = '$i'(f->x, f->x);'
69	echo '}'
70	echo ''
71} >> real.c
72