1 /****************************************************************************
2  *                                                                          *
3  *                         GNAT COMPILER COMPONENTS                         *
4  *                                                                          *
5  *                               U R E A L P                                *
6  *                                                                          *
7  *                              C Header File                               *
8  *                                                                          *
9  *            Copyright (C) 1992-2020, Free Software Foundation, Inc.       *
10  *                                                                          *
11  * GNAT is free software;  you can  redistribute it  and/or modify it under *
12  * terms of the  GNU General Public License as published  by the Free Soft- *
13  * ware  Foundation;  either version 3,  or (at your option) any later ver- *
14  * sion.  GNAT is distributed in the hope that it will be useful, but WITH- *
15  * OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY *
16  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License *
17  * for  more details.  You should have  received  a copy of the GNU General *
18  * Public License  distributed with GNAT; see file COPYING3.  If not, go to *
19  * http://www.gnu.org/licenses for a complete copy of the license.          *
20  *                                                                          *
21  * GNAT was originally developed  by the GNAT team at  New York University. *
22  * Extensive contributions were provided by Ada Core Technologies Inc.      *
23  *                                                                          *
24  ****************************************************************************/
25 
26 /* This is the C header that corresponds to the Ada package specification for
27    Urealp.  It was created manually from urealp.ads and must be kept
28    synchronized with changes in this file.  */
29 
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33 
34 /* Support for universal real arithmetic.  */
35 
36 #define Numerator urealp__numerator
37 extern Uint Numerator		(Ureal);
38 
39 #define Denominator urealp__denominator
40 extern Uint Denominator		(Ureal);
41 
42 #define Rbase urealp__rbase
43 extern Nat Rbase		(Ureal);
44 
45 #define Norm_Den urealp__norm_den
46 extern Uint Norm_Den		(Ureal);
47 
48 #define Norm_Num urealp__norm_num
49 extern Uint Norm_Num		(Ureal);
50 
51 #define UR_Is_Negative urealp__ur_is_negative
52 extern Boolean UR_Is_Negative	(Ureal);
53 
54 #define UR_Is_Zero urealp__ur_is_zero
55 extern Boolean UR_Is_Zero	(Ureal);
56 
57 enum Rounding_Mode {Floor = 0, Ceiling = 1, Round = 2, Round_Even = 3};
58 
59 #define Machine eval_fat__machine
60 extern Ureal Machine		(Entity_Id, Ureal, enum Rounding_Mode,
61 				 Node_Id);
62 
63 #ifdef __cplusplus
64 }
65 #endif
66