]>
Commit | Line | Data |
---|---|---|
42a4f53d | 1 | -- Copyright 2004-2019 Free Software Foundation, Inc. |
fb6e1814 JG |
2 | -- |
3 | -- This program is free software; you can redistribute it and/or modify | |
4 | -- it under the terms of the GNU General Public License as published by | |
cc00619d | 5 | -- the Free Software Foundation; either version 3 of the License, or |
fb6e1814 JG |
6 | -- (at your option) any later version. |
7 | -- | |
8 | -- This program is distributed in the hope that it will be useful, | |
9 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 | -- GNU General Public License for more details. | |
12 | -- | |
13 | -- You should have received a copy of the GNU General Public License | |
cc00619d | 14 | -- along with this program. If not, see <http://www.gnu.org/licenses/>. |
fb6e1814 JG |
15 | |
16 | with System; | |
17 | ||
18 | procedure Fixed_Points is | |
19 | ||
c31af87b JG |
20 | ------------ |
21 | -- Test 1 -- | |
22 | ------------ | |
23 | ||
24 | -- Fixed point subtypes | |
25 | ||
fb6e1814 JG |
26 | type Base_Fixed_Point_Type is |
27 | delta 1.0 / 16.0 | |
28 | range (System.Min_Int / 2) * 1.0 / 16.0 .. | |
29 | (System.Max_Int / 2) * 1.0 / 16.0; | |
30 | ||
c31af87b JG |
31 | subtype Fixed_Point_Subtype is |
32 | Base_Fixed_Point_Type range -50.0 .. 50.0; | |
33 | ||
34 | type New_Fixed_Point_Type is | |
35 | new Base_Fixed_Point_Type range -50.0 .. 50.0; | |
36 | ||
37 | Base_Object : Base_Fixed_Point_Type := -50.0; | |
38 | Subtype_Object : Fixed_Point_Subtype := -50.0; | |
39 | New_Type_Object : New_Fixed_Point_Type := -50.0; | |
40 | ||
41 | ||
42 | ------------ | |
43 | -- Test 2 -- | |
44 | ------------ | |
45 | ||
46 | -- Overprecise delta | |
47 | ||
48 | Overprecise_Delta : constant := 0.135791357913579; | |
49 | -- delta whose significant figures cannot be stored into a long. | |
50 | ||
51 | type Overprecise_Fixed_Point is | |
52 | delta Overprecise_Delta range 0.0 .. 200.0; | |
53 | for Overprecise_Fixed_Point'Small use Overprecise_Delta; | |
fb6e1814 | 54 | |
c31af87b JG |
55 | Overprecise_Object : Overprecise_Fixed_Point := |
56 | Overprecise_Fixed_Point'Small; | |
fb6e1814 | 57 | |
fb6e1814 JG |
58 | begin |
59 | Base_Object := 1.0/16.0; -- Set breakpoint here | |
60 | Subtype_Object := 1.0/16.0; | |
61 | New_Type_Object := 1.0/16.0; | |
c31af87b | 62 | Overprecise_Object := Overprecise_Fixed_Point'Small * 2; |
fb6e1814 | 63 | end Fixed_Points; |