noobs 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/COPYING +339 -0
  2. package/README.md +46 -0
  3. package/bin/64bit/obs.lib +0 -0
  4. package/binding.gyp +23 -0
  5. package/dist/bin/Qt6Core.dll +0 -0
  6. package/dist/bin/Qt6Gui.dll +0 -0
  7. package/dist/bin/Qt6Network.dll +0 -0
  8. package/dist/bin/Qt6Svg.dll +0 -0
  9. package/dist/bin/Qt6Widgets.dll +0 -0
  10. package/dist/bin/Qt6Xml.dll +0 -0
  11. package/dist/bin/avcodec-61.dll +0 -0
  12. package/dist/bin/avdevice-61.dll +0 -0
  13. package/dist/bin/avfilter-10.dll +0 -0
  14. package/dist/bin/avformat-61.dll +0 -0
  15. package/dist/bin/avutil-59.dll +0 -0
  16. package/dist/bin/datachannel.dll +0 -0
  17. package/dist/bin/libcurl.dll +0 -0
  18. package/dist/bin/libobs-d3d11.dll +0 -0
  19. package/dist/bin/libobs-opengl.dll +0 -0
  20. package/dist/bin/libobs-winrt.dll +0 -0
  21. package/dist/bin/librist.dll +0 -0
  22. package/dist/bin/libx264-164.dll +0 -0
  23. package/dist/bin/lua51.dll +0 -0
  24. package/dist/bin/obs-amf-test.exe +0 -0
  25. package/dist/bin/obs-ffmpeg-mux.exe +0 -0
  26. package/dist/bin/obs-frontend-api.dll +0 -0
  27. package/dist/bin/obs-scripting.dll +0 -0
  28. package/dist/bin/obs.dll +0 -0
  29. package/dist/bin/srt.dll +0 -0
  30. package/dist/bin/swresample-5.dll +0 -0
  31. package/dist/bin/swscale-8.dll +0 -0
  32. package/dist/bin/w32-pthreads.dll +0 -0
  33. package/dist/bin/zlib.dll +0 -0
  34. package/dist/effects/area.effect +250 -0
  35. package/dist/effects/bicubic_scale.effect +236 -0
  36. package/dist/effects/bilinear_lowres_scale.effect +123 -0
  37. package/dist/effects/color.effect +172 -0
  38. package/dist/effects/default.effect +254 -0
  39. package/dist/effects/default_rect.effect +84 -0
  40. package/dist/effects/deinterlace_base.effect +325 -0
  41. package/dist/effects/deinterlace_blend.effect +21 -0
  42. package/dist/effects/deinterlace_blend_2x.effect +21 -0
  43. package/dist/effects/deinterlace_discard.effect +21 -0
  44. package/dist/effects/deinterlace_discard_2x.effect +21 -0
  45. package/dist/effects/deinterlace_linear.effect +21 -0
  46. package/dist/effects/deinterlace_linear_2x.effect +21 -0
  47. package/dist/effects/deinterlace_yadif.effect +21 -0
  48. package/dist/effects/deinterlace_yadif_2x.effect +21 -0
  49. package/dist/effects/format_conversion.effect +1823 -0
  50. package/dist/effects/lanczos_scale.effect +292 -0
  51. package/dist/effects/opaque.effect +159 -0
  52. package/dist/effects/premultiplied_alpha.effect +38 -0
  53. package/dist/effects/repeat.effect +36 -0
  54. package/dist/effects/solid.effect +80 -0
  55. package/dist/noobs.node +0 -0
  56. package/dist/plugins/obs-ffmpeg.dll +0 -0
  57. package/dist/plugins/obs-x264.dll +0 -0
  58. package/dist/plugins/win-capture.dll +0 -0
  59. package/include/audio-monitoring/osx/mac-helpers.h +13 -0
  60. package/include/audio-monitoring/pulse/pulseaudio-wrapper.h +212 -0
  61. package/include/audio-monitoring/win32/wasapi-output.h +22 -0
  62. package/include/callback/calldata.h +195 -0
  63. package/include/callback/decl.h +61 -0
  64. package/include/callback/proc.h +52 -0
  65. package/include/callback/signal.h +73 -0
  66. package/include/graphics/axisang.h +65 -0
  67. package/include/graphics/bounds.h +108 -0
  68. package/include/graphics/device-exports.h +177 -0
  69. package/include/graphics/effect-parser.h +290 -0
  70. package/include/graphics/effect.h +190 -0
  71. package/include/graphics/graphics-internal.h +335 -0
  72. package/include/graphics/graphics.h +1024 -0
  73. package/include/graphics/half.h +100 -0
  74. package/include/graphics/image-file.h +124 -0
  75. package/include/graphics/input.h +34 -0
  76. package/include/graphics/libnsgif/libnsgif.h +142 -0
  77. package/include/graphics/math-defs.h +45 -0
  78. package/include/graphics/math-extra.h +61 -0
  79. package/include/graphics/matrix3.h +98 -0
  80. package/include/graphics/matrix4.h +102 -0
  81. package/include/graphics/plane.h +85 -0
  82. package/include/graphics/quat.h +170 -0
  83. package/include/graphics/shader-parser.h +273 -0
  84. package/include/graphics/srgb.h +177 -0
  85. package/include/graphics/vec2.h +148 -0
  86. package/include/graphics/vec3.h +224 -0
  87. package/include/graphics/vec4.h +241 -0
  88. package/include/media-io/audio-io.h +228 -0
  89. package/include/media-io/audio-math.h +43 -0
  90. package/include/media-io/audio-resampler.h +44 -0
  91. package/include/media-io/format-conversion.h +50 -0
  92. package/include/media-io/frame-rate.h +29 -0
  93. package/include/media-io/media-io-defs.h +20 -0
  94. package/include/media-io/media-remux.h +37 -0
  95. package/include/media-io/video-frame.h +64 -0
  96. package/include/media-io/video-io.h +338 -0
  97. package/include/media-io/video-scaler.h +43 -0
  98. package/include/obs-audio-controls.h +250 -0
  99. package/include/obs-av1.h +47 -0
  100. package/include/obs-avc.h +55 -0
  101. package/include/obs-config.h +52 -0
  102. package/include/obs-data.h +311 -0
  103. package/include/obs-defs.h +52 -0
  104. package/include/obs-encoder.h +361 -0
  105. package/include/obs-ffmpeg-compat.h +13 -0
  106. package/include/obs-hevc.h +81 -0
  107. package/include/obs-hotkey.h +271 -0
  108. package/include/obs-hotkeys.h +653 -0
  109. package/include/obs-interaction.h +56 -0
  110. package/include/obs-internal.h +1459 -0
  111. package/include/obs-missing-files.h +53 -0
  112. package/include/obs-module.h +181 -0
  113. package/include/obs-nal.h +37 -0
  114. package/include/obs-nix-platform.h +53 -0
  115. package/include/obs-nix-wayland.h +24 -0
  116. package/include/obs-nix-x11.h +22 -0
  117. package/include/obs-nix.h +42 -0
  118. package/include/obs-output.h +96 -0
  119. package/include/obs-properties.h +364 -0
  120. package/include/obs-scene.h +127 -0
  121. package/include/obs-service.h +115 -0
  122. package/include/obs-source.h +568 -0
  123. package/include/obs.h +2608 -0
  124. package/include/obsconfig.h +13 -0
  125. package/include/obsversion.h +5 -0
  126. package/include/util/apple/cfstring-utils.h +16 -0
  127. package/include/util/array-serializer.h +37 -0
  128. package/include/util/base.h +97 -0
  129. package/include/util/bitstream.h +28 -0
  130. package/include/util/bmem.h +94 -0
  131. package/include/util/buffered-file-serializer.h +32 -0
  132. package/include/util/c99defs.h +75 -0
  133. package/include/util/cf-lexer.h +199 -0
  134. package/include/util/cf-parser.h +281 -0
  135. package/include/util/circlebuf.h +319 -0
  136. package/include/util/config-file.h +103 -0
  137. package/include/util/crc32.h +29 -0
  138. package/include/util/curl/curl-helper.h +35 -0
  139. package/include/util/darray.h +606 -0
  140. package/include/util/deque.h +319 -0
  141. package/include/util/dstr.h +320 -0
  142. package/include/util/file-serializer.h +34 -0
  143. package/include/util/lexer.h +273 -0
  144. package/include/util/pipe.h +52 -0
  145. package/include/util/platform.h +223 -0
  146. package/include/util/profiler.h +97 -0
  147. package/include/util/serializer.h +158 -0
  148. package/include/util/simde/check.h +285 -0
  149. package/include/util/simde/debug-trap.h +117 -0
  150. package/include/util/simde/hedley.h +2123 -0
  151. package/include/util/simde/simde-align.h +481 -0
  152. package/include/util/simde/simde-arch.h +537 -0
  153. package/include/util/simde/simde-common.h +918 -0
  154. package/include/util/simde/simde-constify.h +925 -0
  155. package/include/util/simde/simde-detect-clang.h +114 -0
  156. package/include/util/simde/simde-diagnostic.h +447 -0
  157. package/include/util/simde/simde-features.h +550 -0
  158. package/include/util/simde/simde-math.h +1858 -0
  159. package/include/util/simde/x86/mmx.h +2456 -0
  160. package/include/util/simde/x86/sse.h +4479 -0
  161. package/include/util/simde/x86/sse2.h +7549 -0
  162. package/include/util/source-profiler.h +66 -0
  163. package/include/util/sse-intrin.h +32 -0
  164. package/include/util/task.h +22 -0
  165. package/include/util/text-lookup.h +45 -0
  166. package/include/util/threading-posix.h +77 -0
  167. package/include/util/threading-windows.h +142 -0
  168. package/include/util/threading.h +103 -0
  169. package/include/util/utf8.h +35 -0
  170. package/include/util/uthash.h +34 -0
  171. package/include/util/util_uint128.h +108 -0
  172. package/include/util/util_uint64.h +34 -0
  173. package/include/util/windows/device-enum.h +14 -0
  174. package/include/util/windows/obfuscate.h +16 -0
  175. package/include/util/windows/win-registry.h +37 -0
  176. package/include/util/windows/win-version.h +57 -0
  177. package/include/util/windows/window-helpers.h +47 -0
  178. package/index.d.ts +38 -0
  179. package/index.js +8 -0
  180. package/package.json +31 -0
  181. package/src/main.cpp +321 -0
  182. package/src/obs_interface.cpp +605 -0
  183. package/src/obs_interface.h +74 -0
  184. package/src/utils.cpp +80 -0
  185. package/src/utils.h +3 -0
