plugin-tables.c
1 //! @file plugin-tables.c
2 //! @author J. Marcel van der Veer
3 //!
4 //! @section Copyright
5 //!
6 //! This file is part of Algol68G - an Algol 68 compiler-interpreter.
7 //! Copyright 2001-2023 J. Marcel van der Veer [algol68g@xs4all.nl].
8 //!
9 //! @section License
10 //!
11 //! This program is free software; you can redistribute it and/or modify it
12 //! under the terms of the GNU General Public License as published by the
13 //! Free Software Foundation; either version 3 of the License, or
14 //! (at your option) any later version.
15 //!
16 //! This program is distributed in the hope that it will be useful, but
17 //! WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
18 //! or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
19 //! more details. You should have received a copy of the GNU General Public
20 //! License along with this program. If not, see [http://www.gnu.org/licenses/].
21
22 //! @section Synopsis
23 //!
24 //! Plugin compiler tables.
25
26 #include "a68g.h"
27 #include "a68g-prelude.h"
28 #include "a68g-prelude-gsl.h"
29 #include "a68g-genie.h"
30 #include "a68g-listing.h"
31 #include "a68g-mp.h"
32 #include "a68g-optimiser.h"
33 #include "a68g-plugin.h"
34 #include "a68g-parser.h"
35 #include "a68g-transput.h"
36
37 TRANSLATION *monadics, *dyadics, *functions;
38
39 TRANSLATION monadics_nocheck[] = {
40 {genie_minus_int, "-"},
41 {genie_minus_real, "-"},
42 {genie_abs_int, "labs"},
43 {genie_abs_real, "fabs"},
44 {genie_sign_int, "SIGN"},
45 {genie_sign_real, "SIGN"},
46 {genie_entier_real, "a68_entier"},
47 {genie_round_real, "a68_round"},
48 {genie_not_bool, "!"},
49 {genie_abs_bool, "(int) "},
50 {genie_abs_bits, "(INT_T) "},
51 {genie_bin_int, "(UNSIGNED_T) "},
52 {genie_not_bits, "~"},
53 {genie_abs_char, "TO_UCHAR"},
54 {genie_repr_char, ""},
55 {genie_re_complex, "a68_re_complex"},
56 {genie_im_complex, "a68_im_complex"},
57 {genie_minus_complex, "a68_minus_complex"},
58 {genie_abs_complex, "a68_abs_complex"},
59 {genie_arg_complex, "a68_arg_complex"},
60 {genie_conj_complex, "a68_conj_complex"},
61 {genie_idle, ""},
62 {NO_GPROC, NO_TEXT}
63 };
64
65 TRANSLATION monadics_check[] = {
66 {genie_minus_int, "-"},
67 {genie_minus_real, "-"},
68 {genie_abs_int, "labs"},
69 {genie_abs_real, "fabs"},
70 {genie_sign_int, "SIGN"},
71 {genie_sign_real, "SIGN"},
72 {genie_not_bool, "!"},
73 {genie_abs_bool, "(int) "},
74 {genie_abs_bits, "(INT_T) "},
75 {genie_bin_int, "(UNSIGNED_T) "},
76 {genie_not_bits, "~"},
77 {genie_abs_char, "TO_UCHAR"},
78 {genie_repr_char, ""},
79 {genie_re_complex, "a68_re_complex"},
80 {genie_im_complex, "a68_im_complex"},
81 {genie_minus_complex, "a68_minus_complex"},
82 {genie_abs_complex, "a68_abs_complex"},
83 {genie_arg_complex, "a68_arg_complex"},
84 {genie_conj_complex, "a68_conj_complex"},
85 {genie_idle, ""},
86 {NO_GPROC, NO_TEXT}
87 };
88
89 TRANSLATION dyadics_nocheck[] = {
90 {genie_add_int, "+"},
91 {genie_sub_int, "-"},
92 {genie_mul_int, "*"},
93 {genie_over_int, "/"},
94 {genie_mod_int, "a68_mod_int"},
95 {genie_div_int, "a68_div_int"},
96 {genie_eq_int, "=="},
97 {genie_ne_int, "!="},
98 {genie_lt_int, "<"},
99 {genie_gt_int, ">"},
100 {genie_le_int, "<="},
101 {genie_ge_int, ">="},
102 {genie_plusab_int, "a68_plusab_int"},
103 {genie_minusab_int, "a68_minusab_int"},
104 {genie_timesab_int, "a68_timesab_int"},
105 {genie_overab_int, "a68_overab_int"},
106 {genie_add_real, "+"},
107 {genie_sub_real, "-"},
108 {genie_mul_real, "*"},
109 {genie_div_real, "/"},
110 {genie_pow_real, "a68_x_up_y"},
111 {genie_pow_real_int, "a68_x_up_n"},
112 {genie_eq_real, "=="},
113 {genie_ne_real, "!="},
114 {genie_lt_real, "<"},
115 {genie_gt_real, ">"},
116 {genie_le_real, "<="},
117 {genie_ge_real, ">="},
118 {genie_plusab_real, "a68_plusab_real"},
119 {genie_minusab_real, "a68_minusab_real"},
120 {genie_timesab_real, "a68_timesab_real"},
121 {genie_divab_real, "a68_divab_real"},
122 {genie_eq_char, "=="},
123 {genie_ne_char, "!="},
124 {genie_lt_char, "<"},
125 {genie_gt_char, ">"},
126 {genie_le_char, "<="},
127 {genie_ge_char, ">="},
128 {genie_eq_bool, "=="},
129 {genie_ne_bool, "!="},
130 {genie_and_bool, "&&"},
131 {genie_or_bool, "||"},
132 {genie_and_bits, "&"},
133 {genie_or_bits, "|"},
134 {genie_eq_bits, "=="},
135 {genie_ne_bits, "!="},
136 {genie_shl_bits, "<<"},
137 {genie_shr_bits, ">>"},
138 {genie_i_complex, "a68_i_complex"},
139 {genie_i_int_complex, "a68_i_complex"},
140 {genie_abs_complex, "a68_abs_complex"},
141 {genie_arg_complex, "a68_arg_complex"},
142 {genie_add_complex, "a68_add_complex"},
143 {genie_sub_complex, "a68_sub_complex"},
144 {genie_mul_complex, "a68_mul_complex"},
145 {genie_div_complex, "a68_div_complex"},
146 {genie_eq_complex, "a68_eq_complex"},
147 {genie_ne_complex, "a68_ne_complex"},
148 {NO_GPROC, NO_TEXT}
149 };
150
151 TRANSLATION dyadics_check[] = {
152 {genie_add_int, "a68_add_int"},
153 {genie_sub_int, "a68_sub_int"},
154 {genie_mul_int, "a68_mul_int"},
155 {genie_over_int, "a68_over_int"},
156 {genie_mod_int, "a68_mod_int"},
157 {genie_div_int, "a68_div_int"},
158 {genie_add_real, "+"},
159 {genie_sub_real, "-"},
160 {genie_mul_real, "*"},
161 {genie_div_real, "/"},
162 {genie_pow_real, "a68_x_up_y"},
163 {genie_pow_real_int, "a68_x_up_n"},
164 {genie_eq_int, "=="},
165 {genie_ne_int, "!="},
166 {genie_lt_int, "<"},
167 {genie_gt_int, ">"},
168 {genie_le_int, "<="},
169 {genie_ge_int, ">="},
170 {genie_eq_real, "=="},
171 {genie_ne_real, "!="},
172 {genie_lt_real, "<"},
173 {genie_gt_real, ">"},
174 {genie_le_real, "<="},
175 {genie_ge_real, ">="},
176 {genie_eq_char, "=="},
177 {genie_ne_char, "!="},
178 {genie_lt_char, "<"},
179 {genie_gt_char, ">"},
180 {genie_le_char, "<="},
181 {genie_ge_char, ">="},
182 {genie_eq_bool, "=="},
183 {genie_ne_bool, "!="},
184 {genie_and_bool, "&&"},
185 {genie_or_bool, "||"},
186 {genie_and_bits, "&"},
187 {genie_or_bits, "|"},
188 {genie_eq_bits, "=="},
189 {genie_ne_bits, "!="},
190 {genie_i_complex, "a68_i_complex"},
191 {genie_i_int_complex, "a68_i_complex"},
192 {genie_abs_complex, "a68_abs_complex"},
193 {genie_arg_complex, "a68_arg_complex"},
194 {genie_add_complex, "a68_add_complex"},
195 {genie_sub_complex, "a68_sub_complex"},
196 {genie_mul_complex, "a68_mul_complex"},
197 {genie_div_complex, "a68_div_complex"},
198 {genie_eq_complex, "a68_eq_complex"},
199 {genie_ne_complex, "a68_ne_complex"},
200 {NO_GPROC, NO_TEXT}
201 };
202
203 TRANSLATION functions_nocheck[] = {
204 {genie_sqrt_real, "sqrt"},
205 {genie_curt_real, "cbrt"},
206 {genie_exp_real, "a68_exp"},
207 {genie_ln_real, "log"},
208 {genie_log_real, "log10"},
209 {genie_sin_real, "sin"},
210 {genie_cos_real, "cos"},
211 {genie_tan_real, "tan"},
212 {genie_asin_real, "asin"},
213 {genie_acos_real, "acos"},
214 {genie_atan_real, "atan"},
215 {genie_sinh_real, "sinh"},
216 {genie_cosh_real, "cosh"},
217 {genie_tanh_real, "tanh"},
218 {genie_erfc_real, "erfc"},
219 {genie_erf_real, "erf"},
220 {genie_gamma_real, "tgamma"},
221 {genie_ln_gamma_real, "lgamma"},
222 {genie_sindg_real, "a68_sindg"},
223 {genie_cosdg_real, "a68_cosdg"},
224 {genie_tandg_real, "a68_tandg"},
225 {genie_asindg_real, "a68_asindg"},
226 {genie_acosdg_real, "a68_acosdg"},
227 {genie_atandg_real, "a68_atandg"},
228 {genie_sqrt_complex, "a68_sqrt_complex"},
229 {genie_exp_complex, "a68_exp_complex"},
230 {genie_ln_complex, "a68_ln_complex"},
231 {genie_sin_complex, "a68_sin_complex"},
232 {genie_cos_complex, "a68_cos_complex"},
233 {genie_tan_complex, "a68_tan_complex"},
234 {genie_asin_complex, "a68_asin_complex"},
235 {genie_acos_complex, "a68_acos_complex"},
236 {genie_atan_complex, "a68_atan_complex"},
237 {genie_sinh_complex, "a68_sinh_complex"},
238 {genie_cosh_complex, "a68_cosh_complex"},
239 {genie_tanh_complex, "a68_tanh_complex"},
240 {genie_asinh_complex, "a68_asinh_complex"},
241 {genie_acosh_complex, "a68_acosh_complex"},
242 {genie_atanh_complex, "a68_atanh_complex"},
243 {genie_asinh_real, "a68_asinh"},
244 {genie_acosh_real, "a68_acosh"},
245 {genie_atanh_real, "a68_atanh"},
246 {genie_inverfc_real, "a68_inverfc"},
247 {genie_inverf_real, "a68_inverf"},
248 {NO_GPROC, NO_TEXT}
249 };
250
251 TRANSLATION functions_check[] = {
252 {genie_sqrt_real, "sqrt"},
253 {genie_curt_real, "cbrt"},
254 {genie_exp_real, "a68_exp"},
255 {genie_ln_real, "log"},
256 {genie_log_real, "log10"},
257 {genie_sin_real, "sin"},
258 {genie_cos_real, "cos"},
259 {genie_tan_real, "tan"},
260 {genie_asin_real, "asin"},
261 {genie_acos_real, "acos"},
262 {genie_atan_real, "atan"},
263 {genie_sinh_real, "sinh"},
264 {genie_cosh_real, "cosh"},
265 {genie_tanh_real, "tanh"},
266 {genie_erfc_real, "erfc"},
267 {genie_erf_real, "erf"},
268 {genie_gamma_real, "tgamma"},
269 {genie_ln_gamma_real, "lgamma"},
270 {genie_sindg_real, "a68_sindg"},
271 {genie_cosdg_real, "a68_cosdg"},
272 {genie_tandg_real, "a68_tandg"},
273 {genie_asindg_real, "a68_asindg"},
274 {genie_acosdg_real, "a68_acosdg"},
275 {genie_atandg_real, "a68_atandg"},
276 {genie_asinh_real, "a68_asinh"},
277 {genie_acosh_real, "a68_acosh"},
278 {genie_atanh_real, "a68_atanh"},
279 {genie_inverfc_real, "a68_inverfc"},
280 {genie_inverf_real, "a68_inverf"},
281 {NO_GPROC, NO_TEXT}
282 };
283
284 TRANSLATION constants[] = {
285 {genie_int_lengths, "3"},
286 {genie_int_shorths, "1"},
287 {genie_real_lengths, "3"},
288 {genie_real_shorths, "1"},
289 {genie_complex_lengths, "3"},
290 {genie_complex_shorths, "1"},
291 #if (A68_LEVEL >= 3)
292 {genie_bits_lengths, "2"},
293 #else
294 {genie_bits_lengths, "3"},
295 #endif
296 {genie_bits_shorths, "1"},
297 {genie_bytes_lengths, "2"},
298 {genie_bytes_shorths, "1"},
299 {genie_int_width, "INT_WIDTH"},
300 {genie_long_int_width, "LONG_INT_WIDTH"},
301 {genie_long_mp_int_width, "LONG_LONG_INT_WIDTH"},
302 {genie_real_width, "REAL_WIDTH"},
303 {genie_long_real_width, "LONG_REAL_WIDTH"},
304 {genie_long_mp_real_width, "LONG_LONG_REAL_WIDTH"},
305 {genie_exp_width, "EXP_WIDTH"},
306 {genie_long_exp_width, "LONG_EXP_WIDTH"},
307 {genie_long_mp_exp_width, "LONG_LONG_EXP_WIDTH"},
308 {genie_bits_width, "BITS_WIDTH"},
309 {genie_bytes_width, "BYTES_WIDTH"},
310 {genie_long_bytes_width, "LONG_BYTES_WIDTH"},
311 {genie_max_abs_char, "UCHAR_MAX"},
312 {genie_max_int, "A68_MAX_INT"},
313 {genie_max_real, "REAL_MAX"},
314 {genie_min_real, "REAL_MIN"},
315 {genie_null_char, "NULL_CHAR"},
316 {genie_small_real, "REAL_EPSILON"},
317 {genie_pi, "A68_PI"},
318
319 #if defined (HAVE_GSL)
320
321 {genie_cgs_acre, "GSL_CONST_CGSM_ACRE"},
322 {genie_cgs_angstrom, "GSL_CONST_CGSM_ANGSTROM"},
323 {genie_cgs_astronomical_unit, "GSL_CONST_CGSM_ASTRONOMICAL_UNIT"},
324 {genie_cgs_bar, "GSL_CONST_CGSM_BAR"},
325 {genie_cgs_barn, "GSL_CONST_CGSM_BARN"},
326 {genie_cgs_bohr_magneton, "GSL_CONST_CGSM_BOHR_MAGNETON"},
327 {genie_cgs_bohr_radius, "GSL_CONST_CGSM_BOHR_RADIUS"},
328 {genie_cgs_boltzmann, "GSL_CONST_CGSM_BOLTZMANN"},
329 {genie_cgs_btu, "GSL_CONST_CGSM_BTU"},
330 {genie_cgs_calorie, "GSL_CONST_CGSM_CALORIE"},
331 {genie_cgs_canadian_gallon, "GSL_CONST_CGSM_CANADIAN_GALLON"},
332 {genie_cgs_carat, "GSL_CONST_CGSM_CARAT"},
333 {genie_cgs_cup, "GSL_CONST_CGSM_CUP"},
334 {genie_cgs_curie, "GSL_CONST_CGSM_CURIE"},
335 {genie_cgs_day, "GSL_CONST_CGSM_DAY"},
336 {genie_cgs_dyne, "GSL_CONST_CGSM_DYNE"},
337 {genie_cgs_electron_charge, "GSL_CONST_CGSM_ELECTRON_CHARGE"},
338 {genie_cgs_electron_magnetic_moment, "GSL_CONST_CGSM_ELECTRON_MAGNETIC_MOMENT"},
339 {genie_cgs_electron_volt, "GSL_CONST_CGSM_ELECTRON_VOLT"},
340 {genie_cgs_erg, "GSL_CONST_CGSM_ERG"},
341 {genie_cgs_faraday, "GSL_CONST_CGSM_FARADAY"},
342 {genie_cgs_fathom, "GSL_CONST_CGSM_FATHOM"},
343 {genie_cgs_fluid_ounce, "GSL_CONST_CGSM_FLUID_OUNCE"},
344 {genie_cgs_foot, "GSL_CONST_CGSM_FOOT"},
345 {genie_cgs_footcandle, "GSL_CONST_CGSM_FOOTCANDLE"},
346 {genie_cgs_footlambert, "GSL_CONST_CGSM_FOOTLAMBERT"},
347 {genie_cgs_gauss, "GSL_CONST_CGSM_GAUSS"},
348 {genie_cgs_gram_force, "GSL_CONST_CGSM_GRAM_FORCE"},
349 {genie_cgs_grav_accel, "GSL_CONST_CGSM_GRAV_ACCEL"},
350 {genie_cgs_gravitational_constant, "GSL_CONST_CGSM_GRAVITATIONAL_CONSTANT"},
351 {genie_cgs_hectare, "GSL_CONST_CGSM_HECTARE"},
352 {genie_cgs_horsepower, "GSL_CONST_CGSM_HORSEPOWER"},
353 {genie_cgs_hour, "GSL_CONST_CGSM_HOUR"},
354 {genie_cgs_inch, "GSL_CONST_CGSM_INCH"},
355 {genie_cgs_inch_of_mercury, "GSL_CONST_CGSM_INCH_OF_MERCURY"},
356 {genie_cgs_inch_of_water, "GSL_CONST_CGSM_INCH_OF_WATER"},
357 {genie_cgs_joule, "GSL_CONST_CGSM_JOULE"},
358 {genie_cgs_kilometers_per_hour, "GSL_CONST_CGSM_KILOMETERS_PER_HOUR"},
359 {genie_cgs_kilopound_force, "GSL_CONST_CGSM_KILOPOUND_FORCE"},
360 {genie_cgs_knot, "GSL_CONST_CGSM_KNOT"},
361 {genie_cgs_lambert, "GSL_CONST_CGSM_LAMBERT"},
362 {genie_cgs_light_year, "GSL_CONST_CGSM_LIGHT_YEAR"},
363 {genie_cgs_liter, "GSL_CONST_CGSM_LITER"},
364 {genie_cgs_lumen, "GSL_CONST_CGSM_LUMEN"},
365 {genie_cgs_lux, "GSL_CONST_CGSM_LUX"},
366 {genie_cgs_mass_electron, "GSL_CONST_CGSM_MASS_ELECTRON"},
367 {genie_cgs_mass_muon, "GSL_CONST_CGSM_MASS_MUON"},
368 {genie_cgs_mass_neutron, "GSL_CONST_CGSM_MASS_NEUTRON"},
369 {genie_cgs_mass_proton, "GSL_CONST_CGSM_MASS_PROTON"},
370 {genie_cgs_meter_of_mercury, "GSL_CONST_CGSM_METER_OF_MERCURY"},
371 {genie_cgs_metric_ton, "GSL_CONST_CGSM_METRIC_TON"},
372 {genie_cgs_micron, "GSL_CONST_CGSM_MICRON"},
373 {genie_cgs_mil, "GSL_CONST_CGSM_MIL"},
374 {genie_cgs_mile, "GSL_CONST_CGSM_MILE"},
375 {genie_cgs_miles_per_hour, "GSL_CONST_CGSM_MILES_PER_HOUR"},
376 {genie_cgs_minute, "GSL_CONST_CGSM_MINUTE"},
377 {genie_cgs_molar_gas, "GSL_CONST_CGSM_MOLAR_GAS"},
378 {genie_cgs_nautical_mile, "GSL_CONST_CGSM_NAUTICAL_MILE"},
379 {genie_cgs_newton, "GSL_CONST_CGSM_NEWTON"},
380 {genie_cgs_nuclear_magneton, "GSL_CONST_CGSM_NUCLEAR_MAGNETON"},
381 {genie_cgs_ounce_mass, "GSL_CONST_CGSM_OUNCE_MASS"},
382 {genie_cgs_parsec, "GSL_CONST_CGSM_PARSEC"},
383 {genie_cgs_phot, "GSL_CONST_CGSM_PHOT"},
384 {genie_cgs_pint, "GSL_CONST_CGSM_PINT"},
385 {genie_cgs_planck_constant_h, "6.6260693e-27"},
386 {genie_cgs_planck_constant_hbar, "1.0545717e-27"},
387 {genie_cgs_point, "GSL_CONST_CGSM_POINT"},
388 {genie_cgs_poise, "GSL_CONST_CGSM_POISE"},
389 {genie_cgs_pound_force, "GSL_CONST_CGSM_POUND_FORCE"},
390 {genie_cgs_pound_mass, "GSL_CONST_CGSM_POUND_MASS"},
391 {genie_cgs_poundal, "GSL_CONST_CGSM_POUNDAL"},
392 {genie_cgs_proton_magnetic_moment, "GSL_CONST_CGSM_PROTON_MAGNETIC_MOMENT"},
393 {genie_cgs_psi, "GSL_CONST_CGSM_PSI"},
394 {genie_cgs_quart, "GSL_CONST_CGSM_QUART"},
395 {genie_cgs_rad, "GSL_CONST_CGSM_RAD"},
396 {genie_cgs_roentgen, "GSL_CONST_CGSM_ROENTGEN"},
397 {genie_cgs_rydberg, "GSL_CONST_CGSM_RYDBERG"},
398 {genie_cgs_solar_mass, "GSL_CONST_CGSM_SOLAR_MASS"},
399 {genie_cgs_speed_of_light, "GSL_CONST_CGSM_SPEED_OF_LIGHT"},
400 {genie_cgs_standard_gas_volume, "GSL_CONST_CGSM_STANDARD_GAS_VOLUME"},
401 {genie_cgs_std_atmosphere, "GSL_CONST_CGSM_STD_ATMOSPHERE"},
402 {genie_cgs_stilb, "GSL_CONST_CGSM_STILB"},
403 {genie_cgs_stokes, "GSL_CONST_CGSM_STOKES"},
404 {genie_cgs_tablespoon, "GSL_CONST_CGSM_TABLESPOON"},
405 {genie_cgs_teaspoon, "GSL_CONST_CGSM_TEASPOON"},
406 {genie_cgs_texpoint, "GSL_CONST_CGSM_TEXPOINT"},
407 {genie_cgs_therm, "GSL_CONST_CGSM_THERM"},
408 {genie_cgs_ton, "GSL_CONST_CGSM_TON"},
409 {genie_cgs_torr, "GSL_CONST_CGSM_TORR"},
410 {genie_cgs_troy_ounce, "GSL_CONST_CGSM_TROY_OUNCE"},
411 {genie_cgs_uk_gallon, "GSL_CONST_CGSM_UK_GALLON"},
412 {genie_cgs_uk_ton, "GSL_CONST_CGSM_UK_TON"},
413 {genie_cgs_unified_atomic_mass, "GSL_CONST_CGSM_UNIFIED_ATOMIC_MASS"},
414 {genie_cgs_us_gallon, "GSL_CONST_CGSM_US_GALLON"},
415 {genie_cgs_week, "GSL_CONST_CGSM_WEEK"},
416 {genie_cgs_yard, "GSL_CONST_CGSM_YARD"},
417 {genie_mks_acre, "GSL_CONST_MKS_ACRE"},
418 {genie_mks_angstrom, "GSL_CONST_MKS_ANGSTROM"},
419 {genie_mks_astronomical_unit, "GSL_CONST_MKS_ASTRONOMICAL_UNIT"},
420 {genie_mks_bar, "GSL_CONST_MKS_BAR"},
421 {genie_mks_barn, "GSL_CONST_MKS_BARN"},
422 {genie_mks_bohr_magneton, "GSL_CONST_MKS_BOHR_MAGNETON"},
423 {genie_mks_bohr_radius, "GSL_CONST_MKS_BOHR_RADIUS"},
424 {genie_mks_boltzmann, "GSL_CONST_MKS_BOLTZMANN"},
425 {genie_mks_btu, "GSL_CONST_MKS_BTU"},
426 {genie_mks_calorie, "GSL_CONST_MKS_CALORIE"},
427 {genie_mks_canadian_gallon, "GSL_CONST_MKS_CANADIAN_GALLON"},
428 {genie_mks_carat, "GSL_CONST_MKS_CARAT"},
429 {genie_mks_cup, "GSL_CONST_MKS_CUP"},
430 {genie_mks_curie, "GSL_CONST_MKS_CURIE"},
431 {genie_mks_day, "GSL_CONST_MKS_DAY"},
432 {genie_mks_dyne, "GSL_CONST_MKS_DYNE"},
433 {genie_mks_electron_charge, "GSL_CONST_MKS_ELECTRON_CHARGE"},
434 {genie_mks_electron_magnetic_moment, "GSL_CONST_MKS_ELECTRON_MAGNETIC_MOMENT"},
435 {genie_mks_electron_volt, "GSL_CONST_MKS_ELECTRON_VOLT"},
436 {genie_mks_erg, "GSL_CONST_MKS_ERG"},
437 {genie_mks_faraday, "GSL_CONST_MKS_FARADAY"},
438 {genie_mks_fathom, "GSL_CONST_MKS_FATHOM"},
439 {genie_mks_fluid_ounce, "GSL_CONST_MKS_FLUID_OUNCE"},
440 {genie_mks_foot, "GSL_CONST_MKS_FOOT"},
441 {genie_mks_footcandle, "GSL_CONST_MKS_FOOTCANDLE"},
442 {genie_mks_footlambert, "GSL_CONST_MKS_FOOTLAMBERT"},
443 {genie_mks_gauss, "GSL_CONST_MKS_GAUSS"},
444 {genie_mks_gram_force, "GSL_CONST_MKS_GRAM_FORCE"},
445 {genie_mks_grav_accel, "GSL_CONST_MKS_GRAV_ACCEL"},
446 {genie_mks_gravitational_constant, "GSL_CONST_MKS_GRAVITATIONAL_CONSTANT"},
447 {genie_mks_hectare, "GSL_CONST_MKS_HECTARE"},
448 {genie_mks_horsepower, "GSL_CONST_MKS_HORSEPOWER"},
449 {genie_mks_hour, "GSL_CONST_MKS_HOUR"},
450 {genie_mks_inch, "GSL_CONST_MKS_INCH"},
451 {genie_mks_inch_of_mercury, "GSL_CONST_MKS_INCH_OF_MERCURY"},
452 {genie_mks_inch_of_water, "GSL_CONST_MKS_INCH_OF_WATER"},
453 {genie_mks_joule, "GSL_CONST_MKS_JOULE"},
454 {genie_mks_kilometers_per_hour, "GSL_CONST_MKS_KILOMETERS_PER_HOUR"},
455 {genie_mks_kilopound_force, "GSL_CONST_MKS_KILOPOUND_FORCE"},
456 {genie_mks_knot, "GSL_CONST_MKS_KNOT"},
457 {genie_mks_lambert, "GSL_CONST_MKS_LAMBERT"},
458 {genie_mks_light_year, "GSL_CONST_MKS_LIGHT_YEAR"},
459 {genie_mks_liter, "GSL_CONST_MKS_LITER"},
460 {genie_mks_lumen, "GSL_CONST_MKS_LUMEN"},
461 {genie_mks_lux, "GSL_CONST_MKS_LUX"},
462 {genie_mks_mass_electron, "GSL_CONST_MKS_MASS_ELECTRON"},
463 {genie_mks_mass_muon, "GSL_CONST_MKS_MASS_MUON"},
464 {genie_mks_mass_neutron, "GSL_CONST_MKS_MASS_NEUTRON"},
465 {genie_mks_mass_proton, "GSL_CONST_MKS_MASS_PROTON"},
466 {genie_mks_meter_of_mercury, "GSL_CONST_MKS_METER_OF_MERCURY"},
467 {genie_mks_metric_ton, "GSL_CONST_MKS_METRIC_TON"},
468 {genie_mks_micron, "GSL_CONST_MKS_MICRON"},
469 {genie_mks_mil, "GSL_CONST_MKS_MIL"},
470 {genie_mks_mile, "GSL_CONST_MKS_MILE"},
471 {genie_mks_miles_per_hour, "GSL_CONST_MKS_MILES_PER_HOUR"},
472 {genie_mks_minute, "GSL_CONST_MKS_MINUTE"},
473 {genie_mks_molar_gas, "GSL_CONST_MKS_MOLAR_GAS"},
474 {genie_mks_nautical_mile, "GSL_CONST_MKS_NAUTICAL_MILE"},
475 {genie_mks_newton, "GSL_CONST_MKS_NEWTON"},
476 {genie_mks_nuclear_magneton, "GSL_CONST_MKS_NUCLEAR_MAGNETON"},
477 {genie_mks_ounce_mass, "GSL_CONST_MKS_OUNCE_MASS"},
478 {genie_mks_parsec, "GSL_CONST_MKS_PARSEC"},
479 {genie_mks_phot, "GSL_CONST_MKS_PHOT"},
480 {genie_mks_pint, "GSL_CONST_MKS_PINT"},
481 {genie_mks_planck_constant_h, "6.6260693e-34"},
482 {genie_mks_planck_constant_hbar, "1.0545717e-34"},
483 {genie_mks_point, "GSL_CONST_MKS_POINT"},
484 {genie_mks_poise, "GSL_CONST_MKS_POISE"},
485 {genie_mks_pound_force, "GSL_CONST_MKS_POUND_FORCE"},
486 {genie_mks_pound_mass, "GSL_CONST_MKS_POUND_MASS"},
487 {genie_mks_poundal, "GSL_CONST_MKS_POUNDAL"},
488 {genie_mks_proton_magnetic_moment, "GSL_CONST_MKS_PROTON_MAGNETIC_MOMENT"},
489 {genie_mks_psi, "GSL_CONST_MKS_PSI"},
490 {genie_mks_quart, "GSL_CONST_MKS_QUART"},
491 {genie_mks_rad, "GSL_CONST_MKS_RAD"},
492 {genie_mks_roentgen, "GSL_CONST_MKS_ROENTGEN"},
493 {genie_mks_rydberg, "GSL_CONST_MKS_RYDBERG"},
494 {genie_mks_solar_mass, "GSL_CONST_MKS_SOLAR_MASS"},
495 {genie_mks_speed_of_light, "GSL_CONST_MKS_SPEED_OF_LIGHT"},
496 {genie_mks_standard_gas_volume, "GSL_CONST_MKS_STANDARD_GAS_VOLUME"},
497 {genie_mks_std_atmosphere, "GSL_CONST_MKS_STD_ATMOSPHERE"},
498 {genie_mks_stilb, "GSL_CONST_MKS_STILB"},
499 {genie_mks_stokes, "GSL_CONST_MKS_STOKES"},
500 {genie_mks_tablespoon, "GSL_CONST_MKS_TABLESPOON"},
501 {genie_mks_teaspoon, "GSL_CONST_MKS_TEASPOON"},
502 {genie_mks_texpoint, "GSL_CONST_MKS_TEXPOINT"},
503 {genie_mks_therm, "GSL_CONST_MKS_THERM"},
504 {genie_mks_ton, "GSL_CONST_MKS_TON"},
505 {genie_mks_torr, "GSL_CONST_MKS_TORR"},
506 {genie_mks_troy_ounce, "GSL_CONST_MKS_TROY_OUNCE"},
507 {genie_mks_uk_gallon, "GSL_CONST_MKS_UK_GALLON"},
508 {genie_mks_uk_ton, "GSL_CONST_MKS_UK_TON"},
509 {genie_mks_unified_atomic_mass, "GSL_CONST_MKS_UNIFIED_ATOMIC_MASS"},
510 {genie_mks_us_gallon, "GSL_CONST_MKS_US_GALLON"},
511 {genie_mks_vacuum_permeability, "GSL_CONST_MKS_VACUUM_PERMEABILITY"},
512 {genie_mks_vacuum_permittivity, "GSL_CONST_MKS_VACUUM_PERMITTIVITY"},
513 {genie_mks_week, "GSL_CONST_MKS_WEEK"},
514 {genie_mks_yard, "GSL_CONST_MKS_YARD"},
515 {genie_num_atto, "GSL_CONST_NUM_ATTO"},
516 {genie_num_avogadro, "GSL_CONST_NUM_AVOGADRO"},
517 {genie_num_exa, "GSL_CONST_NUM_EXA"},
518 {genie_num_femto, "GSL_CONST_NUM_FEMTO"},
519 {genie_num_fine_structure, "GSL_CONST_NUM_FINE_STRUCTURE"},
520 {genie_num_giga, "GSL_CONST_NUM_GIGA"},
521 {genie_num_kilo, "GSL_CONST_NUM_KILO"},
522 {genie_num_mega, "GSL_CONST_NUM_MEGA"},
523 {genie_num_micro, "GSL_CONST_NUM_MICRO"},
524 {genie_num_milli, "GSL_CONST_NUM_MILLI"},
525 {genie_num_nano, "GSL_CONST_NUM_NANO"},
526 {genie_num_peta, "GSL_CONST_NUM_PETA"},
527 {genie_num_pico, "GSL_CONST_NUM_PICO"},
528 {genie_num_tera, "GSL_CONST_NUM_TERA"},
529 {genie_num_yocto, "GSL_CONST_NUM_YOCTO"},
530 {genie_num_yotta, "GSL_CONST_NUM_YOTTA"},
531 {genie_num_zepto, "GSL_CONST_NUM_ZEPTO"},
532 {genie_num_zetta, "GSL_CONST_NUM_ZETTA"},
533
534 #endif
535
536 {NO_GPROC, NO_TEXT}
537 };
538