• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===-- C standard library header stdfix.h --------------------------------===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLVM_LIBC_STDFIX_H
10 #define LLVM_LIBC_STDFIX_H
11 
12 #include "__llvm-libc-common.h"
13 #include "llvm-libc-macros/stdfix-macros.h"
14 
15 // From ISO/IEC TR 18037:2008 standard:
16 // https://www.iso.org/standard/51126.html
17 // https://standards.iso.org/ittf/PubliclyAvailableStandards/c051126_ISO_IEC_TR_18037_2008.zip
18 
19 
20 __BEGIN_C_DECLS
21 
22 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
23 short accum abshk(short accum) __NOEXCEPT;
24 #endif // LIBC_COMPILER_HAS_FIXED_POINT
25 
26 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
27 short fract abshr(short fract) __NOEXCEPT;
28 #endif // LIBC_COMPILER_HAS_FIXED_POINT
29 
30 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
31 accum absk(accum) __NOEXCEPT;
32 #endif // LIBC_COMPILER_HAS_FIXED_POINT
33 
34 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
35 long accum abslk(long accum) __NOEXCEPT;
36 #endif // LIBC_COMPILER_HAS_FIXED_POINT
37 
38 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
39 long fract abslr(long fract) __NOEXCEPT;
40 #endif // LIBC_COMPILER_HAS_FIXED_POINT
41 
42 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
43 fract absr(fract) __NOEXCEPT;
44 #endif // LIBC_COMPILER_HAS_FIXED_POINT
45 
46 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
47 short accum exphk(short accum) __NOEXCEPT;
48 #endif // LIBC_COMPILER_HAS_FIXED_POINT
49 
50 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
51 accum expk(accum) __NOEXCEPT;
52 #endif // LIBC_COMPILER_HAS_FIXED_POINT
53 
54 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
55 short accum roundhk(short accum, int) __NOEXCEPT;
56 #endif // LIBC_COMPILER_HAS_FIXED_POINT
57 
58 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
59 short fract roundhr(short fract, int) __NOEXCEPT;
60 #endif // LIBC_COMPILER_HAS_FIXED_POINT
61 
62 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
63 accum roundk(accum, int) __NOEXCEPT;
64 #endif // LIBC_COMPILER_HAS_FIXED_POINT
65 
66 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
67 long accum roundlk(long accum, int) __NOEXCEPT;
68 #endif // LIBC_COMPILER_HAS_FIXED_POINT
69 
70 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
71 long fract roundlr(long fract, int) __NOEXCEPT;
72 #endif // LIBC_COMPILER_HAS_FIXED_POINT
73 
74 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
75 fract roundr(fract, int) __NOEXCEPT;
76 #endif // LIBC_COMPILER_HAS_FIXED_POINT
77 
78 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
79 unsigned short accum rounduhk(unsigned short accum, int) __NOEXCEPT;
80 #endif // LIBC_COMPILER_HAS_FIXED_POINT
81 
82 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
83 unsigned short fract rounduhr(unsigned short fract, int) __NOEXCEPT;
84 #endif // LIBC_COMPILER_HAS_FIXED_POINT
85 
86 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
87 unsigned accum rounduk(unsigned accum, int) __NOEXCEPT;
88 #endif // LIBC_COMPILER_HAS_FIXED_POINT
89 
90 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
91 unsigned long accum roundulk(unsigned long accum, int) __NOEXCEPT;
92 #endif // LIBC_COMPILER_HAS_FIXED_POINT
93 
94 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
95 unsigned long fract roundulr(unsigned long fract, int) __NOEXCEPT;
96 #endif // LIBC_COMPILER_HAS_FIXED_POINT
97 
98 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
99 unsigned fract roundur(unsigned fract, int) __NOEXCEPT;
100 #endif // LIBC_COMPILER_HAS_FIXED_POINT
101 
102 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
103 unsigned short accum sqrtuhk(unsigned short accum) __NOEXCEPT;
104 #endif // LIBC_COMPILER_HAS_FIXED_POINT
105 
106 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
107 unsigned short fract sqrtuhr(unsigned short fract) __NOEXCEPT;
108 #endif // LIBC_COMPILER_HAS_FIXED_POINT
109 
110 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
111 unsigned accum sqrtuk(unsigned accum) __NOEXCEPT;
112 #endif // LIBC_COMPILER_HAS_FIXED_POINT
113 
114 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
115 unsigned fract sqrtur(unsigned fract) __NOEXCEPT;
116 #endif // LIBC_COMPILER_HAS_FIXED_POINT
117 
118 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
119 unsigned long fract sqrtulr(unsigned long fract) __NOEXCEPT;
120 #endif // LIBC_COMPILER_HAS_FIXED_POINT
121 
122 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
123 unsigned short accum uhksqrtus(unsigned short) __NOEXCEPT;
124 #endif // LIBC_COMPILER_HAS_FIXED_POINT
125 
126 #ifdef LIBC_COMPILER_HAS_FIXED_POINT
127 unsigned accum uksqrtui(unsigned int) __NOEXCEPT;
128 #endif // LIBC_COMPILER_HAS_FIXED_POINT
129 
130 __END_C_DECLS
131 
132 #endif // LLVM_LIBC_STDFIX_H
133