@@ -0,0 +1,550 @@
1
+ /* SPDX-License-Identifier: MIT
2
+ *
3
+ * Permission is hereby granted, free of charge, to any person
4
+ * obtaining a copy of this software and associated documentation
5
+ * files (the "Software"), to deal in the Software without
6
+ * restriction, including without limitation the rights to use, copy,
7
+ * modify, merge, publish, distribute, sublicense, and/or sell copies
8
+ * of the Software, and to permit persons to whom the Software is
9
+ * furnished to do so, subject to the following conditions:
10
+ *
11
+ * The above copyright notice and this permission notice shall be
12
+ * included in all copies or substantial portions of the Software.
13
+ *
14
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
18
+ * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19
+ * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ * SOFTWARE.
22
+ *
23
+ * Copyright:
24
+ * 2020 Evan Nemerson <evan@nemerson.com>
25
+ */
26
+
27
+ /* simde-arch.h is used to determine which features are available according
28
+ to the compiler. However, we want to make it possible to forcibly enable
29
+ or disable APIs */
30
+
31
+ #if !defined(SIMDE_FEATURES_H)
32
+ #define SIMDE_FEATURES_H
33
+
34
+ #include "simde-arch.h"
35
+ #include "simde-diagnostic.h"
36
+
37
+ #if !defined(SIMDE_X86_SVML_NATIVE) && !defined(SIMDE_X86_SVML_NO_NATIVE) && \
38
+ !defined(SIMDE_NO_NATIVE)
39
+ #if defined(SIMDE_ARCH_X86_SVML)
40
+ #define SIMDE_X86_SVML_NATIVE
41
+ #endif
42
+ #endif
43
+ #if defined(SIMDE_X86_SVML_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE)
44
+ #define SIMDE_X86_AVX512F_NATIVE
45
+ #endif
46
+
47
+ #if !defined(SIMDE_X86_AVX512VP2INTERSECT_NATIVE) && \
48
+ !defined(SIMDE_X86_AVX512VP2INTERSECT_NO_NATIVE) && \
49
+ !defined(SIMDE_NO_NATIVE)
50
+ #if defined(SIMDE_ARCH_X86_AVX512VP2INTERSECT)
51
+ #define SIMDE_X86_AVX512VP2INTERSECT_NATIVE
52
+ #endif
53
+ #endif
54
+ #if defined(SIMDE_X86_AVX512VP2INTERSECT_NATIVE) && \
55
+ !defined(SIMDE_X86_AVX512F_NATIVE)
56
+ #define SIMDE_X86_AVX512F_NATIVE
57
+ #endif
58
+
59
+ #if !defined(SIMDE_X86_AVX512VBMI_NATIVE) && \
60
+ !defined(SIMDE_X86_AVX512VBMI_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
61
+ #if defined(SIMDE_ARCH_X86_AVX512VBMI)
62
+ #define SIMDE_X86_AVX512VBMI_NATIVE
63
+ #endif
64
+ #endif
65
+ #if defined(SIMDE_X86_AVX512VBMI_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE)
66
+ #define SIMDE_X86_AVX512F_NATIVE
67
+ #endif
68
+
69
+ #if !defined(SIMDE_X86_AVX512CD_NATIVE) && \
70
+ !defined(SIMDE_X86_AVX512CD_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
71
+ #if defined(SIMDE_ARCH_X86_AVX512CD)
72
+ #define SIMDE_X86_AVX512CD_NATIVE
73
+ #endif
74
+ #endif
75
+ #if defined(SIMDE_X86_AVX512CD_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE)
76
+ #define SIMDE_X86_AVX512F_NATIVE
77
+ #endif
78
+
79
+ #if !defined(SIMDE_X86_AVX512DQ_NATIVE) && \
80
+ !defined(SIMDE_X86_AVX512DQ_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
81
+ #if defined(SIMDE_ARCH_X86_AVX512DQ)
82
+ #define SIMDE_X86_AVX512DQ_NATIVE
83
+ #endif
84
+ #endif
85
+ #if defined(SIMDE_X86_AVX512DQ_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE)
86
+ #define SIMDE_X86_AVX512F_NATIVE
87
+ #endif
88
+
89
+ #if !defined(SIMDE_X86_AVX512VL_NATIVE) && \
90
+ !defined(SIMDE_X86_AVX512VL_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
91
+ #if defined(SIMDE_ARCH_X86_AVX512VL)
92
+ #define SIMDE_X86_AVX512VL_NATIVE
93
+ #endif
94
+ #endif
95
+ #if defined(SIMDE_X86_AVX512VL_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE)
96
+ #define SIMDE_X86_AVX512F_NATIVE
97
+ #endif
98
+
99
+ #if !defined(SIMDE_X86_AVX512BW_NATIVE) && \
100
+ !defined(SIMDE_X86_AVX512BW_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
101
+ #if defined(SIMDE_ARCH_X86_AVX512BW)
102
+ #define SIMDE_X86_AVX512BW_NATIVE
103
+ #endif
104
+ #endif
105
+ #if defined(SIMDE_X86_AVX512BW_NATIVE) && !defined(SIMDE_X86_AVX512F_NATIVE)
106
+ #define SIMDE_X86_AVX512F_NATIVE
107
+ #endif
108
+
109
+ #if !defined(SIMDE_X86_AVX512F_NATIVE) && \
110
+ !defined(SIMDE_X86_AVX512F_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
111
+ #if defined(SIMDE_ARCH_X86_AVX512F)
112
+ #define SIMDE_X86_AVX512F_NATIVE
113
+ #endif
114
+ #endif
115
+ #if defined(SIMDE_X86_AVX512F_NATIVE) && !defined(SIMDE_X86_AVX2_NATIVE)
116
+ #define SIMDE_X86_AVX2_NATIVE
117
+ #endif
118
+
119
+ #if !defined(SIMDE_X86_FMA_NATIVE) && !defined(SIMDE_X86_FMA_NO_NATIVE) && \
120
+ !defined(SIMDE_NO_NATIVE)
121
+ #if defined(SIMDE_ARCH_X86_FMA)
122
+ #define SIMDE_X86_FMA_NATIVE
123
+ #endif
124
+ #endif
125
+ #if defined(SIMDE_X86_FMA_NATIVE) && !defined(SIMDE_X86_AVX_NATIVE)
126
+ #define SIMDE_X86_AVX_NATIVE
127
+ #endif
128
+
129
+ #if !defined(SIMDE_X86_AVX2_NATIVE) && !defined(SIMDE_X86_AVX2_NO_NATIVE) && \
130
+ !defined(SIMDE_NO_NATIVE)
131
+ #if defined(SIMDE_ARCH_X86_AVX2)
132
+ #define SIMDE_X86_AVX2_NATIVE
133
+ #endif
134
+ #endif
135
+ #if defined(SIMDE_X86_AVX2_NATIVE) && !defined(SIMDE_X86_AVX_NATIVE)
136
+ #define SIMDE_X86_AVX_NATIVE
137
+ #endif
138
+
139
+ #if !defined(SIMDE_X86_AVX_NATIVE) && !defined(SIMDE_X86_AVX_NO_NATIVE) && \
140
+ !defined(SIMDE_NO_NATIVE)
141
+ #if defined(SIMDE_ARCH_X86_AVX)
142
+ #define SIMDE_X86_AVX_NATIVE
143
+ #endif
144
+ #endif
145
+ #if defined(SIMDE_X86_AVX_NATIVE) && !defined(SIMDE_X86_SSE4_1_NATIVE)
146
+ #define SIMDE_X86_SSE4_2_NATIVE
147
+ #endif
148
+
149
+ #if !defined(SIMDE_X86_SSE4_2_NATIVE) && \
150
+ !defined(SIMDE_X86_SSE4_2_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
151
+ #if defined(SIMDE_ARCH_X86_SSE4_2)
152
+ #define SIMDE_X86_SSE4_2_NATIVE
153
+ #endif
154
+ #endif
155
+ #if defined(SIMDE_X86_SSE4_2_NATIVE) && !defined(SIMDE_X86_SSE4_1_NATIVE)
156
+ #define SIMDE_X86_SSE4_1_NATIVE
157
+ #endif
158
+
159
+ #if !defined(SIMDE_X86_SSE4_1_NATIVE) && \
160
+ !defined(SIMDE_X86_SSE4_1_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
161
+ #if defined(SIMDE_ARCH_X86_SSE4_1)
162
+ #define SIMDE_X86_SSE4_1_NATIVE
163
+ #endif
164
+ #endif
165
+ #if defined(SIMDE_X86_SSE4_1_NATIVE) && !defined(SIMDE_X86_SSSE3_NATIVE)
166
+ #define SIMDE_X86_SSSE3_NATIVE
167
+ #endif
168
+
169
+ #if !defined(SIMDE_X86_SSSE3_NATIVE) && !defined(SIMDE_X86_SSSE3_NO_NATIVE) && \
170
+ !defined(SIMDE_NO_NATIVE)
171
+ #if defined(SIMDE_ARCH_X86_SSSE3)
172
+ #define SIMDE_X86_SSSE3_NATIVE
173
+ #endif
174
+ #endif
175
+ #if defined(SIMDE_X86_SSSE3_NATIVE) && !defined(SIMDE_X86_SSE3_NATIVE)
176
+ #define SIMDE_X86_SSE3_NATIVE
177
+ #endif
178
+
179
+ #if !defined(SIMDE_X86_SSE3_NATIVE) && !defined(SIMDE_X86_SSE3_NO_NATIVE) && \
180
+ !defined(SIMDE_NO_NATIVE)
181
+ #if defined(SIMDE_ARCH_X86_SSE3)
182
+ #define SIMDE_X86_SSE3_NATIVE
183
+ #endif
184
+ #endif
185
+ #if defined(SIMDE_X86_SSE3_NATIVE) && !defined(SIMDE_X86_SSE2_NATIVE)
186
+ #define SIMDE_X86_SSE2_NATIVE
187
+ #endif
188
+
189
+ #if !defined(SIMDE_X86_SSE2_NATIVE) && !defined(SIMDE_X86_SSE2_NO_NATIVE) && \
190
+ !defined(SIMDE_NO_NATIVE)
191
+ #if defined(SIMDE_ARCH_X86_SSE2)
192
+ #define SIMDE_X86_SSE2_NATIVE
193
+ #endif
194
+ #endif
195
+ #if defined(SIMDE_X86_SSE2_NATIVE) && !defined(SIMDE_X86_SSE_NATIVE)
196
+ #define SIMDE_X86_SSE_NATIVE
197
+ #endif
198
+
199
+ #if !defined(SIMDE_X86_SSE_NATIVE) && !defined(SIMDE_X86_SSE_NO_NATIVE) && \
200
+ !defined(SIMDE_NO_NATIVE)
201
+ #if defined(SIMDE_ARCH_X86_SSE)
202
+ #define SIMDE_X86_SSE_NATIVE
203
+ #endif
204
+ #endif
205
+
206
+ #if !defined(SIMDE_X86_MMX_NATIVE) && !defined(SIMDE_X86_MMX_NO_NATIVE) && \
207
+ !defined(SIMDE_NO_NATIVE)
208
+ #if defined(SIMDE_ARCH_X86_MMX)
209
+ #define SIMDE_X86_MMX_NATIVE
210
+ #endif
211
+ #endif
212
+
213
+ #if !defined(SIMDE_X86_GFNI_NATIVE) && !defined(SIMDE_X86_GFNI_NO_NATIVE) && \
214
+ !defined(SIMDE_NO_NATIVE)
215
+ #if defined(SIMDE_ARCH_X86_GFNI)
216
+ #define SIMDE_X86_GFNI_NATIVE
217
+ #endif
218
+ #endif
219
+
220
+ #if !defined(SIMDE_X86_PCLMUL_NATIVE) && \
221
+ !defined(SIMDE_X86_PCLMUL_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
222
+ #if defined(SIMDE_ARCH_X86_PCLMUL)
223
+ #define SIMDE_X86_PCLMUL_NATIVE
224
+ #endif
225
+ #endif
226
+
227
+ #if !defined(SIMDE_X86_VPCLMULQDQ_NATIVE) && \
228
+ !defined(SIMDE_X86_VPCLMULQDQ_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
229
+ #if defined(SIMDE_ARCH_X86_VPCLMULQDQ)
230
+ #define SIMDE_X86_VPCLMULQDQ_NATIVE
231
+ #endif
232
+ #endif
233
+
234
+ #if !defined(SIMDE_X86_SVML_NATIVE) && !defined(SIMDE_X86_SVML_NO_NATIVE) && \
235
+ !defined(SIMDE_NO_NATIVE)
236
+ #if defined(__INTEL_COMPILER)
237
+ #define SIMDE_X86_SVML_NATIVE
238
+ #endif
239
+ #endif
240
+
241
+ #if defined(HEDLEY_MSVC_VERSION)
242
+ #pragma warning(push)
243
+ #pragma warning(disable : 4799)
244
+ #endif
245
+
246
+ #if defined(SIMDE_X86_AVX_NATIVE) || defined(SIMDE_X86_GFNI_NATIVE)
247
+ #include <immintrin.h>
248
+ #elif defined(SIMDE_X86_SSE4_2_NATIVE)
249
+ #include <nmmintrin.h>
250
+ #elif defined(SIMDE_X86_SSE4_1_NATIVE)
251
+ #include <smmintrin.h>
252
+ #elif defined(SIMDE_X86_SSSE3_NATIVE)
253
+ #include <tmmintrin.h>
254
+ #elif defined(SIMDE_X86_SSE3_NATIVE)
255
+ #include <pmmintrin.h>
256
+ #elif defined(SIMDE_X86_SSE2_NATIVE)
257
+ #include <emmintrin.h>
258
+ #elif defined(SIMDE_X86_SSE_NATIVE)
259
+ #include <xmmintrin.h>
260
+ #elif defined(SIMDE_X86_MMX_NATIVE)
261
+ #include <mmintrin.h>
262
+ #endif
263
+
264
+ #if defined(HEDLEY_MSVC_VERSION)
265
+ #pragma warning(pop)
266
+ #endif
267
+
268
+ #if !defined(SIMDE_ARM_NEON_A64V8_NATIVE) && \
269
+ !defined(SIMDE_ARM_NEON_A64V8_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
270
+ #if defined(SIMDE_ARCH_ARM_NEON) && defined(SIMDE_ARCH_AARCH64) && \
271
+ SIMDE_ARCH_ARM_CHECK(80)
272
+ #define SIMDE_ARM_NEON_A64V8_NATIVE
273
+ #endif
274
+ #endif
275
+ #if defined(SIMDE_ARM_NEON_A64V8_NATIVE) && \
276
+ !defined(SIMDE_ARM_NEON_A32V8_NATIVE)
277
+ #define SIMDE_ARM_NEON_A32V8_NATIVE
278
+ #endif
279
+
280
+ #if !defined(SIMDE_ARM_NEON_A32V8_NATIVE) && \
281
+ !defined(SIMDE_ARM_NEON_A32V8_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
282
+ #if defined(SIMDE_ARCH_ARM_NEON) && SIMDE_ARCH_ARM_CHECK(80) && \
283
+ (__ARM_NEON_FP & 0x02)
284
+ #define SIMDE_ARM_NEON_A32V8_NATIVE
285
+ #endif
286
+ #endif
287
+ #if defined(SIMDE_ARM_NEON_A32V8_NATIVE) && \
288
+ !defined(SIMDE_ARM_NEON_A32V7_NATIVE)
289
+ #define SIMDE_ARM_NEON_A32V7_NATIVE
290
+ #endif
291
+
292
+ #if !defined(SIMDE_ARM_NEON_A32V7_NATIVE) && \
293
+ !defined(SIMDE_ARM_NEON_A32V7_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
294
+ #if defined(SIMDE_ARCH_ARM_NEON) && SIMDE_ARCH_ARM_CHECK(70)
295
+ #define SIMDE_ARM_NEON_A32V7_NATIVE
296
+ #endif
297
+ #endif
298
+ #if defined(SIMDE_ARM_NEON_A32V7_NATIVE)
299
+ #include <arm_neon.h>
300
+ #endif
301
+
302
+ #if !defined(SIMDE_ARM_SVE_NATIVE) && !defined(SIMDE_ARM_SVE_NO_NATIVE) && \
303
+ !defined(SIMDE_NO_NATIVE)
304
+ #if defined(SIMDE_ARCH_ARM_SVE)
305
+ #define SIMDE_ARM_SVE_NATIVE
306
+ #include <arm_sve.h>
307
+ #endif
308
+ #endif
309
+
310
+ #if !defined(SIMDE_WASM_SIMD128_NATIVE) && \
311
+ !defined(SIMDE_WASM_SIMD128_NO_NATIVE) && !defined(SIMDE_NO_NATIVE)
312
+ #if defined(SIMDE_ARCH_WASM_SIMD128)
313
+ #define SIMDE_WASM_SIMD128_NATIVE
314
+ #endif
315
+ #endif
316
+ #if defined(SIMDE_WASM_SIMD128_NATIVE)
317
+ #if !defined(__wasm_unimplemented_simd128__)
318
+ HEDLEY_DIAGNOSTIC_PUSH
319
+ SIMDE_DIAGNOSTIC_DISABLE_RESERVED_ID_MACRO_
320
+ #define __wasm_unimplemented_simd128__
321
+ HEDLEY_DIAGNOSTIC_POP
322
+ #endif
323
+ #include <wasm_simd128.h>
324
+ #endif
325
+
326
+ #if !defined(SIMDE_POWER_ALTIVEC_P9_NATIVE) && \
327
+ !defined(SIMDE_POWER_ALTIVEC_P9_NO_NATIVE) && \
328
+ !defined(SIMDE_NO_NATIVE)
329
+ #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(900)
330
+ #define SIMDE_POWER_ALTIVEC_P9_NATIVE
331
+ #endif
332
+ #endif
333
+ #if defined(SIMDE_POWER_ALTIVEC_P9_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P8)
334
+ #define SIMDE_POWER_ALTIVEC_P8_NATIVE
335
+ #endif
336
+
337
+ #if !defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && \
338
+ !defined(SIMDE_POWER_ALTIVEC_P8_NO_NATIVE) && \
339
+ !defined(SIMDE_NO_NATIVE)
340
+ #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(800)
341
+ #define SIMDE_POWER_ALTIVEC_P8_NATIVE
342
+ #endif
343
+ #endif
344
+ #if defined(SIMDE_POWER_ALTIVEC_P8_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P7)
345
+ #define SIMDE_POWER_ALTIVEC_P7_NATIVE
346
+ #endif
347
+
348
+ #if !defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) && \
349
+ !defined(SIMDE_POWER_ALTIVEC_P7_NO_NATIVE) && \
350
+ !defined(SIMDE_NO_NATIVE)
351
+ #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(700)
352
+ #define SIMDE_POWER_ALTIVEC_P7_NATIVE
353
+ #endif
354
+ #endif
355
+ #if defined(SIMDE_POWER_ALTIVEC_P7_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P6)
356
+ #define SIMDE_POWER_ALTIVEC_P6_NATIVE
357
+ #endif
358
+
359
+ #if !defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) && \
360
+ !defined(SIMDE_POWER_ALTIVEC_P6_NO_NATIVE) && \
361
+ !defined(SIMDE_NO_NATIVE)
362
+ #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(600)
363
+ #define SIMDE_POWER_ALTIVEC_P6_NATIVE
364
+ #endif
365
+ #endif
366
+ #if defined(SIMDE_POWER_ALTIVEC_P6_NATIVE) && !defined(SIMDE_POWER_ALTIVEC_P5)
367
+ #define SIMDE_POWER_ALTIVEC_P5_NATIVE
368
+ #endif
369
+
370
+ #if !defined(SIMDE_POWER_ALTIVEC_P5_NATIVE) && \
371
+ !defined(SIMDE_POWER_ALTIVEC_P5_NO_NATIVE) && \
372
+ !defined(SIMDE_NO_NATIVE)
373
+ #if SIMDE_ARCH_POWER_ALTIVEC_CHECK(500)
374
+ #define SIMDE_POWER_ALTIVEC_P5_NATIVE
375
+ #endif
376
+ #endif
377
+
378
+ #if defined(SIMDE_POWER_ALTIVEC_P6_NATIVE)
379
+ /* AltiVec conflicts with lots of stuff. The bool keyword conflicts
380
+ * with the bool keyword in C++ and the bool macro in C99+ (defined
381
+ * in stdbool.h). The vector keyword conflicts with std::vector in
382
+ * C++ if you are `using std;`.
383
+ *
384
+ * Luckily AltiVec allows you to use `__vector`/`__bool`/`__pixel`
385
+ * instead, but altivec.h will unconditionally define
386
+ * `vector`/`bool`/`pixel` so we need to work around that.
387
+ *
388
+ * Unfortunately this means that if your code uses AltiVec directly
389
+ * it may break. If this is the case you'll want to define
390
+ * `SIMDE_POWER_ALTIVEC_NO_UNDEF` before including SIMDe. Or, even
391
+ * better, port your code to use the double-underscore versions. */
392
+ #if defined(bool)
393
+ #undef bool
394
+ #endif
395
+
396
+ #include <altivec.h>
397
+
398
+ #if !defined(SIMDE_POWER_ALTIVEC_NO_UNDEF)
399
+ #if defined(vector)
400
+ #undef vector
401
+ #endif
402
+ #if defined(pixel)
403
+ #undef pixel
404
+ #endif
405
+ #if defined(bool)
406
+ #undef bool
407
+ #endif
408
+ #endif /* !defined(SIMDE_POWER_ALTIVEC_NO_UNDEF) */
409
+
410
+ /* Use these intsead of vector/pixel/bool in SIMDe. */
411
+ #define SIMDE_POWER_ALTIVEC_VECTOR(T) __vector T
412
+ #define SIMDE_POWER_ALTIVEC_PIXEL __pixel
413
+ #define SIMDE_POWER_ALTIVEC_BOOL __bool
414
+
415
+ /* Re-define bool if we're using stdbool.h */
416
+ #if !defined(__cplusplus) && defined(__bool_true_false_are_defined) && \
417
+ !defined(SIMDE_POWER_ALTIVEC_NO_UNDEF)
418
+ #define bool _Bool
419
+ #endif
420
+ #endif
421
+
422
+ #if !defined(SIMDE_MIPS_LOONGSON_MMI_NATIVE) && \
423
+ !defined(SIMDE_MIPS_LOONGSON_MMI_NO_NATIVE) && \
424
+ !defined(SIMDE_NO_NATIVE)
425
+ #if defined(SIMDE_ARCH_MIPS_LOONGSON_MMI)
426
+ #define SIMDE_MIPS_LOONGSON_MMI_NATIVE 1
427
+ #endif
428
+ #endif
429
+ #if defined(SIMDE_MIPS_LOONGSON_MMI_NATIVE)
430
+ #include <loongson-mmiintrin.h>
431
+ #endif
432
+
433
+ /* This is used to determine whether or not to fall back on a vector
434
+ * function in an earlier ISA extensions, as well as whether
435
+ * we expected any attempts at vectorization to be fruitful or if we
436
+ * expect to always be running serial code. */
437
+
438
+ #if !defined(SIMDE_NATURAL_VECTOR_SIZE)
439
+ #if defined(SIMDE_X86_AVX512F_NATIVE)
440
+ #define SIMDE_NATURAL_VECTOR_SIZE (512)
441
+ #elif defined(SIMDE_X86_AVX_NATIVE)
442
+ #define SIMDE_NATURAL_VECTOR_SIZE (256)
443
+ #elif defined(SIMDE_X86_SSE_NATIVE) || defined(SIMDE_ARM_NEON_A32V7_NATIVE) || \
444
+ defined(SIMDE_WASM_SIMD128_NATIVE) || \
445
+ defined(SIMDE_POWER_ALTIVEC_P5_NATIVE)
446
+ #define SIMDE_NATURAL_VECTOR_SIZE (128)
447
+ #endif
448
+
449
+ #if !defined(SIMDE_NATURAL_VECTOR_SIZE)
450
+ #define SIMDE_NATURAL_VECTOR_SIZE (0)
451
+ #endif
452
+ #endif
453
+
454
+ #define SIMDE_NATURAL_VECTOR_SIZE_LE(x) \
455
+ ((SIMDE_NATURAL_VECTOR_SIZE > 0) && (SIMDE_NATURAL_VECTOR_SIZE <= (x)))
456
+ #define SIMDE_NATURAL_VECTOR_SIZE_GE(x) \
457
+ ((SIMDE_NATURAL_VECTOR_SIZE > 0) && (SIMDE_NATURAL_VECTOR_SIZE >= (x)))
458
+
459
+ /* Native aliases */
460
+ #if defined(SIMDE_ENABLE_NATIVE_ALIASES)
461
+ #if !defined(SIMDE_X86_MMX_NATIVE)
462
+ #define SIMDE_X86_MMX_ENABLE_NATIVE_ALIASES
463
+ #endif
464
+ #if !defined(SIMDE_X86_SSE_NATIVE)
465
+ #define SIMDE_X86_SSE_ENABLE_NATIVE_ALIASES
466
+ #endif
467
+ #if !defined(SIMDE_X86_SSE2_NATIVE)
468
+ #define SIMDE_X86_SSE2_ENABLE_NATIVE_ALIASES
469
+ #endif
470
+ #if !defined(SIMDE_X86_SSE3_NATIVE)
471
+ #define SIMDE_X86_SSE3_ENABLE_NATIVE_ALIASES
472
+ #endif
473
+ #if !defined(SIMDE_X86_SSSE3_NATIVE)
474
+ #define SIMDE_X86_SSSE3_ENABLE_NATIVE_ALIASES
475
+ #endif
476
+ #if !defined(SIMDE_X86_SSE4_1_NATIVE)
477
+ #define SIMDE_X86_SSE4_1_ENABLE_NATIVE_ALIASES
478
+ #endif
479
+ #if !defined(SIMDE_X86_SSE4_2_NATIVE)
480
+ #define SIMDE_X86_SSE4_2_ENABLE_NATIVE_ALIASES
481
+ #endif
482
+ #if !defined(SIMDE_X86_AVX_NATIVE)
483
+ #define SIMDE_X86_AVX_ENABLE_NATIVE_ALIASES
484
+ #endif
485
+ #if !defined(SIMDE_X86_AVX2_NATIVE)
486
+ #define SIMDE_X86_AVX2_ENABLE_NATIVE_ALIASES
487
+ #endif
488
+ #if !defined(SIMDE_X86_FMA_NATIVE)
489
+ #define SIMDE_X86_FMA_ENABLE_NATIVE_ALIASES
490
+ #endif
491
+ #if !defined(SIMDE_X86_AVX512F_NATIVE)
492
+ #define SIMDE_X86_AVX512F_ENABLE_NATIVE_ALIASES
493
+ #endif
494
+ #if !defined(SIMDE_X86_AVX512VL_NATIVE)
495
+ #define SIMDE_X86_AVX512VL_ENABLE_NATIVE_ALIASES
496
+ #endif
497
+ #if !defined(SIMDE_X86_AVX512BW_NATIVE)
498
+ #define SIMDE_X86_AVX512BW_ENABLE_NATIVE_ALIASES
499
+ #endif
500
+ #if !defined(SIMDE_X86_AVX512DQ_NATIVE)
501
+ #define SIMDE_X86_AVX512DQ_ENABLE_NATIVE_ALIASES
502
+ #endif
503
+ #if !defined(SIMDE_X86_AVX512CD_NATIVE)
504
+ #define SIMDE_X86_AVX512CD_ENABLE_NATIVE_ALIASES
505
+ #endif
506
+ #if !defined(SIMDE_X86_GFNI_NATIVE)
507
+ #define SIMDE_X86_GFNI_ENABLE_NATIVE_ALIASES
508
+ #endif
509
+ #if !defined(SIMDE_X86_PCLMUL_NATIVE)
510
+ #define SIMDE_X86_PCLMUL_ENABLE_NATIVE_ALIASES
511
+ #endif
512
+ #if !defined(SIMDE_X86_VPCLMULQDQ_NATIVE)
513
+ #define SIMDE_X86_VPCLMULQDQ_ENABLE_NATIVE_ALIASES
514
+ #endif
515
+
516
+ #if !defined(SIMDE_ARM_NEON_A32V7_NATIVE)
517
+ #define SIMDE_ARM_NEON_A32V7_ENABLE_NATIVE_ALIASES
518
+ #endif
519
+ #if !defined(SIMDE_ARM_NEON_A32V8_NATIVE)
520
+ #define SIMDE_ARM_NEON_A32V8_ENABLE_NATIVE_ALIASES
521
+ #endif
522
+ #if !defined(SIMDE_ARM_NEON_A64V8_NATIVE)
523
+ #define SIMDE_ARM_NEON_A64V8_ENABLE_NATIVE_ALIASES
524
+ #endif
525
+ #endif
526
+
527
+ /* Are floating point values stored using IEEE 754? Knowing
528
+ * this at during preprocessing is a bit tricky, mostly because what
529
+ * we're curious about is how values are stored and not whether the
530
+ * implementation is fully conformant in terms of rounding, NaN
531
+ * handling, etc.
532
+ *
533
+ * For example, if you use -ffast-math or -Ofast on
534
+ * GCC or clang IEEE 754 isn't strictly followed, therefore IEE 754
535
+ * support is not advertised (by defining __STDC_IEC_559__).
536
+ *
537
+ * However, what we care about is whether it is safe to assume that
538
+ * floating point values are stored in IEEE 754 format, in which case
539
+ * we can provide faster implementations of some functions.
540
+ *
541
+ * Luckily every vaugely modern architecture I'm aware of uses IEEE 754-
542
+ * so we just assume IEEE 754 for now. There is a test which verifies
543
+ * this, if that test fails sowewhere please let us know and we'll add
544
+ * an exception for that platform. Meanwhile, you can define
545
+ * SIMDE_NO_IEEE754_STORAGE. */
546
+ #if !defined(SIMDE_IEEE754_STORAGE) && !defined(SIMDE_NO_IEE754_STORAGE)
547
+ #define SIMDE_IEEE754_STORAGE
548
+ #endif
549
+
550
+ #endif /* !defined(SIMDE_FEATURES_H) */