12#ifndef FORTRAN_RUNTIME_NUMERIC_H_
13#define FORTRAN_RUNTIME_NUMERIC_H_
15#include "flang/Common/float128.h"
16#include "flang/Runtime/cpp-type.h"
17#include "flang/Runtime/entry-names.h"
19namespace Fortran::runtime {
23CppTypeFor<TypeCategory::Integer, 1> RTDECL(Ceiling4_1)(
24 CppTypeFor<TypeCategory::Real, 4>);
25CppTypeFor<TypeCategory::Integer, 2> RTDECL(Ceiling4_2)(
26 CppTypeFor<TypeCategory::Real, 4>);
27CppTypeFor<TypeCategory::Integer, 4> RTDECL(Ceiling4_4)(
28 CppTypeFor<TypeCategory::Real, 4>);
29CppTypeFor<TypeCategory::Integer, 8> RTDECL(Ceiling4_8)(
30 CppTypeFor<TypeCategory::Real, 4>);
31#ifdef __SIZEOF_INT128__
32CppTypeFor<TypeCategory::Integer, 16> RTDECL(Ceiling4_16)(
33 CppTypeFor<TypeCategory::Real, 4>);
35CppTypeFor<TypeCategory::Integer, 1> RTDECL(Ceiling8_1)(
36 CppTypeFor<TypeCategory::Real, 8>);
37CppTypeFor<TypeCategory::Integer, 2> RTDECL(Ceiling8_2)(
38 CppTypeFor<TypeCategory::Real, 8>);
39CppTypeFor<TypeCategory::Integer, 4> RTDECL(Ceiling8_4)(
40 CppTypeFor<TypeCategory::Real, 8>);
41CppTypeFor<TypeCategory::Integer, 8> RTDECL(Ceiling8_8)(
42 CppTypeFor<TypeCategory::Real, 8>);
43#ifdef __SIZEOF_INT128__
44CppTypeFor<TypeCategory::Integer, 16> RTDECL(Ceiling8_16)(
45 CppTypeFor<TypeCategory::Real, 8>);
48CppTypeFor<TypeCategory::Integer, 1> RTDECL(Ceiling10_1)(
49 CppTypeFor<TypeCategory::Real, 10>);
50CppTypeFor<TypeCategory::Integer, 2> RTDECL(Ceiling10_2)(
51 CppTypeFor<TypeCategory::Real, 10>);
52CppTypeFor<TypeCategory::Integer, 4> RTDECL(Ceiling10_4)(
53 CppTypeFor<TypeCategory::Real, 10>);
54CppTypeFor<TypeCategory::Integer, 8> RTDECL(Ceiling10_8)(
55 CppTypeFor<TypeCategory::Real, 10>);
56#ifdef __SIZEOF_INT128__
57CppTypeFor<TypeCategory::Integer, 16> RTDECL(Ceiling10_16)(
58 CppTypeFor<TypeCategory::Real, 10>);
61#if HAS_LDBL128 || HAS_FLOAT128
62CppTypeFor<TypeCategory::Integer, 1> RTDECL(Ceiling16_1)(
63 CppTypeFor<TypeCategory::Real, 16>);
64CppTypeFor<TypeCategory::Integer, 2> RTDECL(Ceiling16_2)(
65 CppTypeFor<TypeCategory::Real, 16>);
66CppTypeFor<TypeCategory::Integer, 4> RTDECL(Ceiling16_4)(
67 CppTypeFor<TypeCategory::Real, 16>);
68CppTypeFor<TypeCategory::Integer, 8> RTDECL(Ceiling16_8)(
69 CppTypeFor<TypeCategory::Real, 16>);
70#ifdef __SIZEOF_INT128__
71CppTypeFor<TypeCategory::Integer, 16> RTDECL(Ceiling16_16)(
72 CppTypeFor<TypeCategory::Real, 16>);
77CppTypeFor<TypeCategory::Real, 4> RTDECL(ErfcScaled4)(
78 CppTypeFor<TypeCategory::Real, 4>);
79CppTypeFor<TypeCategory::Real, 8> RTDECL(ErfcScaled8)(
80 CppTypeFor<TypeCategory::Real, 8>);
82CppTypeFor<TypeCategory::Real, 10> RTDECL(ErfcScaled10)(
83 CppTypeFor<TypeCategory::Real, 10>);
85#if HAS_LDBL128 || HAS_FLOAT128
86CppTypeFor<TypeCategory::Real, 16> RTDECL(ErfcScaled16)(
87 CppTypeFor<TypeCategory::Real, 16>);
91CppTypeFor<TypeCategory::Integer, 4> RTDECL(Exponent4_4)(
92 CppTypeFor<TypeCategory::Real, 4>);
93CppTypeFor<TypeCategory::Integer, 8> RTDECL(Exponent4_8)(
94 CppTypeFor<TypeCategory::Real, 4>);
95CppTypeFor<TypeCategory::Integer, 4> RTDECL(Exponent8_4)(
96 CppTypeFor<TypeCategory::Real, 8>);
97CppTypeFor<TypeCategory::Integer, 8> RTDECL(Exponent8_8)(
98 CppTypeFor<TypeCategory::Real, 8>);
100CppTypeFor<TypeCategory::Integer, 4> RTDECL(Exponent10_4)(
101 CppTypeFor<TypeCategory::Real, 10>);
102CppTypeFor<TypeCategory::Integer, 8> RTDECL(Exponent10_8)(
103 CppTypeFor<TypeCategory::Real, 10>);
105#if HAS_LDBL128 || HAS_FLOAT
106CppTypeFor<TypeCategory::Integer, 4> RTDECL(Exponent16_4)(
107 CppTypeFor<TypeCategory::Real, 16>);
108CppTypeFor<TypeCategory::Integer, 8> RTDECL(Exponent16_8)(
109 CppTypeFor<TypeCategory::Real, 16>);
113CppTypeFor<TypeCategory::Integer, 1> RTDECL(Floor4_1)(
114 CppTypeFor<TypeCategory::Real, 4>);
115CppTypeFor<TypeCategory::Integer, 2> RTDECL(Floor4_2)(
116 CppTypeFor<TypeCategory::Real, 4>);
117CppTypeFor<TypeCategory::Integer, 4> RTDECL(Floor4_4)(
118 CppTypeFor<TypeCategory::Real, 4>);
119CppTypeFor<TypeCategory::Integer, 8> RTDECL(Floor4_8)(
120 CppTypeFor<TypeCategory::Real, 4>);
121#ifdef __SIZEOF_INT128__
122CppTypeFor<TypeCategory::Integer, 16> RTDECL(Floor4_16)(
123 CppTypeFor<TypeCategory::Real, 4>);
125CppTypeFor<TypeCategory::Integer, 1> RTDECL(Floor8_1)(
126 CppTypeFor<TypeCategory::Real, 8>);
127CppTypeFor<TypeCategory::Integer, 2> RTDECL(Floor8_2)(
128 CppTypeFor<TypeCategory::Real, 8>);
129CppTypeFor<TypeCategory::Integer, 4> RTDECL(Floor8_4)(
130 CppTypeFor<TypeCategory::Real, 8>);
131CppTypeFor<TypeCategory::Integer, 8> RTDECL(Floor8_8)(
132 CppTypeFor<TypeCategory::Real, 8>);
133#ifdef __SIZEOF_INT128__
134CppTypeFor<TypeCategory::Integer, 16> RTDECL(Floor8_16)(
135 CppTypeFor<TypeCategory::Real, 8>);
138CppTypeFor<TypeCategory::Integer, 1> RTDECL(Floor10_1)(
139 CppTypeFor<TypeCategory::Real, 10>);
140CppTypeFor<TypeCategory::Integer, 2> RTDECL(Floor10_2)(
141 CppTypeFor<TypeCategory::Real, 10>);
142CppTypeFor<TypeCategory::Integer, 4> RTDECL(Floor10_4)(
143 CppTypeFor<TypeCategory::Real, 10>);
144CppTypeFor<TypeCategory::Integer, 8> RTDECL(Floor10_8)(
145 CppTypeFor<TypeCategory::Real, 10>);
146#ifdef __SIZEOF_INT128__
147CppTypeFor<TypeCategory::Integer, 16> RTDECL(Floor10_16)(
148 CppTypeFor<TypeCategory::Real, 10>);
151#if HAS_LDBL128 || HAS_FLOAT128
152CppTypeFor<TypeCategory::Integer, 1> RTDECL(Floor16_1)(
153 CppTypeFor<TypeCategory::Real, 16>);
154CppTypeFor<TypeCategory::Integer, 2> RTDECL(Floor16_2)(
155 CppTypeFor<TypeCategory::Real, 16>);
156CppTypeFor<TypeCategory::Integer, 4> RTDECL(Floor16_4)(
157 CppTypeFor<TypeCategory::Real, 16>);
158CppTypeFor<TypeCategory::Integer, 8> RTDECL(Floor16_8)(
159 CppTypeFor<TypeCategory::Real, 16>);
160#ifdef __SIZEOF_INT128__
161CppTypeFor<TypeCategory::Integer, 16> RTDECL(Floor16_16)(
162 CppTypeFor<TypeCategory::Real, 16>);
167CppTypeFor<TypeCategory::Real, 4> RTDECL(Fraction4)(
168 CppTypeFor<TypeCategory::Real, 4>);
169CppTypeFor<TypeCategory::Real, 8> RTDECL(Fraction8)(
170 CppTypeFor<TypeCategory::Real, 8>);
172CppTypeFor<TypeCategory::Real, 10> RTDECL(Fraction10)(
173 CppTypeFor<TypeCategory::Real, 10>);
175#if HAS_LDBL128 || HAS_FLOAT128
176CppTypeFor<TypeCategory::Real, 16> RTDECL(Fraction16)(
177 CppTypeFor<TypeCategory::Real, 16>);
181bool RTDECL(IsNaN4)(CppTypeFor<TypeCategory::Real, 4>);
182bool RTDECL(IsNaN8)(CppTypeFor<TypeCategory::Real, 8>);
184bool RTDECL(IsNaN10)(CppTypeFor<TypeCategory::Real, 10>);
186#if HAS_LDBL128 || HAS_FLOAT128
187bool RTDECL(IsNaN16)(CppTypeFor<TypeCategory::Real, 16>);
191CppTypeFor<TypeCategory::Integer, 1> RTDECL(ModInteger1)(
192 CppTypeFor<TypeCategory::Integer, 1>, CppTypeFor<TypeCategory::Integer, 1>,
193 const char *sourceFile =
nullptr,
int sourceLine = 0);
194CppTypeFor<TypeCategory::Integer, 2> RTDECL(ModInteger2)(
195 CppTypeFor<TypeCategory::Integer, 2>, CppTypeFor<TypeCategory::Integer, 2>,
196 const char *sourceFile =
nullptr,
int sourceLine = 0);
197CppTypeFor<TypeCategory::Integer, 4> RTDECL(ModInteger4)(
198 CppTypeFor<TypeCategory::Integer, 4>, CppTypeFor<TypeCategory::Integer, 4>,
199 const char *sourceFile =
nullptr,
int sourceLine = 0);
200CppTypeFor<TypeCategory::Integer, 8> RTDECL(ModInteger8)(
201 CppTypeFor<TypeCategory::Integer, 8>, CppTypeFor<TypeCategory::Integer, 8>,
202 const char *sourceFile =
nullptr,
int sourceLine = 0);
203#ifdef __SIZEOF_INT128__
204CppTypeFor<TypeCategory::Integer, 16> RTDECL(ModInteger16)(
205 CppTypeFor<TypeCategory::Integer, 16>,
206 CppTypeFor<TypeCategory::Integer, 16>,
const char *sourceFile =
nullptr,
209CppTypeFor<TypeCategory::Real, 4> RTDECL(ModReal4)(
210 CppTypeFor<TypeCategory::Real, 4>, CppTypeFor<TypeCategory::Real, 4>,
211 const char *sourceFile =
nullptr,
int sourceLine = 0);
212CppTypeFor<TypeCategory::Real, 8> RTDECL(ModReal8)(
213 CppTypeFor<TypeCategory::Real, 8>, CppTypeFor<TypeCategory::Real, 8>,
214 const char *sourceFile =
nullptr,
int sourceLine = 0);
216CppTypeFor<TypeCategory::Real, 10> RTDECL(ModReal10)(
217 CppTypeFor<TypeCategory::Real, 10>, CppTypeFor<TypeCategory::Real, 10>,
218 const char *sourceFile =
nullptr,
int sourceLine = 0);
220#if HAS_LDBL128 || HAS_FLOAT128
221CppTypeFor<TypeCategory::Real, 16> RTDECL(ModReal16)(
222 CppTypeFor<TypeCategory::Real, 16>, CppTypeFor<TypeCategory::Real, 16>,
223 const char *sourceFile =
nullptr,
int sourceLine = 0);
226CppTypeFor<TypeCategory::Integer, 1> RTDECL(ModuloInteger1)(
227 CppTypeFor<TypeCategory::Integer, 1>, CppTypeFor<TypeCategory::Integer, 1>,
228 const char *sourceFile =
nullptr,
int sourceLine = 0);
229CppTypeFor<TypeCategory::Integer, 2> RTDECL(ModuloInteger2)(
230 CppTypeFor<TypeCategory::Integer, 2>, CppTypeFor<TypeCategory::Integer, 2>,
231 const char *sourceFile =
nullptr,
int sourceLine = 0);
232CppTypeFor<TypeCategory::Integer, 4> RTDECL(ModuloInteger4)(
233 CppTypeFor<TypeCategory::Integer, 4>, CppTypeFor<TypeCategory::Integer, 4>,
234 const char *sourceFile =
nullptr,
int sourceLine = 0);
235CppTypeFor<TypeCategory::Integer, 8> RTDECL(ModuloInteger8)(
236 CppTypeFor<TypeCategory::Integer, 8>, CppTypeFor<TypeCategory::Integer, 8>,
237 const char *sourceFile =
nullptr,
int sourceLine = 0);
238#ifdef __SIZEOF_INT128__
239CppTypeFor<TypeCategory::Integer, 16> RTDECL(ModuloInteger16)(
240 CppTypeFor<TypeCategory::Integer, 16>,
241 CppTypeFor<TypeCategory::Integer, 16>,
const char *sourceFile =
nullptr,
244CppTypeFor<TypeCategory::Real, 4> RTDECL(ModuloReal4)(
245 CppTypeFor<TypeCategory::Real, 4>, CppTypeFor<TypeCategory::Real, 4>,
246 const char *sourceFile =
nullptr,
int sourceLine = 0);
247CppTypeFor<TypeCategory::Real, 8> RTDECL(ModuloReal8)(
248 CppTypeFor<TypeCategory::Real, 8>, CppTypeFor<TypeCategory::Real, 8>,
249 const char *sourceFile =
nullptr,
int sourceLine = 0);
251CppTypeFor<TypeCategory::Real, 10> RTDECL(ModuloReal10)(
252 CppTypeFor<TypeCategory::Real, 10>, CppTypeFor<TypeCategory::Real, 10>,
253 const char *sourceFile =
nullptr,
int sourceLine = 0);
255#if HAS_LDBL128 || HAS_FLOAT128
256CppTypeFor<TypeCategory::Real, 16> RTDECL(ModuloReal16)(
257 CppTypeFor<TypeCategory::Real, 16>, CppTypeFor<TypeCategory::Real, 16>,
258 const char *sourceFile =
nullptr,
int sourceLine = 0);
262CppTypeFor<TypeCategory::Integer, 1> RTDECL(Nint4_1)(
263 CppTypeFor<TypeCategory::Real, 4>);
264CppTypeFor<TypeCategory::Integer, 2> RTDECL(Nint4_2)(
265 CppTypeFor<TypeCategory::Real, 4>);
266CppTypeFor<TypeCategory::Integer, 4> RTDECL(Nint4_4)(
267 CppTypeFor<TypeCategory::Real, 4>);
268CppTypeFor<TypeCategory::Integer, 8> RTDECL(Nint4_8)(
269 CppTypeFor<TypeCategory::Real, 4>);
270#ifdef __SIZEOF_INT128__
271CppTypeFor<TypeCategory::Integer, 16> RTDECL(Nint4_16)(
272 CppTypeFor<TypeCategory::Real, 4>);
274CppTypeFor<TypeCategory::Integer, 1> RTDECL(Nint8_1)(
275 CppTypeFor<TypeCategory::Real, 8>);
276CppTypeFor<TypeCategory::Integer, 2> RTDECL(Nint8_2)(
277 CppTypeFor<TypeCategory::Real, 8>);
278CppTypeFor<TypeCategory::Integer, 4> RTDECL(Nint8_4)(
279 CppTypeFor<TypeCategory::Real, 8>);
280CppTypeFor<TypeCategory::Integer, 8> RTDECL(Nint8_8)(
281 CppTypeFor<TypeCategory::Real, 8>);
282#ifdef __SIZEOF_INT128__
283CppTypeFor<TypeCategory::Integer, 16> RTDECL(Nint8_16)(
284 CppTypeFor<TypeCategory::Real, 8>);
287CppTypeFor<TypeCategory::Integer, 1> RTDECL(Nint10_1)(
288 CppTypeFor<TypeCategory::Real, 10>);
289CppTypeFor<TypeCategory::Integer, 2> RTDECL(Nint10_2)(
290 CppTypeFor<TypeCategory::Real, 10>);
291CppTypeFor<TypeCategory::Integer, 4> RTDECL(Nint10_4)(
292 CppTypeFor<TypeCategory::Real, 10>);
293CppTypeFor<TypeCategory::Integer, 8> RTDECL(Nint10_8)(
294 CppTypeFor<TypeCategory::Real, 10>);
295#ifdef __SIZEOF_INT128__
296CppTypeFor<TypeCategory::Integer, 16> RTDECL(Nint10_16)(
297 CppTypeFor<TypeCategory::Real, 10>);
300#if HAS_LDBL128 || HAS_FLOAT128
301CppTypeFor<TypeCategory::Integer, 1> RTDECL(Nint16_1)(
302 CppTypeFor<TypeCategory::Real, 16>);
303CppTypeFor<TypeCategory::Integer, 2> RTDECL(Nint16_2)(
304 CppTypeFor<TypeCategory::Real, 16>);
305CppTypeFor<TypeCategory::Integer, 4> RTDECL(Nint16_4)(
306 CppTypeFor<TypeCategory::Real, 16>);
307CppTypeFor<TypeCategory::Integer, 8> RTDECL(Nint16_8)(
308 CppTypeFor<TypeCategory::Real, 16>);
309#if defined __SIZEOF_INT128__
310CppTypeFor<TypeCategory::Integer, 16> RTDECL(Nint16_16)(
311 CppTypeFor<TypeCategory::Real, 16>);
318CppTypeFor<TypeCategory::Real, 4> RTDECL(Nearest4)(
319 CppTypeFor<TypeCategory::Real, 4>,
bool positive);
320CppTypeFor<TypeCategory::Real, 8> RTDECL(Nearest8)(
321 CppTypeFor<TypeCategory::Real, 8>,
bool positive);
323CppTypeFor<TypeCategory::Real, 10> RTDECL(Nearest10)(
324 CppTypeFor<TypeCategory::Real, 10>,
bool positive);
326#if HAS_LDBL128 || HAS_FLOAT128
327CppTypeFor<TypeCategory::Real, 16> RTDECL(Nearest16)(
328 CppTypeFor<TypeCategory::Real, 16>,
bool positive);
332CppTypeFor<TypeCategory::Real, 4> RTDECL(RRSpacing4)(
333 CppTypeFor<TypeCategory::Real, 4>);
334CppTypeFor<TypeCategory::Real, 8> RTDECL(RRSpacing8)(
335 CppTypeFor<TypeCategory::Real, 8>);
337CppTypeFor<TypeCategory::Real, 10> RTDECL(RRSpacing10)(
338 CppTypeFor<TypeCategory::Real, 10>);
340#if HAS_LDBL128 || HAS_FLOAT128
341CppTypeFor<TypeCategory::Real, 16> RTDECL(RRSpacing16)(
342 CppTypeFor<TypeCategory::Real, 16>);
346CppTypeFor<TypeCategory::Real, 4> RTDECL(SetExponent4)(
347 CppTypeFor<TypeCategory::Real, 4>, std::int64_t);
348CppTypeFor<TypeCategory::Real, 8> RTDECL(SetExponent8)(
349 CppTypeFor<TypeCategory::Real, 8>, std::int64_t);
351CppTypeFor<TypeCategory::Real, 10> RTDECL(SetExponent10)(
352 CppTypeFor<TypeCategory::Real, 10>, std::int64_t);
354#if HAS_LDBL128 || HAS_FLOAT128
355CppTypeFor<TypeCategory::Real, 16> RTDECL(SetExponent16)(
356 CppTypeFor<TypeCategory::Real, 16>, std::int64_t);
360CppTypeFor<TypeCategory::Real, 4> RTDECL(Scale4)(
361 CppTypeFor<TypeCategory::Real, 4>, std::int64_t);
362CppTypeFor<TypeCategory::Real, 8> RTDECL(Scale8)(
363 CppTypeFor<TypeCategory::Real, 8>, std::int64_t);
365CppTypeFor<TypeCategory::Real, 10> RTDECL(Scale10)(
366 CppTypeFor<TypeCategory::Real, 10>, std::int64_t);
368#if HAS_LDBL128 || HAS_FLOAT128
369CppTypeFor<TypeCategory::Real, 16> RTDECL(Scale16)(
370 CppTypeFor<TypeCategory::Real, 16>, std::int64_t);
374CppTypeFor<TypeCategory::Integer, 4> RTDECL(SelectedCharKind)(
375 const char *, int,
const char *, std::size_t);
378CppTypeFor<TypeCategory::Integer, 4> RTDECL(SelectedIntKind)(
379 const char *, int,
void *, int);
380CppTypeFor<TypeCategory::Integer, 4> RTDECL(SelectedIntKindMasked)(
381 const char *, int,
void *, int, int);
384CppTypeFor<TypeCategory::Integer, 4> RTDECL(SelectedLogicalKind)(
385 const char *, int,
void *, int);
388CppTypeFor<TypeCategory::Integer, 4> RTDECL(SelectedRealKind)(
389 const char *, int,
void *, int,
void *, int,
void *, int);
390CppTypeFor<TypeCategory::Integer, 4> RTDECL(SelectedRealKindMasked)(
391 const char *, int,
void *, int,
void *, int,
void *, int, int);
398CppTypeFor<TypeCategory::Real, 2> RTDECL(Spacing2)(
399 CppTypeFor<TypeCategory::Real, 2>);
401CppTypeFor<TypeCategory::Real, 4> RTDECL(Spacing2By4)(
402 CppTypeFor<TypeCategory::Real, 4>);
404CppTypeFor<TypeCategory::Real, 3> RTDECL(Spacing3)(
405 CppTypeFor<TypeCategory::Real, 3>);
407CppTypeFor<TypeCategory::Real, 4> RTDECL(Spacing3By4)(
408 CppTypeFor<TypeCategory::Real, 4>);
409CppTypeFor<TypeCategory::Real, 4> RTDECL(Spacing4)(
410 CppTypeFor<TypeCategory::Real, 4>);
411CppTypeFor<TypeCategory::Real, 8> RTDECL(Spacing8)(
412 CppTypeFor<TypeCategory::Real, 8>);
414CppTypeFor<TypeCategory::Real, 10> RTDECL(Spacing10)(
415 CppTypeFor<TypeCategory::Real, 10>);
417#if HAS_LDBL128 || HAS_FLOAT128
418CppTypeFor<TypeCategory::Real, 16> RTDECL(Spacing16)(
419 CppTypeFor<TypeCategory::Real, 16>);
422CppTypeFor<TypeCategory::Real, 4> RTDECL(FPow4i)(
423 CppTypeFor<TypeCategory::Real, 4> b,
424 CppTypeFor<TypeCategory::Integer, 4> e);
425CppTypeFor<TypeCategory::Real, 8> RTDECL(FPow8i)(
426 CppTypeFor<TypeCategory::Real, 8> b,
427 CppTypeFor<TypeCategory::Integer, 4> e);
429CppTypeFor<TypeCategory::Real, 10> RTDECL(FPow10i)(
430 CppTypeFor<TypeCategory::Real, 10> b,
431 CppTypeFor<TypeCategory::Integer, 4> e);
433#if HAS_LDBL128 || HAS_FLOAT128
434CppTypeFor<TypeCategory::Real, 16> RTDECL(FPow16i)(
435 CppTypeFor<TypeCategory::Real, 16> b,
436 CppTypeFor<TypeCategory::Integer, 4> e);
439CppTypeFor<TypeCategory::Real, 4> RTDECL(FPow4k)(
440 CppTypeFor<TypeCategory::Real, 4> b,
441 CppTypeFor<TypeCategory::Integer, 8> e);
442CppTypeFor<TypeCategory::Real, 8> RTDECL(FPow8k)(
443 CppTypeFor<TypeCategory::Real, 8> b,
444 CppTypeFor<TypeCategory::Integer, 8> e);
446CppTypeFor<TypeCategory::Real, 10> RTDECL(FPow10k)(
447 CppTypeFor<TypeCategory::Real, 10> b,
448 CppTypeFor<TypeCategory::Integer, 8> e);
450#if HAS_LDBL128 || HAS_FLOAT128
451CppTypeFor<TypeCategory::Real, 16> RTDECL(FPow16k)(
452 CppTypeFor<TypeCategory::Real, 16> b,
453 CppTypeFor<TypeCategory::Integer, 8> e);