2 (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
3 See the copyright notice in the ACK home directory, in the file "Copyright".
8 /********************************************************/
10 Type definitions for C Floating Point Package
11 include file for floating point package
13 /********************************************************/
15 THESE STRUCTURES ARE USED TO ADDRESS THE INDIVIDUAL
16 PARTS OF THE FLOATING POINT NUMBER REPRESENTATIONS.
18 THREE STRUCTURES ARE DEFINED:
19 SINGLE: single precision floating format
20 DOUBLE: double precision floating format
21 EXTEND: double precision extended format
23 /********************************************************/
29 unsigned long h_32
; /* higher 32 bits of 64 */
30 unsigned long l_32
; /* lower 32 bits of 64 */
33 typedef unsigned long SINGLE
;
39 typedef struct { /* expanded float format */
43 #define m1 mantissa.h_32
44 #define m2 mantissa.l_32
68 #define _PROTOTYPE(function, params) function params
70 #define _PROTOTYPE(function, params) function()
72 _PROTOTYPE( void add_ext
, (EXTEND
*e1
, EXTEND
*e2
));
73 _PROTOTYPE( void mul_ext
, (EXTEND
*e1
, EXTEND
*e2
));
74 _PROTOTYPE( void div_ext
, (EXTEND
*e1
, EXTEND
*e2
));
75 _PROTOTYPE( void sub_ext
, (EXTEND
*e1
, EXTEND
*e2
));
76 _PROTOTYPE( void sft_ext
, (EXTEND
*e1
, EXTEND
*e2
));
77 _PROTOTYPE( void nrm_ext
, (EXTEND
*e1
));
78 _PROTOTYPE( void zrf_ext
, (EXTEND
*e1
));
79 _PROTOTYPE( void extend
, (unsigned long *from
, EXTEND
*to
, int size
));
80 _PROTOTYPE( void compact
, (EXTEND
*from
, unsigned long *to
, int size
));
81 _PROTOTYPE( void _fptrp
, (int));
82 _PROTOTYPE( void adf4
, (SINGLE s2
, SINGLE s1
));
83 _PROTOTYPE( void adf8
, (DOUBLE s2
, DOUBLE s1
));
84 _PROTOTYPE( void sbf4
, (SINGLE s2
, SINGLE s1
));
85 _PROTOTYPE( void sbf8
, (DOUBLE s2
, DOUBLE s1
));
86 _PROTOTYPE( void dvf4
, (SINGLE s2
, SINGLE s1
));
87 _PROTOTYPE( void dvf8
, (DOUBLE s2
, DOUBLE s1
));
88 _PROTOTYPE( void mlf4
, (SINGLE s2
, SINGLE s1
));
89 _PROTOTYPE( void mlf8
, (DOUBLE s2
, DOUBLE s1
));
90 _PROTOTYPE( void ngf4
, (SINGLE f
));
91 _PROTOTYPE( void ngf8
, (DOUBLE f
));
92 _PROTOTYPE( void zrf4
, (SINGLE
*l
));
93 _PROTOTYPE( void zrf8
, (DOUBLE
*z
));
94 _PROTOTYPE( void cff4
, (DOUBLE src
));
95 _PROTOTYPE( void cff8
, (SINGLE src
));
96 _PROTOTYPE( void cif4
, (int ss
, long src
));
97 _PROTOTYPE( void cif8
, (int ss
, long src
));
98 _PROTOTYPE( void cuf4
, (int ss
, long src
));
99 _PROTOTYPE( void cuf8
, (int ss
, long src
));
100 _PROTOTYPE( long cfu
, (int ds
, int ss
, DOUBLE src
));
101 _PROTOTYPE( long cfi
, (int ds
, int ss
, DOUBLE src
));
102 _PROTOTYPE( int cmf4
, (SINGLE s2
, SINGLE s1
));
103 _PROTOTYPE( int cmf8
, (DOUBLE d1
, DOUBLE d2
));
104 _PROTOTYPE( void fef4
, (struct fef4_returns
*r
, SINGLE s1
));
105 _PROTOTYPE( void fef8
, (struct fef8_returns
*r
, DOUBLE s1
));
106 _PROTOTYPE( void fif4
, (struct fif4_returns
*p
, SINGLE x
, SINGLE y
));
107 _PROTOTYPE( void fif8
, (struct fif8_returns
*p
, DOUBLE x
, DOUBLE y
));
109 _PROTOTYPE( void b64_sft
, (B64
*, int));
110 _PROTOTYPE( void b64_lsft
, (B64
*));
111 _PROTOTYPE( void b64_rsft
, (B64
*));
112 _PROTOTYPE( int b64_add
, (B64
*, B64
*));