annotate gcc/ada/libgnat/s-digemk.ads @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
131
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
1 ------------------------------------------------------------------------------
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
2 -- --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
3 -- GNAT RUN-TIME COMPONENTS --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
4 -- --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
5 -- S Y S T E M . D I M . G E N E R I C _ M K S --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
6 -- --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
7 -- S p e c --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
8 -- --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
9 -- Copyright (C) 2011-2018, Free Software Foundation, Inc. --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
10 -- --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
11 -- GNAT is free software; you can redistribute it and/or modify it under --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
12 -- terms of the GNU General Public License as published by the Free Soft- --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
16 -- or FITNESS FOR A PARTICULAR PURPOSE. --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
17 -- --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
18 -- As a special exception under Section 7 of GPL version 3, you are granted --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
19 -- additional permissions described in the GCC Runtime Library Exception, --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
20 -- version 3.1, as published by the Free Software Foundation. --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
21 -- --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
22 -- You should have received a copy of the GNU General Public License and --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
23 -- a copy of the GCC Runtime Library Exception along with this program; --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
24 -- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
25 -- <http://www.gnu.org/licenses/>. --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
26 -- --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
27 -- GNAT was originally developed by the GNAT team at New York University. --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
28 -- Extensive contributions were provided by Ada Core Technologies Inc. --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
29 -- --
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
30 ------------------------------------------------------------------------------
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
31
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
32 -- Defines the MKS dimension system which is the SI system of units
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
33
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
34 -- Some other prefixes of this system are defined in a child package (see
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
35 -- System.Dim.Generic_Mks.Generic_Other_Prefixes) in order to avoid too many
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
36 -- constant declarations in this package.
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
37
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
38 -- The dimension terminology is defined in System.Dim package
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
39
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
40 with Ada.Numerics;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
41
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
42 generic
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
43 type Float_Type is digits <>;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
44
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
45 package System.Dim.Generic_Mks is
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
46
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
47 e : constant := Ada.Numerics.e;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
48 Pi : constant := Ada.Numerics.Pi;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
49
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
50 -- Dimensioned type Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
51
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
52 type Mks_Type is new Float_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
53 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
54 Dimension_System => (
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
55 (Unit_Name => Meter, Unit_Symbol => 'm', Dim_Symbol => 'L'),
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
56 (Unit_Name => Kilogram, Unit_Symbol => "kg", Dim_Symbol => 'M'),
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
57 (Unit_Name => Second, Unit_Symbol => 's', Dim_Symbol => 'T'),
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
58 (Unit_Name => Ampere, Unit_Symbol => 'A', Dim_Symbol => 'I'),
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
59 (Unit_Name => Kelvin, Unit_Symbol => 'K', Dim_Symbol => '@'),
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
60 (Unit_Name => Mole, Unit_Symbol => "mol", Dim_Symbol => 'N'),
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
61 (Unit_Name => Candela, Unit_Symbol => "cd", Dim_Symbol => 'J'));
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
62
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
63 -- SI Base dimensioned subtypes
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
64
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
65 subtype Length is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
66 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
67 Dimension => (Symbol => 'm',
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
68 Meter => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
69 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
70
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
71 subtype Mass is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
72 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
73 Dimension => (Symbol => "kg",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
74 Kilogram => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
75 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
76
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
77 subtype Time is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
78 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
79 Dimension => (Symbol => 's',
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
80 Second => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
81 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
82
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
83 subtype Electric_Current is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
84 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
85 Dimension => (Symbol => 'A',
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
86 Ampere => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
87 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
88
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
89 subtype Thermodynamic_Temperature is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
90 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
91 Dimension => (Symbol => 'K',
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
92 Kelvin => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
93 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
94
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
95 subtype Amount_Of_Substance is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
96 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
97 Dimension => (Symbol => "mol",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
98 Mole => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
99 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
100
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
101 subtype Luminous_Intensity is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
102 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
103 Dimension => (Symbol => "cd",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
104 Candela => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
105 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
106
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
107 -- Initialize SI Base unit values
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
108
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
109 -- Turn off the all the dimension warnings for these basic assignments
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
110 -- since otherwise we would get complaints about assigning dimensionless
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
111 -- values to dimensioned subtypes (we can't assign 1.0*m to m).
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
112
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
113 pragma Warnings (Off, "*assumed to be*");
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
114
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
115 m : constant Length := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
116 kg : constant Mass := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
117 s : constant Time := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
118 A : constant Electric_Current := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
119 K : constant Thermodynamic_Temperature := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
120 mol : constant Amount_Of_Substance := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
121 cd : constant Luminous_Intensity := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
122
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
123 pragma Warnings (On, "*assumed to be*");
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
124
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
125 -- SI Derived dimensioned subtypes
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
126
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
127 subtype Absorbed_Dose is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
128 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
129 Dimension => (Symbol => "Gy",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
130 Meter => 2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
131 Second => -2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
132 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
133
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
134 subtype Angle is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
135 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
136 Dimension => (Symbol => "rad",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
137 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
138
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
139 subtype Area is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
140 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
141 Dimension => (
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
142 Meter => 2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
143 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
144
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
145 subtype Catalytic_Activity is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
146 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
147 Dimension => (Symbol => "kat",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
148 Second => -1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
149 Mole => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
150 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
151
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
152 subtype Celsius_Temperature is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
153 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
154 Dimension => (Symbol => "°C",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
155 Kelvin => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
156 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
157
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
158 subtype Electric_Capacitance is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
159 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
160 Dimension => (Symbol => 'F',
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
161 Meter => -2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
162 Kilogram => -1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
163 Second => 4,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
164 Ampere => 2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
165 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
166
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
167 subtype Electric_Charge is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
168 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
169 Dimension => (Symbol => 'C',
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
170 Second => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
171 Ampere => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
172 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
173
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
174 subtype Electric_Conductance is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
175 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
176 Dimension => (Symbol => 'S',
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
177 Meter => -2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
178 Kilogram => -1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
179 Second => 3,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
180 Ampere => 2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
181 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
182
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
183 subtype Electric_Potential_Difference is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
184 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
185 Dimension => (Symbol => 'V',
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
186 Meter => 2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
187 Kilogram => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
188 Second => -3,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
189 Ampere => -1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
190 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
191
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
192 -- Note the type punning below. The Symbol is a single "ohm" character
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
193 -- encoded in UTF-8 (ce a9 in hexadecimal), but this file is not compiled
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
194 -- with -gnatW8, so we're treating the string literal as a two-character
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
195 -- String.
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
196
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
197 subtype Electric_Resistance is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
198 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
199 Dimension => (Symbol => "Ω",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
200 Meter => 2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
201 Kilogram => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
202 Second => -3,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
203 Ampere => -2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
204 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
205
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
206 subtype Energy is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
207 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
208 Dimension => (Symbol => 'J',
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
209 Meter => 2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
210 Kilogram => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
211 Second => -2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
212 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
213
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
214 subtype Equivalent_Dose is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
215 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
216 Dimension => (Symbol => "Sv",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
217 Meter => 2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
218 Second => -2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
219 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
220
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
221 subtype Force is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
222 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
223 Dimension => (Symbol => 'N',
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
224 Meter => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
225 Kilogram => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
226 Second => -2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
227 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
228
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
229 subtype Frequency is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
230 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
231 Dimension => (Symbol => "Hz",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
232 Second => -1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
233 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
234
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
235 subtype Illuminance is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
236 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
237 Dimension => (Symbol => "lx",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
238 Meter => -2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
239 Candela => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
240 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
241
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
242 subtype Inductance is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
243 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
244 Dimension => (Symbol => 'H',
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
245 Meter => 2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
246 Kilogram => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
247 Second => -2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
248 Ampere => -2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
249 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
250
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
251 subtype Luminous_Flux is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
252 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
253 Dimension => (Symbol => "lm",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
254 Candela => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
255 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
256
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
257 subtype Magnetic_Flux is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
258 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
259 Dimension => (Symbol => "Wb",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
260 Meter => 2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
261 Kilogram => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
262 Second => -2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
263 Ampere => -1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
264 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
265
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
266 subtype Magnetic_Flux_Density is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
267 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
268 Dimension => (Symbol => 'T',
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
269 Kilogram => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
270 Second => -2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
271 Ampere => -1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
272 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
273
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
274 subtype Power is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
275 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
276 Dimension => (Symbol => 'W',
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
277 Meter => 2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
278 Kilogram => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
279 Second => -3,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
280 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
281
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
282 subtype Pressure is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
283 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
284 Dimension => (Symbol => "Pa",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
285 Meter => -1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
286 Kilogram => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
287 Second => -2,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
288 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
289
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
290 subtype Radioactivity is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
291 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
292 Dimension => (Symbol => "Bq",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
293 Second => -1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
294 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
295
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
296 subtype Solid_Angle is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
297 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
298 Dimension => (Symbol => "sr",
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
299 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
300
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
301 subtype Speed is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
302 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
303 Dimension => (
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
304 Meter => 1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
305 Second => -1,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
306 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
307
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
308 subtype Volume is Mks_Type
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
309 with
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
310 Dimension => (
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
311 Meter => 3,
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
312 others => 0);
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
313
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
314 -- Initialize derived dimension values
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
315
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
316 -- Turn off the all the dimension warnings for these basic assignments
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
317 -- since otherwise we would get complaints about assigning dimensionless
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
318 -- values to dimensioned subtypes.
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
319
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
320 pragma Warnings (Off, "*assumed to be*");
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
321
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
322 rad : constant Angle := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
323 sr : constant Solid_Angle := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
324 Hz : constant Frequency := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
325 N : constant Force := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
326 Pa : constant Pressure := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
327 J : constant Energy := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
328 W : constant Power := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
329 C : constant Electric_Charge := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
330 V : constant Electric_Potential_Difference := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
331 F : constant Electric_Capacitance := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
332 Ohm : constant Electric_Resistance := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
333 Si : constant Electric_Conductance := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
334 Wb : constant Magnetic_Flux := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
335 T : constant Magnetic_Flux_Density := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
336 H : constant Inductance := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
337 dC : constant Celsius_Temperature := 273.15;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
338 lm : constant Luminous_Flux := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
339 lx : constant Illuminance := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
340 Bq : constant Radioactivity := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
341 Gy : constant Absorbed_Dose := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
342 Sv : constant Equivalent_Dose := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
343 kat : constant Catalytic_Activity := 1.0;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
344
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
345 -- SI prefixes for Meter
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
346
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
347 um : constant Length := 1.0E-06; -- micro (u)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
348 mm : constant Length := 1.0E-03; -- milli
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
349 cm : constant Length := 1.0E-02; -- centi
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
350 dm : constant Length := 1.0E-01; -- deci
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
351 dam : constant Length := 1.0E+01; -- deka
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
352 hm : constant Length := 1.0E+02; -- hecto
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
353 km : constant Length := 1.0E+03; -- kilo
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
354 Mem : constant Length := 1.0E+06; -- mega
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
355
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
356 -- SI prefixes for Kilogram
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
357
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
358 ug : constant Mass := 1.0E-09; -- micro (u)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
359 mg : constant Mass := 1.0E-06; -- milli
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
360 cg : constant Mass := 1.0E-05; -- centi
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
361 dg : constant Mass := 1.0E-04; -- deci
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
362 g : constant Mass := 1.0E-03; -- gram
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
363 dag : constant Mass := 1.0E-02; -- deka
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
364 hg : constant Mass := 1.0E-01; -- hecto
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
365 Meg : constant Mass := 1.0E+03; -- mega
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
366
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
367 -- SI prefixes for Second
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
368
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
369 us : constant Time := 1.0E-06; -- micro (u)
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
370 ms : constant Time := 1.0E-03; -- milli
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
371 cs : constant Time := 1.0E-02; -- centi
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
372 ds : constant Time := 1.0E-01; -- deci
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
373 das : constant Time := 1.0E+01; -- deka
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
374 hs : constant Time := 1.0E+02; -- hecto
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
375 ks : constant Time := 1.0E+03; -- kilo
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
376 Mes : constant Time := 1.0E+06; -- mega
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
377
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
378 -- Other constants for Second
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
379
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
380 min : constant Time := 60.0 * s;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
381 hour : constant Time := 60.0 * min;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
382 day : constant Time := 24.0 * hour;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
383 year : constant Time := 365.25 * day;
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
384
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
385 -- SI prefixes for Ampere
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
386
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
387 mA : constant Electric_Current := 1.0E-03; -- milli
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
388 cA : constant Electric_Current := 1.0E-02; -- centi
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
389 dA : constant Electric_Current := 1.0E-01; -- deci
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
390 daA : constant Electric_Current := 1.0E+01; -- deka
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
391 hA : constant Electric_Current := 1.0E+02; -- hecto
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
392 kA : constant Electric_Current := 1.0E+03; -- kilo
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
393 MeA : constant Electric_Current := 1.0E+06; -- mega
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
394
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
395 pragma Warnings (On, "*assumed to be*");
84e7813d76e9 gcc-8.2
mir3636
parents:
diff changeset
396 end System.Dim.Generic_Mks;