blob: 848740d4ce8d7962472998d9ec37b5010bc42899 [file] [log] [blame]
Jason Sams29087fa2014-01-09 17:06:17 -08001/*
2 * Copyright (C) 2014 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef __rs_core_math_rsh__
18#define __rs_core_math_rsh__
19#if (defined(RS_VERSION) && (RS_VERSION >= 9))
20/*
21 * Component wise conversion from float2 to float2
22 *
23 * Supported by API versions 9 and newer.
24 */
25extern float2 __attribute__((const, overloadable))convert_float2(float2);
26#endif
27
28#if (defined(RS_VERSION) && (RS_VERSION >= 9))
29/*
30 * Component wise conversion from float3 to float3
31 *
32 * Supported by API versions 9 and newer.
33 */
34extern float3 __attribute__((const, overloadable))convert_float3(float3);
35#endif
36
37#if (defined(RS_VERSION) && (RS_VERSION >= 9))
38/*
39 * Component wise conversion from float4 to float4
40 *
41 * Supported by API versions 9 and newer.
42 */
43extern float4 __attribute__((const, overloadable))convert_float4(float4);
44#endif
45
46#if (defined(RS_VERSION) && (RS_VERSION >= 9))
47/*
48 * Component wise conversion from double2 to float2
49 *
50 * Supported by API versions 9 and newer.
51 */
52extern float2 __attribute__((const, overloadable))convert_float2(double2);
53#endif
54
55#if (defined(RS_VERSION) && (RS_VERSION >= 9))
56/*
57 * Component wise conversion from double3 to float3
58 *
59 * Supported by API versions 9 and newer.
60 */
61extern float3 __attribute__((const, overloadable))convert_float3(double3);
62#endif
63
64#if (defined(RS_VERSION) && (RS_VERSION >= 9))
65/*
66 * Component wise conversion from double4 to float4
67 *
68 * Supported by API versions 9 and newer.
69 */
70extern float4 __attribute__((const, overloadable))convert_float4(double4);
71#endif
72
73#if (defined(RS_VERSION) && (RS_VERSION >= 9))
74/*
75 * Component wise conversion from char2 to float2
76 *
77 * Supported by API versions 9 and newer.
78 */
79extern float2 __attribute__((const, overloadable))convert_float2(char2);
80#endif
81
82#if (defined(RS_VERSION) && (RS_VERSION >= 9))
83/*
84 * Component wise conversion from char3 to float3
85 *
86 * Supported by API versions 9 and newer.
87 */
88extern float3 __attribute__((const, overloadable))convert_float3(char3);
89#endif
90
91#if (defined(RS_VERSION) && (RS_VERSION >= 9))
92/*
93 * Component wise conversion from char4 to float4
94 *
95 * Supported by API versions 9 and newer.
96 */
97extern float4 __attribute__((const, overloadable))convert_float4(char4);
98#endif
99
100#if (defined(RS_VERSION) && (RS_VERSION >= 9))
101/*
102 * Component wise conversion from uchar2 to float2
103 *
104 * Supported by API versions 9 and newer.
105 */
106extern float2 __attribute__((const, overloadable))convert_float2(uchar2);
107#endif
108
109#if (defined(RS_VERSION) && (RS_VERSION >= 9))
110/*
111 * Component wise conversion from uchar3 to float3
112 *
113 * Supported by API versions 9 and newer.
114 */
115extern float3 __attribute__((const, overloadable))convert_float3(uchar3);
116#endif
117
118#if (defined(RS_VERSION) && (RS_VERSION >= 9))
119/*
120 * Component wise conversion from uchar4 to float4
121 *
122 * Supported by API versions 9 and newer.
123 */
124extern float4 __attribute__((const, overloadable))convert_float4(uchar4);
125#endif
126
127#if (defined(RS_VERSION) && (RS_VERSION >= 9))
128/*
129 * Component wise conversion from short2 to float2
130 *
131 * Supported by API versions 9 and newer.
132 */
133extern float2 __attribute__((const, overloadable))convert_float2(short2);
134#endif
135
136#if (defined(RS_VERSION) && (RS_VERSION >= 9))
137/*
138 * Component wise conversion from short3 to float3
139 *
140 * Supported by API versions 9 and newer.
141 */
142extern float3 __attribute__((const, overloadable))convert_float3(short3);
143#endif
144
145#if (defined(RS_VERSION) && (RS_VERSION >= 9))
146/*
147 * Component wise conversion from short4 to float4
148 *
149 * Supported by API versions 9 and newer.
150 */
151extern float4 __attribute__((const, overloadable))convert_float4(short4);
152#endif
153
154#if (defined(RS_VERSION) && (RS_VERSION >= 9))
155/*
156 * Component wise conversion from ushort2 to float2
157 *
158 * Supported by API versions 9 and newer.
159 */
160extern float2 __attribute__((const, overloadable))convert_float2(ushort2);
161#endif
162
163#if (defined(RS_VERSION) && (RS_VERSION >= 9))
164/*
165 * Component wise conversion from ushort3 to float3
166 *
167 * Supported by API versions 9 and newer.
168 */
169extern float3 __attribute__((const, overloadable))convert_float3(ushort3);
170#endif
171
172#if (defined(RS_VERSION) && (RS_VERSION >= 9))
173/*
174 * Component wise conversion from ushort4 to float4
175 *
176 * Supported by API versions 9 and newer.
177 */
178extern float4 __attribute__((const, overloadable))convert_float4(ushort4);
179#endif
180
181#if (defined(RS_VERSION) && (RS_VERSION >= 9))
182/*
183 * Component wise conversion from int2 to float2
184 *
185 * Supported by API versions 9 and newer.
186 */
187extern float2 __attribute__((const, overloadable))convert_float2(int2);
188#endif
189
190#if (defined(RS_VERSION) && (RS_VERSION >= 9))
191/*
192 * Component wise conversion from int3 to float3
193 *
194 * Supported by API versions 9 and newer.
195 */
196extern float3 __attribute__((const, overloadable))convert_float3(int3);
197#endif
198
199#if (defined(RS_VERSION) && (RS_VERSION >= 9))
200/*
201 * Component wise conversion from int4 to float4
202 *
203 * Supported by API versions 9 and newer.
204 */
205extern float4 __attribute__((const, overloadable))convert_float4(int4);
206#endif
207
208#if (defined(RS_VERSION) && (RS_VERSION >= 9))
209/*
210 * Component wise conversion from uint2 to float2
211 *
212 * Supported by API versions 9 and newer.
213 */
214extern float2 __attribute__((const, overloadable))convert_float2(uint2);
215#endif
216
217#if (defined(RS_VERSION) && (RS_VERSION >= 9))
218/*
219 * Component wise conversion from uint3 to float3
220 *
221 * Supported by API versions 9 and newer.
222 */
223extern float3 __attribute__((const, overloadable))convert_float3(uint3);
224#endif
225
226#if (defined(RS_VERSION) && (RS_VERSION >= 9))
227/*
228 * Component wise conversion from uint4 to float4
229 *
230 * Supported by API versions 9 and newer.
231 */
232extern float4 __attribute__((const, overloadable))convert_float4(uint4);
233#endif
234
235#if (defined(RS_VERSION) && (RS_VERSION >= 9))
236/*
237 * Component wise conversion from long2 to float2
238 *
239 * Supported by API versions 9 and newer.
240 */
241extern float2 __attribute__((const, overloadable))convert_float2(long2);
242#endif
243
244#if (defined(RS_VERSION) && (RS_VERSION >= 9))
245/*
246 * Component wise conversion from long3 to float3
247 *
248 * Supported by API versions 9 and newer.
249 */
250extern float3 __attribute__((const, overloadable))convert_float3(long3);
251#endif
252
253#if (defined(RS_VERSION) && (RS_VERSION >= 9))
254/*
255 * Component wise conversion from long4 to float4
256 *
257 * Supported by API versions 9 and newer.
258 */
259extern float4 __attribute__((const, overloadable))convert_float4(long4);
260#endif
261
262#if (defined(RS_VERSION) && (RS_VERSION >= 9))
263/*
264 * Component wise conversion from ulong2 to float2
265 *
266 * Supported by API versions 9 and newer.
267 */
268extern float2 __attribute__((const, overloadable))convert_float2(ulong2);
269#endif
270
271#if (defined(RS_VERSION) && (RS_VERSION >= 9))
272/*
273 * Component wise conversion from ulong3 to float3
274 *
275 * Supported by API versions 9 and newer.
276 */
277extern float3 __attribute__((const, overloadable))convert_float3(ulong3);
278#endif
279
280#if (defined(RS_VERSION) && (RS_VERSION >= 9))
281/*
282 * Component wise conversion from ulong4 to float4
283 *
284 * Supported by API versions 9 and newer.
285 */
286extern float4 __attribute__((const, overloadable))convert_float4(ulong4);
287#endif
288
289#if (defined(RS_VERSION) && (RS_VERSION >= 9))
290/*
291 * Component wise conversion from float2 to double2
292 *
293 * Supported by API versions 9 and newer.
294 */
295extern double2 __attribute__((const, overloadable))convert_double2(float2);
296#endif
297
298#if (defined(RS_VERSION) && (RS_VERSION >= 9))
299/*
300 * Component wise conversion from float3 to double3
301 *
302 * Supported by API versions 9 and newer.
303 */
304extern double3 __attribute__((const, overloadable))convert_double3(float3);
305#endif
306
307#if (defined(RS_VERSION) && (RS_VERSION >= 9))
308/*
309 * Component wise conversion from float4 to double4
310 *
311 * Supported by API versions 9 and newer.
312 */
313extern double4 __attribute__((const, overloadable))convert_double4(float4);
314#endif
315
316#if (defined(RS_VERSION) && (RS_VERSION >= 9))
317/*
318 * Component wise conversion from double2 to double2
319 *
320 * Supported by API versions 9 and newer.
321 */
322extern double2 __attribute__((const, overloadable))convert_double2(double2);
323#endif
324
325#if (defined(RS_VERSION) && (RS_VERSION >= 9))
326/*
327 * Component wise conversion from double3 to double3
328 *
329 * Supported by API versions 9 and newer.
330 */
331extern double3 __attribute__((const, overloadable))convert_double3(double3);
332#endif
333
334#if (defined(RS_VERSION) && (RS_VERSION >= 9))
335/*
336 * Component wise conversion from double4 to double4
337 *
338 * Supported by API versions 9 and newer.
339 */
340extern double4 __attribute__((const, overloadable))convert_double4(double4);
341#endif
342
343#if (defined(RS_VERSION) && (RS_VERSION >= 9))
344/*
345 * Component wise conversion from char2 to double2
346 *
347 * Supported by API versions 9 and newer.
348 */
349extern double2 __attribute__((const, overloadable))convert_double2(char2);
350#endif
351
352#if (defined(RS_VERSION) && (RS_VERSION >= 9))
353/*
354 * Component wise conversion from char3 to double3
355 *
356 * Supported by API versions 9 and newer.
357 */
358extern double3 __attribute__((const, overloadable))convert_double3(char3);
359#endif
360
361#if (defined(RS_VERSION) && (RS_VERSION >= 9))
362/*
363 * Component wise conversion from char4 to double4
364 *
365 * Supported by API versions 9 and newer.
366 */
367extern double4 __attribute__((const, overloadable))convert_double4(char4);
368#endif
369
370#if (defined(RS_VERSION) && (RS_VERSION >= 9))
371/*
372 * Component wise conversion from uchar2 to double2
373 *
374 * Supported by API versions 9 and newer.
375 */
376extern double2 __attribute__((const, overloadable))convert_double2(uchar2);
377#endif
378
379#if (defined(RS_VERSION) && (RS_VERSION >= 9))
380/*
381 * Component wise conversion from uchar3 to double3
382 *
383 * Supported by API versions 9 and newer.
384 */
385extern double3 __attribute__((const, overloadable))convert_double3(uchar3);
386#endif
387
388#if (defined(RS_VERSION) && (RS_VERSION >= 9))
389/*
390 * Component wise conversion from uchar4 to double4
391 *
392 * Supported by API versions 9 and newer.
393 */
394extern double4 __attribute__((const, overloadable))convert_double4(uchar4);
395#endif
396
397#if (defined(RS_VERSION) && (RS_VERSION >= 9))
398/*
399 * Component wise conversion from short2 to double2
400 *
401 * Supported by API versions 9 and newer.
402 */
403extern double2 __attribute__((const, overloadable))convert_double2(short2);
404#endif
405
406#if (defined(RS_VERSION) && (RS_VERSION >= 9))
407/*
408 * Component wise conversion from short3 to double3
409 *
410 * Supported by API versions 9 and newer.
411 */
412extern double3 __attribute__((const, overloadable))convert_double3(short3);
413#endif
414
415#if (defined(RS_VERSION) && (RS_VERSION >= 9))
416/*
417 * Component wise conversion from short4 to double4
418 *
419 * Supported by API versions 9 and newer.
420 */
421extern double4 __attribute__((const, overloadable))convert_double4(short4);
422#endif
423
424#if (defined(RS_VERSION) && (RS_VERSION >= 9))
425/*
426 * Component wise conversion from ushort2 to double2
427 *
428 * Supported by API versions 9 and newer.
429 */
430extern double2 __attribute__((const, overloadable))convert_double2(ushort2);
431#endif
432
433#if (defined(RS_VERSION) && (RS_VERSION >= 9))
434/*
435 * Component wise conversion from ushort3 to double3
436 *
437 * Supported by API versions 9 and newer.
438 */
439extern double3 __attribute__((const, overloadable))convert_double3(ushort3);
440#endif
441
442#if (defined(RS_VERSION) && (RS_VERSION >= 9))
443/*
444 * Component wise conversion from ushort4 to double4
445 *
446 * Supported by API versions 9 and newer.
447 */
448extern double4 __attribute__((const, overloadable))convert_double4(ushort4);
449#endif
450
451#if (defined(RS_VERSION) && (RS_VERSION >= 9))
452/*
453 * Component wise conversion from int2 to double2
454 *
455 * Supported by API versions 9 and newer.
456 */
457extern double2 __attribute__((const, overloadable))convert_double2(int2);
458#endif
459
460#if (defined(RS_VERSION) && (RS_VERSION >= 9))
461/*
462 * Component wise conversion from int3 to double3
463 *
464 * Supported by API versions 9 and newer.
465 */
466extern double3 __attribute__((const, overloadable))convert_double3(int3);
467#endif
468
469#if (defined(RS_VERSION) && (RS_VERSION >= 9))
470/*
471 * Component wise conversion from int4 to double4
472 *
473 * Supported by API versions 9 and newer.
474 */
475extern double4 __attribute__((const, overloadable))convert_double4(int4);
476#endif
477
478#if (defined(RS_VERSION) && (RS_VERSION >= 9))
479/*
480 * Component wise conversion from uint2 to double2
481 *
482 * Supported by API versions 9 and newer.
483 */
484extern double2 __attribute__((const, overloadable))convert_double2(uint2);
485#endif
486
487#if (defined(RS_VERSION) && (RS_VERSION >= 9))
488/*
489 * Component wise conversion from uint3 to double3
490 *
491 * Supported by API versions 9 and newer.
492 */
493extern double3 __attribute__((const, overloadable))convert_double3(uint3);
494#endif
495
496#if (defined(RS_VERSION) && (RS_VERSION >= 9))
497/*
498 * Component wise conversion from uint4 to double4
499 *
500 * Supported by API versions 9 and newer.
501 */
502extern double4 __attribute__((const, overloadable))convert_double4(uint4);
503#endif
504
505#if (defined(RS_VERSION) && (RS_VERSION >= 9))
506/*
507 * Component wise conversion from long2 to double2
508 *
509 * Supported by API versions 9 and newer.
510 */
511extern double2 __attribute__((const, overloadable))convert_double2(long2);
512#endif
513
514#if (defined(RS_VERSION) && (RS_VERSION >= 9))
515/*
516 * Component wise conversion from long3 to double3
517 *
518 * Supported by API versions 9 and newer.
519 */
520extern double3 __attribute__((const, overloadable))convert_double3(long3);
521#endif
522
523#if (defined(RS_VERSION) && (RS_VERSION >= 9))
524/*
525 * Component wise conversion from long4 to double4
526 *
527 * Supported by API versions 9 and newer.
528 */
529extern double4 __attribute__((const, overloadable))convert_double4(long4);
530#endif
531
532#if (defined(RS_VERSION) && (RS_VERSION >= 9))
533/*
534 * Component wise conversion from ulong2 to double2
535 *
536 * Supported by API versions 9 and newer.
537 */
538extern double2 __attribute__((const, overloadable))convert_double2(ulong2);
539#endif
540
541#if (defined(RS_VERSION) && (RS_VERSION >= 9))
542/*
543 * Component wise conversion from ulong3 to double3
544 *
545 * Supported by API versions 9 and newer.
546 */
547extern double3 __attribute__((const, overloadable))convert_double3(ulong3);
548#endif
549
550#if (defined(RS_VERSION) && (RS_VERSION >= 9))
551/*
552 * Component wise conversion from ulong4 to double4
553 *
554 * Supported by API versions 9 and newer.
555 */
556extern double4 __attribute__((const, overloadable))convert_double4(ulong4);
557#endif
558
559#if (defined(RS_VERSION) && (RS_VERSION >= 9))
560/*
561 * Component wise conversion from float2 to char2
562 *
563 * Supported by API versions 9 and newer.
564 */
565extern char2 __attribute__((const, overloadable))convert_char2(float2);
566#endif
567
568#if (defined(RS_VERSION) && (RS_VERSION >= 9))
569/*
570 * Component wise conversion from float3 to char3
571 *
572 * Supported by API versions 9 and newer.
573 */
574extern char3 __attribute__((const, overloadable))convert_char3(float3);
575#endif
576
577#if (defined(RS_VERSION) && (RS_VERSION >= 9))
578/*
579 * Component wise conversion from float4 to char4
580 *
581 * Supported by API versions 9 and newer.
582 */
583extern char4 __attribute__((const, overloadable))convert_char4(float4);
584#endif
585
586#if (defined(RS_VERSION) && (RS_VERSION >= 9))
587/*
588 * Component wise conversion from double2 to char2
589 *
590 * Supported by API versions 9 and newer.
591 */
592extern char2 __attribute__((const, overloadable))convert_char2(double2);
593#endif
594
595#if (defined(RS_VERSION) && (RS_VERSION >= 9))
596/*
597 * Component wise conversion from double3 to char3
598 *
599 * Supported by API versions 9 and newer.
600 */
601extern char3 __attribute__((const, overloadable))convert_char3(double3);
602#endif
603
604#if (defined(RS_VERSION) && (RS_VERSION >= 9))
605/*
606 * Component wise conversion from double4 to char4
607 *
608 * Supported by API versions 9 and newer.
609 */
610extern char4 __attribute__((const, overloadable))convert_char4(double4);
611#endif
612
613#if (defined(RS_VERSION) && (RS_VERSION >= 9))
614/*
615 * Component wise conversion from char2 to char2
616 *
617 * Supported by API versions 9 and newer.
618 */
619extern char2 __attribute__((const, overloadable))convert_char2(char2);
620#endif
621
622#if (defined(RS_VERSION) && (RS_VERSION >= 9))
623/*
624 * Component wise conversion from char3 to char3
625 *
626 * Supported by API versions 9 and newer.
627 */
628extern char3 __attribute__((const, overloadable))convert_char3(char3);
629#endif
630
631#if (defined(RS_VERSION) && (RS_VERSION >= 9))
632/*
633 * Component wise conversion from char4 to char4
634 *
635 * Supported by API versions 9 and newer.
636 */
637extern char4 __attribute__((const, overloadable))convert_char4(char4);
638#endif
639
640#if (defined(RS_VERSION) && (RS_VERSION >= 9))
641/*
642 * Component wise conversion from uchar2 to char2
643 *
644 * Supported by API versions 9 and newer.
645 */
646extern char2 __attribute__((const, overloadable))convert_char2(uchar2);
647#endif
648
649#if (defined(RS_VERSION) && (RS_VERSION >= 9))
650/*
651 * Component wise conversion from uchar3 to char3
652 *
653 * Supported by API versions 9 and newer.
654 */
655extern char3 __attribute__((const, overloadable))convert_char3(uchar3);
656#endif
657
658#if (defined(RS_VERSION) && (RS_VERSION >= 9))
659/*
660 * Component wise conversion from uchar4 to char4
661 *
662 * Supported by API versions 9 and newer.
663 */
664extern char4 __attribute__((const, overloadable))convert_char4(uchar4);
665#endif
666
667#if (defined(RS_VERSION) && (RS_VERSION >= 9))
668/*
669 * Component wise conversion from short2 to char2
670 *
671 * Supported by API versions 9 and newer.
672 */
673extern char2 __attribute__((const, overloadable))convert_char2(short2);
674#endif
675
676#if (defined(RS_VERSION) && (RS_VERSION >= 9))
677/*
678 * Component wise conversion from short3 to char3
679 *
680 * Supported by API versions 9 and newer.
681 */
682extern char3 __attribute__((const, overloadable))convert_char3(short3);
683#endif
684
685#if (defined(RS_VERSION) && (RS_VERSION >= 9))
686/*
687 * Component wise conversion from short4 to char4
688 *
689 * Supported by API versions 9 and newer.
690 */
691extern char4 __attribute__((const, overloadable))convert_char4(short4);
692#endif
693
694#if (defined(RS_VERSION) && (RS_VERSION >= 9))
695/*
696 * Component wise conversion from ushort2 to char2
697 *
698 * Supported by API versions 9 and newer.
699 */
700extern char2 __attribute__((const, overloadable))convert_char2(ushort2);
701#endif
702
703#if (defined(RS_VERSION) && (RS_VERSION >= 9))
704/*
705 * Component wise conversion from ushort3 to char3
706 *
707 * Supported by API versions 9 and newer.
708 */
709extern char3 __attribute__((const, overloadable))convert_char3(ushort3);
710#endif
711
712#if (defined(RS_VERSION) && (RS_VERSION >= 9))
713/*
714 * Component wise conversion from ushort4 to char4
715 *
716 * Supported by API versions 9 and newer.
717 */
718extern char4 __attribute__((const, overloadable))convert_char4(ushort4);
719#endif
720
721#if (defined(RS_VERSION) && (RS_VERSION >= 9))
722/*
723 * Component wise conversion from int2 to char2
724 *
725 * Supported by API versions 9 and newer.
726 */
727extern char2 __attribute__((const, overloadable))convert_char2(int2);
728#endif
729
730#if (defined(RS_VERSION) && (RS_VERSION >= 9))
731/*
732 * Component wise conversion from int3 to char3
733 *
734 * Supported by API versions 9 and newer.
735 */
736extern char3 __attribute__((const, overloadable))convert_char3(int3);
737#endif
738
739#if (defined(RS_VERSION) && (RS_VERSION >= 9))
740/*
741 * Component wise conversion from int4 to char4
742 *
743 * Supported by API versions 9 and newer.
744 */
745extern char4 __attribute__((const, overloadable))convert_char4(int4);
746#endif
747
748#if (defined(RS_VERSION) && (RS_VERSION >= 9))
749/*
750 * Component wise conversion from uint2 to char2
751 *
752 * Supported by API versions 9 and newer.
753 */
754extern char2 __attribute__((const, overloadable))convert_char2(uint2);
755#endif
756
757#if (defined(RS_VERSION) && (RS_VERSION >= 9))
758/*
759 * Component wise conversion from uint3 to char3
760 *
761 * Supported by API versions 9 and newer.
762 */
763extern char3 __attribute__((const, overloadable))convert_char3(uint3);
764#endif
765
766#if (defined(RS_VERSION) && (RS_VERSION >= 9))
767/*
768 * Component wise conversion from uint4 to char4
769 *
770 * Supported by API versions 9 and newer.
771 */
772extern char4 __attribute__((const, overloadable))convert_char4(uint4);
773#endif
774
775#if (defined(RS_VERSION) && (RS_VERSION >= 9))
776/*
777 * Component wise conversion from long2 to char2
778 *
779 * Supported by API versions 9 and newer.
780 */
781extern char2 __attribute__((const, overloadable))convert_char2(long2);
782#endif
783
784#if (defined(RS_VERSION) && (RS_VERSION >= 9))
785/*
786 * Component wise conversion from long3 to char3
787 *
788 * Supported by API versions 9 and newer.
789 */
790extern char3 __attribute__((const, overloadable))convert_char3(long3);
791#endif
792
793#if (defined(RS_VERSION) && (RS_VERSION >= 9))
794/*
795 * Component wise conversion from long4 to char4
796 *
797 * Supported by API versions 9 and newer.
798 */
799extern char4 __attribute__((const, overloadable))convert_char4(long4);
800#endif
801
802#if (defined(RS_VERSION) && (RS_VERSION >= 9))
803/*
804 * Component wise conversion from ulong2 to char2
805 *
806 * Supported by API versions 9 and newer.
807 */
808extern char2 __attribute__((const, overloadable))convert_char2(ulong2);
809#endif
810
811#if (defined(RS_VERSION) && (RS_VERSION >= 9))
812/*
813 * Component wise conversion from ulong3 to char3
814 *
815 * Supported by API versions 9 and newer.
816 */
817extern char3 __attribute__((const, overloadable))convert_char3(ulong3);
818#endif
819
820#if (defined(RS_VERSION) && (RS_VERSION >= 9))
821/*
822 * Component wise conversion from ulong4 to char4
823 *
824 * Supported by API versions 9 and newer.
825 */
826extern char4 __attribute__((const, overloadable))convert_char4(ulong4);
827#endif
828
829#if (defined(RS_VERSION) && (RS_VERSION >= 9))
830/*
831 * Component wise conversion from float2 to uchar2
832 *
833 * Supported by API versions 9 and newer.
834 */
835extern uchar2 __attribute__((const, overloadable))convert_uchar2(float2);
836#endif
837
838#if (defined(RS_VERSION) && (RS_VERSION >= 9))
839/*
840 * Component wise conversion from float3 to uchar3
841 *
842 * Supported by API versions 9 and newer.
843 */
844extern uchar3 __attribute__((const, overloadable))convert_uchar3(float3);
845#endif
846
847#if (defined(RS_VERSION) && (RS_VERSION >= 9))
848/*
849 * Component wise conversion from float4 to uchar4
850 *
851 * Supported by API versions 9 and newer.
852 */
853extern uchar4 __attribute__((const, overloadable))convert_uchar4(float4);
854#endif
855
856#if (defined(RS_VERSION) && (RS_VERSION >= 9))
857/*
858 * Component wise conversion from double2 to uchar2
859 *
860 * Supported by API versions 9 and newer.
861 */
862extern uchar2 __attribute__((const, overloadable))convert_uchar2(double2);
863#endif
864
865#if (defined(RS_VERSION) && (RS_VERSION >= 9))
866/*
867 * Component wise conversion from double3 to uchar3
868 *
869 * Supported by API versions 9 and newer.
870 */
871extern uchar3 __attribute__((const, overloadable))convert_uchar3(double3);
872#endif
873
874#if (defined(RS_VERSION) && (RS_VERSION >= 9))
875/*
876 * Component wise conversion from double4 to uchar4
877 *
878 * Supported by API versions 9 and newer.
879 */
880extern uchar4 __attribute__((const, overloadable))convert_uchar4(double4);
881#endif
882
883#if (defined(RS_VERSION) && (RS_VERSION >= 9))
884/*
885 * Component wise conversion from char2 to uchar2
886 *
887 * Supported by API versions 9 and newer.
888 */
889extern uchar2 __attribute__((const, overloadable))convert_uchar2(char2);
890#endif
891
892#if (defined(RS_VERSION) && (RS_VERSION >= 9))
893/*
894 * Component wise conversion from char3 to uchar3
895 *
896 * Supported by API versions 9 and newer.
897 */
898extern uchar3 __attribute__((const, overloadable))convert_uchar3(char3);
899#endif
900
901#if (defined(RS_VERSION) && (RS_VERSION >= 9))
902/*
903 * Component wise conversion from char4 to uchar4
904 *
905 * Supported by API versions 9 and newer.
906 */
907extern uchar4 __attribute__((const, overloadable))convert_uchar4(char4);
908#endif
909
910#if (defined(RS_VERSION) && (RS_VERSION >= 9))
911/*
912 * Component wise conversion from uchar2 to uchar2
913 *
914 * Supported by API versions 9 and newer.
915 */
916extern uchar2 __attribute__((const, overloadable))convert_uchar2(uchar2);
917#endif
918
919#if (defined(RS_VERSION) && (RS_VERSION >= 9))
920/*
921 * Component wise conversion from uchar3 to uchar3
922 *
923 * Supported by API versions 9 and newer.
924 */
925extern uchar3 __attribute__((const, overloadable))convert_uchar3(uchar3);
926#endif
927
928#if (defined(RS_VERSION) && (RS_VERSION >= 9))
929/*
930 * Component wise conversion from uchar4 to uchar4
931 *
932 * Supported by API versions 9 and newer.
933 */
934extern uchar4 __attribute__((const, overloadable))convert_uchar4(uchar4);
935#endif
936
937#if (defined(RS_VERSION) && (RS_VERSION >= 9))
938/*
939 * Component wise conversion from short2 to uchar2
940 *
941 * Supported by API versions 9 and newer.
942 */
943extern uchar2 __attribute__((const, overloadable))convert_uchar2(short2);
944#endif
945
946#if (defined(RS_VERSION) && (RS_VERSION >= 9))
947/*
948 * Component wise conversion from short3 to uchar3
949 *
950 * Supported by API versions 9 and newer.
951 */
952extern uchar3 __attribute__((const, overloadable))convert_uchar3(short3);
953#endif
954
955#if (defined(RS_VERSION) && (RS_VERSION >= 9))
956/*
957 * Component wise conversion from short4 to uchar4
958 *
959 * Supported by API versions 9 and newer.
960 */
961extern uchar4 __attribute__((const, overloadable))convert_uchar4(short4);
962#endif
963
964#if (defined(RS_VERSION) && (RS_VERSION >= 9))
965/*
966 * Component wise conversion from ushort2 to uchar2
967 *
968 * Supported by API versions 9 and newer.
969 */
970extern uchar2 __attribute__((const, overloadable))convert_uchar2(ushort2);
971#endif
972
973#if (defined(RS_VERSION) && (RS_VERSION >= 9))
974/*
975 * Component wise conversion from ushort3 to uchar3
976 *
977 * Supported by API versions 9 and newer.
978 */
979extern uchar3 __attribute__((const, overloadable))convert_uchar3(ushort3);
980#endif
981
982#if (defined(RS_VERSION) && (RS_VERSION >= 9))
983/*
984 * Component wise conversion from ushort4 to uchar4
985 *
986 * Supported by API versions 9 and newer.
987 */
988extern uchar4 __attribute__((const, overloadable))convert_uchar4(ushort4);
989#endif
990
991#if (defined(RS_VERSION) && (RS_VERSION >= 9))
992/*
993 * Component wise conversion from int2 to uchar2
994 *
995 * Supported by API versions 9 and newer.
996 */
997extern uchar2 __attribute__((const, overloadable))convert_uchar2(int2);
998#endif
999
1000#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1001/*
1002 * Component wise conversion from int3 to uchar3
1003 *
1004 * Supported by API versions 9 and newer.
1005 */
1006extern uchar3 __attribute__((const, overloadable))convert_uchar3(int3);
1007#endif
1008
1009#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1010/*
1011 * Component wise conversion from int4 to uchar4
1012 *
1013 * Supported by API versions 9 and newer.
1014 */
1015extern uchar4 __attribute__((const, overloadable))convert_uchar4(int4);
1016#endif
1017
1018#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1019/*
1020 * Component wise conversion from uint2 to uchar2
1021 *
1022 * Supported by API versions 9 and newer.
1023 */
1024extern uchar2 __attribute__((const, overloadable))convert_uchar2(uint2);
1025#endif
1026
1027#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1028/*
1029 * Component wise conversion from uint3 to uchar3
1030 *
1031 * Supported by API versions 9 and newer.
1032 */
1033extern uchar3 __attribute__((const, overloadable))convert_uchar3(uint3);
1034#endif
1035
1036#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1037/*
1038 * Component wise conversion from uint4 to uchar4
1039 *
1040 * Supported by API versions 9 and newer.
1041 */
1042extern uchar4 __attribute__((const, overloadable))convert_uchar4(uint4);
1043#endif
1044
1045#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1046/*
1047 * Component wise conversion from long2 to uchar2
1048 *
1049 * Supported by API versions 9 and newer.
1050 */
1051extern uchar2 __attribute__((const, overloadable))convert_uchar2(long2);
1052#endif
1053
1054#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1055/*
1056 * Component wise conversion from long3 to uchar3
1057 *
1058 * Supported by API versions 9 and newer.
1059 */
1060extern uchar3 __attribute__((const, overloadable))convert_uchar3(long3);
1061#endif
1062
1063#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1064/*
1065 * Component wise conversion from long4 to uchar4
1066 *
1067 * Supported by API versions 9 and newer.
1068 */
1069extern uchar4 __attribute__((const, overloadable))convert_uchar4(long4);
1070#endif
1071
1072#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1073/*
1074 * Component wise conversion from ulong2 to uchar2
1075 *
1076 * Supported by API versions 9 and newer.
1077 */
1078extern uchar2 __attribute__((const, overloadable))convert_uchar2(ulong2);
1079#endif
1080
1081#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1082/*
1083 * Component wise conversion from ulong3 to uchar3
1084 *
1085 * Supported by API versions 9 and newer.
1086 */
1087extern uchar3 __attribute__((const, overloadable))convert_uchar3(ulong3);
1088#endif
1089
1090#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1091/*
1092 * Component wise conversion from ulong4 to uchar4
1093 *
1094 * Supported by API versions 9 and newer.
1095 */
1096extern uchar4 __attribute__((const, overloadable))convert_uchar4(ulong4);
1097#endif
1098
1099#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1100/*
1101 * Component wise conversion from float2 to short2
1102 *
1103 * Supported by API versions 9 and newer.
1104 */
1105extern short2 __attribute__((const, overloadable))convert_short2(float2);
1106#endif
1107
1108#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1109/*
1110 * Component wise conversion from float3 to short3
1111 *
1112 * Supported by API versions 9 and newer.
1113 */
1114extern short3 __attribute__((const, overloadable))convert_short3(float3);
1115#endif
1116
1117#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1118/*
1119 * Component wise conversion from float4 to short4
1120 *
1121 * Supported by API versions 9 and newer.
1122 */
1123extern short4 __attribute__((const, overloadable))convert_short4(float4);
1124#endif
1125
1126#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1127/*
1128 * Component wise conversion from double2 to short2
1129 *
1130 * Supported by API versions 9 and newer.
1131 */
1132extern short2 __attribute__((const, overloadable))convert_short2(double2);
1133#endif
1134
1135#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1136/*
1137 * Component wise conversion from double3 to short3
1138 *
1139 * Supported by API versions 9 and newer.
1140 */
1141extern short3 __attribute__((const, overloadable))convert_short3(double3);
1142#endif
1143
1144#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1145/*
1146 * Component wise conversion from double4 to short4
1147 *
1148 * Supported by API versions 9 and newer.
1149 */
1150extern short4 __attribute__((const, overloadable))convert_short4(double4);
1151#endif
1152
1153#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1154/*
1155 * Component wise conversion from char2 to short2
1156 *
1157 * Supported by API versions 9 and newer.
1158 */
1159extern short2 __attribute__((const, overloadable))convert_short2(char2);
1160#endif
1161
1162#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1163/*
1164 * Component wise conversion from char3 to short3
1165 *
1166 * Supported by API versions 9 and newer.
1167 */
1168extern short3 __attribute__((const, overloadable))convert_short3(char3);
1169#endif
1170
1171#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1172/*
1173 * Component wise conversion from char4 to short4
1174 *
1175 * Supported by API versions 9 and newer.
1176 */
1177extern short4 __attribute__((const, overloadable))convert_short4(char4);
1178#endif
1179
1180#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1181/*
1182 * Component wise conversion from uchar2 to short2
1183 *
1184 * Supported by API versions 9 and newer.
1185 */
1186extern short2 __attribute__((const, overloadable))convert_short2(uchar2);
1187#endif
1188
1189#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1190/*
1191 * Component wise conversion from uchar3 to short3
1192 *
1193 * Supported by API versions 9 and newer.
1194 */
1195extern short3 __attribute__((const, overloadable))convert_short3(uchar3);
1196#endif
1197
1198#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1199/*
1200 * Component wise conversion from uchar4 to short4
1201 *
1202 * Supported by API versions 9 and newer.
1203 */
1204extern short4 __attribute__((const, overloadable))convert_short4(uchar4);
1205#endif
1206
1207#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1208/*
1209 * Component wise conversion from short2 to short2
1210 *
1211 * Supported by API versions 9 and newer.
1212 */
1213extern short2 __attribute__((const, overloadable))convert_short2(short2);
1214#endif
1215
1216#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1217/*
1218 * Component wise conversion from short3 to short3
1219 *
1220 * Supported by API versions 9 and newer.
1221 */
1222extern short3 __attribute__((const, overloadable))convert_short3(short3);
1223#endif
1224
1225#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1226/*
1227 * Component wise conversion from short4 to short4
1228 *
1229 * Supported by API versions 9 and newer.
1230 */
1231extern short4 __attribute__((const, overloadable))convert_short4(short4);
1232#endif
1233
1234#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1235/*
1236 * Component wise conversion from ushort2 to short2
1237 *
1238 * Supported by API versions 9 and newer.
1239 */
1240extern short2 __attribute__((const, overloadable))convert_short2(ushort2);
1241#endif
1242
1243#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1244/*
1245 * Component wise conversion from ushort3 to short3
1246 *
1247 * Supported by API versions 9 and newer.
1248 */
1249extern short3 __attribute__((const, overloadable))convert_short3(ushort3);
1250#endif
1251
1252#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1253/*
1254 * Component wise conversion from ushort4 to short4
1255 *
1256 * Supported by API versions 9 and newer.
1257 */
1258extern short4 __attribute__((const, overloadable))convert_short4(ushort4);
1259#endif
1260
1261#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1262/*
1263 * Component wise conversion from int2 to short2
1264 *
1265 * Supported by API versions 9 and newer.
1266 */
1267extern short2 __attribute__((const, overloadable))convert_short2(int2);
1268#endif
1269
1270#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1271/*
1272 * Component wise conversion from int3 to short3
1273 *
1274 * Supported by API versions 9 and newer.
1275 */
1276extern short3 __attribute__((const, overloadable))convert_short3(int3);
1277#endif
1278
1279#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1280/*
1281 * Component wise conversion from int4 to short4
1282 *
1283 * Supported by API versions 9 and newer.
1284 */
1285extern short4 __attribute__((const, overloadable))convert_short4(int4);
1286#endif
1287
1288#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1289/*
1290 * Component wise conversion from uint2 to short2
1291 *
1292 * Supported by API versions 9 and newer.
1293 */
1294extern short2 __attribute__((const, overloadable))convert_short2(uint2);
1295#endif
1296
1297#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1298/*
1299 * Component wise conversion from uint3 to short3
1300 *
1301 * Supported by API versions 9 and newer.
1302 */
1303extern short3 __attribute__((const, overloadable))convert_short3(uint3);
1304#endif
1305
1306#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1307/*
1308 * Component wise conversion from uint4 to short4
1309 *
1310 * Supported by API versions 9 and newer.
1311 */
1312extern short4 __attribute__((const, overloadable))convert_short4(uint4);
1313#endif
1314
1315#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1316/*
1317 * Component wise conversion from long2 to short2
1318 *
1319 * Supported by API versions 9 and newer.
1320 */
1321extern short2 __attribute__((const, overloadable))convert_short2(long2);
1322#endif
1323
1324#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1325/*
1326 * Component wise conversion from long3 to short3
1327 *
1328 * Supported by API versions 9 and newer.
1329 */
1330extern short3 __attribute__((const, overloadable))convert_short3(long3);
1331#endif
1332
1333#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1334/*
1335 * Component wise conversion from long4 to short4
1336 *
1337 * Supported by API versions 9 and newer.
1338 */
1339extern short4 __attribute__((const, overloadable))convert_short4(long4);
1340#endif
1341
1342#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1343/*
1344 * Component wise conversion from ulong2 to short2
1345 *
1346 * Supported by API versions 9 and newer.
1347 */
1348extern short2 __attribute__((const, overloadable))convert_short2(ulong2);
1349#endif
1350
1351#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1352/*
1353 * Component wise conversion from ulong3 to short3
1354 *
1355 * Supported by API versions 9 and newer.
1356 */
1357extern short3 __attribute__((const, overloadable))convert_short3(ulong3);
1358#endif
1359
1360#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1361/*
1362 * Component wise conversion from ulong4 to short4
1363 *
1364 * Supported by API versions 9 and newer.
1365 */
1366extern short4 __attribute__((const, overloadable))convert_short4(ulong4);
1367#endif
1368
1369#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1370/*
1371 * Component wise conversion from float2 to ushort2
1372 *
1373 * Supported by API versions 9 and newer.
1374 */
1375extern ushort2 __attribute__((const, overloadable))convert_ushort2(float2);
1376#endif
1377
1378#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1379/*
1380 * Component wise conversion from float3 to ushort3
1381 *
1382 * Supported by API versions 9 and newer.
1383 */
1384extern ushort3 __attribute__((const, overloadable))convert_ushort3(float3);
1385#endif
1386
1387#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1388/*
1389 * Component wise conversion from float4 to ushort4
1390 *
1391 * Supported by API versions 9 and newer.
1392 */
1393extern ushort4 __attribute__((const, overloadable))convert_ushort4(float4);
1394#endif
1395
1396#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1397/*
1398 * Component wise conversion from double2 to ushort2
1399 *
1400 * Supported by API versions 9 and newer.
1401 */
1402extern ushort2 __attribute__((const, overloadable))convert_ushort2(double2);
1403#endif
1404
1405#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1406/*
1407 * Component wise conversion from double3 to ushort3
1408 *
1409 * Supported by API versions 9 and newer.
1410 */
1411extern ushort3 __attribute__((const, overloadable))convert_ushort3(double3);
1412#endif
1413
1414#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1415/*
1416 * Component wise conversion from double4 to ushort4
1417 *
1418 * Supported by API versions 9 and newer.
1419 */
1420extern ushort4 __attribute__((const, overloadable))convert_ushort4(double4);
1421#endif
1422
1423#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1424/*
1425 * Component wise conversion from char2 to ushort2
1426 *
1427 * Supported by API versions 9 and newer.
1428 */
1429extern ushort2 __attribute__((const, overloadable))convert_ushort2(char2);
1430#endif
1431
1432#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1433/*
1434 * Component wise conversion from char3 to ushort3
1435 *
1436 * Supported by API versions 9 and newer.
1437 */
1438extern ushort3 __attribute__((const, overloadable))convert_ushort3(char3);
1439#endif
1440
1441#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1442/*
1443 * Component wise conversion from char4 to ushort4
1444 *
1445 * Supported by API versions 9 and newer.
1446 */
1447extern ushort4 __attribute__((const, overloadable))convert_ushort4(char4);
1448#endif
1449
1450#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1451/*
1452 * Component wise conversion from uchar2 to ushort2
1453 *
1454 * Supported by API versions 9 and newer.
1455 */
1456extern ushort2 __attribute__((const, overloadable))convert_ushort2(uchar2);
1457#endif
1458
1459#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1460/*
1461 * Component wise conversion from uchar3 to ushort3
1462 *
1463 * Supported by API versions 9 and newer.
1464 */
1465extern ushort3 __attribute__((const, overloadable))convert_ushort3(uchar3);
1466#endif
1467
1468#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1469/*
1470 * Component wise conversion from uchar4 to ushort4
1471 *
1472 * Supported by API versions 9 and newer.
1473 */
1474extern ushort4 __attribute__((const, overloadable))convert_ushort4(uchar4);
1475#endif
1476
1477#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1478/*
1479 * Component wise conversion from short2 to ushort2
1480 *
1481 * Supported by API versions 9 and newer.
1482 */
1483extern ushort2 __attribute__((const, overloadable))convert_ushort2(short2);
1484#endif
1485
1486#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1487/*
1488 * Component wise conversion from short3 to ushort3
1489 *
1490 * Supported by API versions 9 and newer.
1491 */
1492extern ushort3 __attribute__((const, overloadable))convert_ushort3(short3);
1493#endif
1494
1495#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1496/*
1497 * Component wise conversion from short4 to ushort4
1498 *
1499 * Supported by API versions 9 and newer.
1500 */
1501extern ushort4 __attribute__((const, overloadable))convert_ushort4(short4);
1502#endif
1503
1504#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1505/*
1506 * Component wise conversion from ushort2 to ushort2
1507 *
1508 * Supported by API versions 9 and newer.
1509 */
1510extern ushort2 __attribute__((const, overloadable))convert_ushort2(ushort2);
1511#endif
1512
1513#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1514/*
1515 * Component wise conversion from ushort3 to ushort3
1516 *
1517 * Supported by API versions 9 and newer.
1518 */
1519extern ushort3 __attribute__((const, overloadable))convert_ushort3(ushort3);
1520#endif
1521
1522#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1523/*
1524 * Component wise conversion from ushort4 to ushort4
1525 *
1526 * Supported by API versions 9 and newer.
1527 */
1528extern ushort4 __attribute__((const, overloadable))convert_ushort4(ushort4);
1529#endif
1530
1531#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1532/*
1533 * Component wise conversion from int2 to ushort2
1534 *
1535 * Supported by API versions 9 and newer.
1536 */
1537extern ushort2 __attribute__((const, overloadable))convert_ushort2(int2);
1538#endif
1539
1540#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1541/*
1542 * Component wise conversion from int3 to ushort3
1543 *
1544 * Supported by API versions 9 and newer.
1545 */
1546extern ushort3 __attribute__((const, overloadable))convert_ushort3(int3);
1547#endif
1548
1549#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1550/*
1551 * Component wise conversion from int4 to ushort4
1552 *
1553 * Supported by API versions 9 and newer.
1554 */
1555extern ushort4 __attribute__((const, overloadable))convert_ushort4(int4);
1556#endif
1557
1558#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1559/*
1560 * Component wise conversion from uint2 to ushort2
1561 *
1562 * Supported by API versions 9 and newer.
1563 */
1564extern ushort2 __attribute__((const, overloadable))convert_ushort2(uint2);
1565#endif
1566
1567#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1568/*
1569 * Component wise conversion from uint3 to ushort3
1570 *
1571 * Supported by API versions 9 and newer.
1572 */
1573extern ushort3 __attribute__((const, overloadable))convert_ushort3(uint3);
1574#endif
1575
1576#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1577/*
1578 * Component wise conversion from uint4 to ushort4
1579 *
1580 * Supported by API versions 9 and newer.
1581 */
1582extern ushort4 __attribute__((const, overloadable))convert_ushort4(uint4);
1583#endif
1584
1585#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1586/*
1587 * Component wise conversion from long2 to ushort2
1588 *
1589 * Supported by API versions 9 and newer.
1590 */
1591extern ushort2 __attribute__((const, overloadable))convert_ushort2(long2);
1592#endif
1593
1594#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1595/*
1596 * Component wise conversion from long3 to ushort3
1597 *
1598 * Supported by API versions 9 and newer.
1599 */
1600extern ushort3 __attribute__((const, overloadable))convert_ushort3(long3);
1601#endif
1602
1603#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1604/*
1605 * Component wise conversion from long4 to ushort4
1606 *
1607 * Supported by API versions 9 and newer.
1608 */
1609extern ushort4 __attribute__((const, overloadable))convert_ushort4(long4);
1610#endif
1611
1612#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1613/*
1614 * Component wise conversion from ulong2 to ushort2
1615 *
1616 * Supported by API versions 9 and newer.
1617 */
1618extern ushort2 __attribute__((const, overloadable))convert_ushort2(ulong2);
1619#endif
1620
1621#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1622/*
1623 * Component wise conversion from ulong3 to ushort3
1624 *
1625 * Supported by API versions 9 and newer.
1626 */
1627extern ushort3 __attribute__((const, overloadable))convert_ushort3(ulong3);
1628#endif
1629
1630#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1631/*
1632 * Component wise conversion from ulong4 to ushort4
1633 *
1634 * Supported by API versions 9 and newer.
1635 */
1636extern ushort4 __attribute__((const, overloadable))convert_ushort4(ulong4);
1637#endif
1638
1639#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1640/*
1641 * Component wise conversion from float2 to int2
1642 *
1643 * Supported by API versions 9 and newer.
1644 */
1645extern int2 __attribute__((const, overloadable))convert_int2(float2);
1646#endif
1647
1648#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1649/*
1650 * Component wise conversion from float3 to int3
1651 *
1652 * Supported by API versions 9 and newer.
1653 */
1654extern int3 __attribute__((const, overloadable))convert_int3(float3);
1655#endif
1656
1657#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1658/*
1659 * Component wise conversion from float4 to int4
1660 *
1661 * Supported by API versions 9 and newer.
1662 */
1663extern int4 __attribute__((const, overloadable))convert_int4(float4);
1664#endif
1665
1666#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1667/*
1668 * Component wise conversion from double2 to int2
1669 *
1670 * Supported by API versions 9 and newer.
1671 */
1672extern int2 __attribute__((const, overloadable))convert_int2(double2);
1673#endif
1674
1675#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1676/*
1677 * Component wise conversion from double3 to int3
1678 *
1679 * Supported by API versions 9 and newer.
1680 */
1681extern int3 __attribute__((const, overloadable))convert_int3(double3);
1682#endif
1683
1684#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1685/*
1686 * Component wise conversion from double4 to int4
1687 *
1688 * Supported by API versions 9 and newer.
1689 */
1690extern int4 __attribute__((const, overloadable))convert_int4(double4);
1691#endif
1692
1693#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1694/*
1695 * Component wise conversion from char2 to int2
1696 *
1697 * Supported by API versions 9 and newer.
1698 */
1699extern int2 __attribute__((const, overloadable))convert_int2(char2);
1700#endif
1701
1702#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1703/*
1704 * Component wise conversion from char3 to int3
1705 *
1706 * Supported by API versions 9 and newer.
1707 */
1708extern int3 __attribute__((const, overloadable))convert_int3(char3);
1709#endif
1710
1711#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1712/*
1713 * Component wise conversion from char4 to int4
1714 *
1715 * Supported by API versions 9 and newer.
1716 */
1717extern int4 __attribute__((const, overloadable))convert_int4(char4);
1718#endif
1719
1720#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1721/*
1722 * Component wise conversion from uchar2 to int2
1723 *
1724 * Supported by API versions 9 and newer.
1725 */
1726extern int2 __attribute__((const, overloadable))convert_int2(uchar2);
1727#endif
1728
1729#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1730/*
1731 * Component wise conversion from uchar3 to int3
1732 *
1733 * Supported by API versions 9 and newer.
1734 */
1735extern int3 __attribute__((const, overloadable))convert_int3(uchar3);
1736#endif
1737
1738#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1739/*
1740 * Component wise conversion from uchar4 to int4
1741 *
1742 * Supported by API versions 9 and newer.
1743 */
1744extern int4 __attribute__((const, overloadable))convert_int4(uchar4);
1745#endif
1746
1747#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1748/*
1749 * Component wise conversion from short2 to int2
1750 *
1751 * Supported by API versions 9 and newer.
1752 */
1753extern int2 __attribute__((const, overloadable))convert_int2(short2);
1754#endif
1755
1756#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1757/*
1758 * Component wise conversion from short3 to int3
1759 *
1760 * Supported by API versions 9 and newer.
1761 */
1762extern int3 __attribute__((const, overloadable))convert_int3(short3);
1763#endif
1764
1765#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1766/*
1767 * Component wise conversion from short4 to int4
1768 *
1769 * Supported by API versions 9 and newer.
1770 */
1771extern int4 __attribute__((const, overloadable))convert_int4(short4);
1772#endif
1773
1774#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1775/*
1776 * Component wise conversion from ushort2 to int2
1777 *
1778 * Supported by API versions 9 and newer.
1779 */
1780extern int2 __attribute__((const, overloadable))convert_int2(ushort2);
1781#endif
1782
1783#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1784/*
1785 * Component wise conversion from ushort3 to int3
1786 *
1787 * Supported by API versions 9 and newer.
1788 */
1789extern int3 __attribute__((const, overloadable))convert_int3(ushort3);
1790#endif
1791
1792#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1793/*
1794 * Component wise conversion from ushort4 to int4
1795 *
1796 * Supported by API versions 9 and newer.
1797 */
1798extern int4 __attribute__((const, overloadable))convert_int4(ushort4);
1799#endif
1800
1801#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1802/*
1803 * Component wise conversion from int2 to int2
1804 *
1805 * Supported by API versions 9 and newer.
1806 */
1807extern int2 __attribute__((const, overloadable))convert_int2(int2);
1808#endif
1809
1810#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1811/*
1812 * Component wise conversion from int3 to int3
1813 *
1814 * Supported by API versions 9 and newer.
1815 */
1816extern int3 __attribute__((const, overloadable))convert_int3(int3);
1817#endif
1818
1819#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1820/*
1821 * Component wise conversion from int4 to int4
1822 *
1823 * Supported by API versions 9 and newer.
1824 */
1825extern int4 __attribute__((const, overloadable))convert_int4(int4);
1826#endif
1827
1828#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1829/*
1830 * Component wise conversion from uint2 to int2
1831 *
1832 * Supported by API versions 9 and newer.
1833 */
1834extern int2 __attribute__((const, overloadable))convert_int2(uint2);
1835#endif
1836
1837#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1838/*
1839 * Component wise conversion from uint3 to int3
1840 *
1841 * Supported by API versions 9 and newer.
1842 */
1843extern int3 __attribute__((const, overloadable))convert_int3(uint3);
1844#endif
1845
1846#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1847/*
1848 * Component wise conversion from uint4 to int4
1849 *
1850 * Supported by API versions 9 and newer.
1851 */
1852extern int4 __attribute__((const, overloadable))convert_int4(uint4);
1853#endif
1854
1855#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1856/*
1857 * Component wise conversion from long2 to int2
1858 *
1859 * Supported by API versions 9 and newer.
1860 */
1861extern int2 __attribute__((const, overloadable))convert_int2(long2);
1862#endif
1863
1864#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1865/*
1866 * Component wise conversion from long3 to int3
1867 *
1868 * Supported by API versions 9 and newer.
1869 */
1870extern int3 __attribute__((const, overloadable))convert_int3(long3);
1871#endif
1872
1873#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1874/*
1875 * Component wise conversion from long4 to int4
1876 *
1877 * Supported by API versions 9 and newer.
1878 */
1879extern int4 __attribute__((const, overloadable))convert_int4(long4);
1880#endif
1881
1882#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1883/*
1884 * Component wise conversion from ulong2 to int2
1885 *
1886 * Supported by API versions 9 and newer.
1887 */
1888extern int2 __attribute__((const, overloadable))convert_int2(ulong2);
1889#endif
1890
1891#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1892/*
1893 * Component wise conversion from ulong3 to int3
1894 *
1895 * Supported by API versions 9 and newer.
1896 */
1897extern int3 __attribute__((const, overloadable))convert_int3(ulong3);
1898#endif
1899
1900#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1901/*
1902 * Component wise conversion from ulong4 to int4
1903 *
1904 * Supported by API versions 9 and newer.
1905 */
1906extern int4 __attribute__((const, overloadable))convert_int4(ulong4);
1907#endif
1908
1909#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1910/*
1911 * Component wise conversion from float2 to uint2
1912 *
1913 * Supported by API versions 9 and newer.
1914 */
1915extern uint2 __attribute__((const, overloadable))convert_uint2(float2);
1916#endif
1917
1918#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1919/*
1920 * Component wise conversion from float3 to uint3
1921 *
1922 * Supported by API versions 9 and newer.
1923 */
1924extern uint3 __attribute__((const, overloadable))convert_uint3(float3);
1925#endif
1926
1927#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1928/*
1929 * Component wise conversion from float4 to uint4
1930 *
1931 * Supported by API versions 9 and newer.
1932 */
1933extern uint4 __attribute__((const, overloadable))convert_uint4(float4);
1934#endif
1935
1936#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1937/*
1938 * Component wise conversion from double2 to uint2
1939 *
1940 * Supported by API versions 9 and newer.
1941 */
1942extern uint2 __attribute__((const, overloadable))convert_uint2(double2);
1943#endif
1944
1945#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1946/*
1947 * Component wise conversion from double3 to uint3
1948 *
1949 * Supported by API versions 9 and newer.
1950 */
1951extern uint3 __attribute__((const, overloadable))convert_uint3(double3);
1952#endif
1953
1954#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1955/*
1956 * Component wise conversion from double4 to uint4
1957 *
1958 * Supported by API versions 9 and newer.
1959 */
1960extern uint4 __attribute__((const, overloadable))convert_uint4(double4);
1961#endif
1962
1963#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1964/*
1965 * Component wise conversion from char2 to uint2
1966 *
1967 * Supported by API versions 9 and newer.
1968 */
1969extern uint2 __attribute__((const, overloadable))convert_uint2(char2);
1970#endif
1971
1972#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1973/*
1974 * Component wise conversion from char3 to uint3
1975 *
1976 * Supported by API versions 9 and newer.
1977 */
1978extern uint3 __attribute__((const, overloadable))convert_uint3(char3);
1979#endif
1980
1981#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1982/*
1983 * Component wise conversion from char4 to uint4
1984 *
1985 * Supported by API versions 9 and newer.
1986 */
1987extern uint4 __attribute__((const, overloadable))convert_uint4(char4);
1988#endif
1989
1990#if (defined(RS_VERSION) && (RS_VERSION >= 9))
1991/*
1992 * Component wise conversion from uchar2 to uint2
1993 *
1994 * Supported by API versions 9 and newer.
1995 */
1996extern uint2 __attribute__((const, overloadable))convert_uint2(uchar2);
1997#endif
1998
1999#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2000/*
2001 * Component wise conversion from uchar3 to uint3
2002 *
2003 * Supported by API versions 9 and newer.
2004 */
2005extern uint3 __attribute__((const, overloadable))convert_uint3(uchar3);
2006#endif
2007
2008#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2009/*
2010 * Component wise conversion from uchar4 to uint4
2011 *
2012 * Supported by API versions 9 and newer.
2013 */
2014extern uint4 __attribute__((const, overloadable))convert_uint4(uchar4);
2015#endif
2016
2017#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2018/*
2019 * Component wise conversion from short2 to uint2
2020 *
2021 * Supported by API versions 9 and newer.
2022 */
2023extern uint2 __attribute__((const, overloadable))convert_uint2(short2);
2024#endif
2025
2026#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2027/*
2028 * Component wise conversion from short3 to uint3
2029 *
2030 * Supported by API versions 9 and newer.
2031 */
2032extern uint3 __attribute__((const, overloadable))convert_uint3(short3);
2033#endif
2034
2035#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2036/*
2037 * Component wise conversion from short4 to uint4
2038 *
2039 * Supported by API versions 9 and newer.
2040 */
2041extern uint4 __attribute__((const, overloadable))convert_uint4(short4);
2042#endif
2043
2044#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2045/*
2046 * Component wise conversion from ushort2 to uint2
2047 *
2048 * Supported by API versions 9 and newer.
2049 */
2050extern uint2 __attribute__((const, overloadable))convert_uint2(ushort2);
2051#endif
2052
2053#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2054/*
2055 * Component wise conversion from ushort3 to uint3
2056 *
2057 * Supported by API versions 9 and newer.
2058 */
2059extern uint3 __attribute__((const, overloadable))convert_uint3(ushort3);
2060#endif
2061
2062#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2063/*
2064 * Component wise conversion from ushort4 to uint4
2065 *
2066 * Supported by API versions 9 and newer.
2067 */
2068extern uint4 __attribute__((const, overloadable))convert_uint4(ushort4);
2069#endif
2070
2071#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2072/*
2073 * Component wise conversion from int2 to uint2
2074 *
2075 * Supported by API versions 9 and newer.
2076 */
2077extern uint2 __attribute__((const, overloadable))convert_uint2(int2);
2078#endif
2079
2080#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2081/*
2082 * Component wise conversion from int3 to uint3
2083 *
2084 * Supported by API versions 9 and newer.
2085 */
2086extern uint3 __attribute__((const, overloadable))convert_uint3(int3);
2087#endif
2088
2089#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2090/*
2091 * Component wise conversion from int4 to uint4
2092 *
2093 * Supported by API versions 9 and newer.
2094 */
2095extern uint4 __attribute__((const, overloadable))convert_uint4(int4);
2096#endif
2097
2098#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2099/*
2100 * Component wise conversion from uint2 to uint2
2101 *
2102 * Supported by API versions 9 and newer.
2103 */
2104extern uint2 __attribute__((const, overloadable))convert_uint2(uint2);
2105#endif
2106
2107#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2108/*
2109 * Component wise conversion from uint3 to uint3
2110 *
2111 * Supported by API versions 9 and newer.
2112 */
2113extern uint3 __attribute__((const, overloadable))convert_uint3(uint3);
2114#endif
2115
2116#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2117/*
2118 * Component wise conversion from uint4 to uint4
2119 *
2120 * Supported by API versions 9 and newer.
2121 */
2122extern uint4 __attribute__((const, overloadable))convert_uint4(uint4);
2123#endif
2124
2125#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2126/*
2127 * Component wise conversion from long2 to uint2
2128 *
2129 * Supported by API versions 9 and newer.
2130 */
2131extern uint2 __attribute__((const, overloadable))convert_uint2(long2);
2132#endif
2133
2134#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2135/*
2136 * Component wise conversion from long3 to uint3
2137 *
2138 * Supported by API versions 9 and newer.
2139 */
2140extern uint3 __attribute__((const, overloadable))convert_uint3(long3);
2141#endif
2142
2143#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2144/*
2145 * Component wise conversion from long4 to uint4
2146 *
2147 * Supported by API versions 9 and newer.
2148 */
2149extern uint4 __attribute__((const, overloadable))convert_uint4(long4);
2150#endif
2151
2152#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2153/*
2154 * Component wise conversion from ulong2 to uint2
2155 *
2156 * Supported by API versions 9 and newer.
2157 */
2158extern uint2 __attribute__((const, overloadable))convert_uint2(ulong2);
2159#endif
2160
2161#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2162/*
2163 * Component wise conversion from ulong3 to uint3
2164 *
2165 * Supported by API versions 9 and newer.
2166 */
2167extern uint3 __attribute__((const, overloadable))convert_uint3(ulong3);
2168#endif
2169
2170#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2171/*
2172 * Component wise conversion from ulong4 to uint4
2173 *
2174 * Supported by API versions 9 and newer.
2175 */
2176extern uint4 __attribute__((const, overloadable))convert_uint4(ulong4);
2177#endif
2178
2179#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2180/*
2181 * Component wise conversion from float2 to long2
2182 *
2183 * Supported by API versions 9 and newer.
2184 */
2185extern long2 __attribute__((const, overloadable))convert_long2(float2);
2186#endif
2187
2188#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2189/*
2190 * Component wise conversion from float3 to long3
2191 *
2192 * Supported by API versions 9 and newer.
2193 */
2194extern long3 __attribute__((const, overloadable))convert_long3(float3);
2195#endif
2196
2197#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2198/*
2199 * Component wise conversion from float4 to long4
2200 *
2201 * Supported by API versions 9 and newer.
2202 */
2203extern long4 __attribute__((const, overloadable))convert_long4(float4);
2204#endif
2205
2206#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2207/*
2208 * Component wise conversion from double2 to long2
2209 *
2210 * Supported by API versions 9 and newer.
2211 */
2212extern long2 __attribute__((const, overloadable))convert_long2(double2);
2213#endif
2214
2215#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2216/*
2217 * Component wise conversion from double3 to long3
2218 *
2219 * Supported by API versions 9 and newer.
2220 */
2221extern long3 __attribute__((const, overloadable))convert_long3(double3);
2222#endif
2223
2224#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2225/*
2226 * Component wise conversion from double4 to long4
2227 *
2228 * Supported by API versions 9 and newer.
2229 */
2230extern long4 __attribute__((const, overloadable))convert_long4(double4);
2231#endif
2232
2233#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2234/*
2235 * Component wise conversion from char2 to long2
2236 *
2237 * Supported by API versions 9 and newer.
2238 */
2239extern long2 __attribute__((const, overloadable))convert_long2(char2);
2240#endif
2241
2242#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2243/*
2244 * Component wise conversion from char3 to long3
2245 *
2246 * Supported by API versions 9 and newer.
2247 */
2248extern long3 __attribute__((const, overloadable))convert_long3(char3);
2249#endif
2250
2251#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2252/*
2253 * Component wise conversion from char4 to long4
2254 *
2255 * Supported by API versions 9 and newer.
2256 */
2257extern long4 __attribute__((const, overloadable))convert_long4(char4);
2258#endif
2259
2260#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2261/*
2262 * Component wise conversion from uchar2 to long2
2263 *
2264 * Supported by API versions 9 and newer.
2265 */
2266extern long2 __attribute__((const, overloadable))convert_long2(uchar2);
2267#endif
2268
2269#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2270/*
2271 * Component wise conversion from uchar3 to long3
2272 *
2273 * Supported by API versions 9 and newer.
2274 */
2275extern long3 __attribute__((const, overloadable))convert_long3(uchar3);
2276#endif
2277
2278#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2279/*
2280 * Component wise conversion from uchar4 to long4
2281 *
2282 * Supported by API versions 9 and newer.
2283 */
2284extern long4 __attribute__((const, overloadable))convert_long4(uchar4);
2285#endif
2286
2287#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2288/*
2289 * Component wise conversion from short2 to long2
2290 *
2291 * Supported by API versions 9 and newer.
2292 */
2293extern long2 __attribute__((const, overloadable))convert_long2(short2);
2294#endif
2295
2296#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2297/*
2298 * Component wise conversion from short3 to long3
2299 *
2300 * Supported by API versions 9 and newer.
2301 */
2302extern long3 __attribute__((const, overloadable))convert_long3(short3);
2303#endif
2304
2305#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2306/*
2307 * Component wise conversion from short4 to long4
2308 *
2309 * Supported by API versions 9 and newer.
2310 */
2311extern long4 __attribute__((const, overloadable))convert_long4(short4);
2312#endif
2313
2314#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2315/*
2316 * Component wise conversion from ushort2 to long2
2317 *
2318 * Supported by API versions 9 and newer.
2319 */
2320extern long2 __attribute__((const, overloadable))convert_long2(ushort2);
2321#endif
2322
2323#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2324/*
2325 * Component wise conversion from ushort3 to long3
2326 *
2327 * Supported by API versions 9 and newer.
2328 */
2329extern long3 __attribute__((const, overloadable))convert_long3(ushort3);
2330#endif
2331
2332#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2333/*
2334 * Component wise conversion from ushort4 to long4
2335 *
2336 * Supported by API versions 9 and newer.
2337 */
2338extern long4 __attribute__((const, overloadable))convert_long4(ushort4);
2339#endif
2340
2341#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2342/*
2343 * Component wise conversion from int2 to long2
2344 *
2345 * Supported by API versions 9 and newer.
2346 */
2347extern long2 __attribute__((const, overloadable))convert_long2(int2);
2348#endif
2349
2350#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2351/*
2352 * Component wise conversion from int3 to long3
2353 *
2354 * Supported by API versions 9 and newer.
2355 */
2356extern long3 __attribute__((const, overloadable))convert_long3(int3);
2357#endif
2358
2359#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2360/*
2361 * Component wise conversion from int4 to long4
2362 *
2363 * Supported by API versions 9 and newer.
2364 */
2365extern long4 __attribute__((const, overloadable))convert_long4(int4);
2366#endif
2367
2368#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2369/*
2370 * Component wise conversion from uint2 to long2
2371 *
2372 * Supported by API versions 9 and newer.
2373 */
2374extern long2 __attribute__((const, overloadable))convert_long2(uint2);
2375#endif
2376
2377#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2378/*
2379 * Component wise conversion from uint3 to long3
2380 *
2381 * Supported by API versions 9 and newer.
2382 */
2383extern long3 __attribute__((const, overloadable))convert_long3(uint3);
2384#endif
2385
2386#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2387/*
2388 * Component wise conversion from uint4 to long4
2389 *
2390 * Supported by API versions 9 and newer.
2391 */
2392extern long4 __attribute__((const, overloadable))convert_long4(uint4);
2393#endif
2394
2395#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2396/*
2397 * Component wise conversion from long2 to long2
2398 *
2399 * Supported by API versions 9 and newer.
2400 */
2401extern long2 __attribute__((const, overloadable))convert_long2(long2);
2402#endif
2403
2404#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2405/*
2406 * Component wise conversion from long3 to long3
2407 *
2408 * Supported by API versions 9 and newer.
2409 */
2410extern long3 __attribute__((const, overloadable))convert_long3(long3);
2411#endif
2412
2413#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2414/*
2415 * Component wise conversion from long4 to long4
2416 *
2417 * Supported by API versions 9 and newer.
2418 */
2419extern long4 __attribute__((const, overloadable))convert_long4(long4);
2420#endif
2421
2422#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2423/*
2424 * Component wise conversion from ulong2 to long2
2425 *
2426 * Supported by API versions 9 and newer.
2427 */
2428extern long2 __attribute__((const, overloadable))convert_long2(ulong2);
2429#endif
2430
2431#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2432/*
2433 * Component wise conversion from ulong3 to long3
2434 *
2435 * Supported by API versions 9 and newer.
2436 */
2437extern long3 __attribute__((const, overloadable))convert_long3(ulong3);
2438#endif
2439
2440#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2441/*
2442 * Component wise conversion from ulong4 to long4
2443 *
2444 * Supported by API versions 9 and newer.
2445 */
2446extern long4 __attribute__((const, overloadable))convert_long4(ulong4);
2447#endif
2448
2449#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2450/*
2451 * Component wise conversion from float2 to ulong2
2452 *
2453 * Supported by API versions 9 and newer.
2454 */
2455extern ulong2 __attribute__((const, overloadable))convert_ulong2(float2);
2456#endif
2457
2458#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2459/*
2460 * Component wise conversion from float3 to ulong3
2461 *
2462 * Supported by API versions 9 and newer.
2463 */
2464extern ulong3 __attribute__((const, overloadable))convert_ulong3(float3);
2465#endif
2466
2467#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2468/*
2469 * Component wise conversion from float4 to ulong4
2470 *
2471 * Supported by API versions 9 and newer.
2472 */
2473extern ulong4 __attribute__((const, overloadable))convert_ulong4(float4);
2474#endif
2475
2476#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2477/*
2478 * Component wise conversion from double2 to ulong2
2479 *
2480 * Supported by API versions 9 and newer.
2481 */
2482extern ulong2 __attribute__((const, overloadable))convert_ulong2(double2);
2483#endif
2484
2485#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2486/*
2487 * Component wise conversion from double3 to ulong3
2488 *
2489 * Supported by API versions 9 and newer.
2490 */
2491extern ulong3 __attribute__((const, overloadable))convert_ulong3(double3);
2492#endif
2493
2494#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2495/*
2496 * Component wise conversion from double4 to ulong4
2497 *
2498 * Supported by API versions 9 and newer.
2499 */
2500extern ulong4 __attribute__((const, overloadable))convert_ulong4(double4);
2501#endif
2502
2503#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2504/*
2505 * Component wise conversion from char2 to ulong2
2506 *
2507 * Supported by API versions 9 and newer.
2508 */
2509extern ulong2 __attribute__((const, overloadable))convert_ulong2(char2);
2510#endif
2511
2512#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2513/*
2514 * Component wise conversion from char3 to ulong3
2515 *
2516 * Supported by API versions 9 and newer.
2517 */
2518extern ulong3 __attribute__((const, overloadable))convert_ulong3(char3);
2519#endif
2520
2521#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2522/*
2523 * Component wise conversion from char4 to ulong4
2524 *
2525 * Supported by API versions 9 and newer.
2526 */
2527extern ulong4 __attribute__((const, overloadable))convert_ulong4(char4);
2528#endif
2529
2530#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2531/*
2532 * Component wise conversion from uchar2 to ulong2
2533 *
2534 * Supported by API versions 9 and newer.
2535 */
2536extern ulong2 __attribute__((const, overloadable))convert_ulong2(uchar2);
2537#endif
2538
2539#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2540/*
2541 * Component wise conversion from uchar3 to ulong3
2542 *
2543 * Supported by API versions 9 and newer.
2544 */
2545extern ulong3 __attribute__((const, overloadable))convert_ulong3(uchar3);
2546#endif
2547
2548#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2549/*
2550 * Component wise conversion from uchar4 to ulong4
2551 *
2552 * Supported by API versions 9 and newer.
2553 */
2554extern ulong4 __attribute__((const, overloadable))convert_ulong4(uchar4);
2555#endif
2556
2557#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2558/*
2559 * Component wise conversion from short2 to ulong2
2560 *
2561 * Supported by API versions 9 and newer.
2562 */
2563extern ulong2 __attribute__((const, overloadable))convert_ulong2(short2);
2564#endif
2565
2566#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2567/*
2568 * Component wise conversion from short3 to ulong3
2569 *
2570 * Supported by API versions 9 and newer.
2571 */
2572extern ulong3 __attribute__((const, overloadable))convert_ulong3(short3);
2573#endif
2574
2575#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2576/*
2577 * Component wise conversion from short4 to ulong4
2578 *
2579 * Supported by API versions 9 and newer.
2580 */
2581extern ulong4 __attribute__((const, overloadable))convert_ulong4(short4);
2582#endif
2583
2584#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2585/*
2586 * Component wise conversion from ushort2 to ulong2
2587 *
2588 * Supported by API versions 9 and newer.
2589 */
2590extern ulong2 __attribute__((const, overloadable))convert_ulong2(ushort2);
2591#endif
2592
2593#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2594/*
2595 * Component wise conversion from ushort3 to ulong3
2596 *
2597 * Supported by API versions 9 and newer.
2598 */
2599extern ulong3 __attribute__((const, overloadable))convert_ulong3(ushort3);
2600#endif
2601
2602#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2603/*
2604 * Component wise conversion from ushort4 to ulong4
2605 *
2606 * Supported by API versions 9 and newer.
2607 */
2608extern ulong4 __attribute__((const, overloadable))convert_ulong4(ushort4);
2609#endif
2610
2611#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2612/*
2613 * Component wise conversion from int2 to ulong2
2614 *
2615 * Supported by API versions 9 and newer.
2616 */
2617extern ulong2 __attribute__((const, overloadable))convert_ulong2(int2);
2618#endif
2619
2620#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2621/*
2622 * Component wise conversion from int3 to ulong3
2623 *
2624 * Supported by API versions 9 and newer.
2625 */
2626extern ulong3 __attribute__((const, overloadable))convert_ulong3(int3);
2627#endif
2628
2629#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2630/*
2631 * Component wise conversion from int4 to ulong4
2632 *
2633 * Supported by API versions 9 and newer.
2634 */
2635extern ulong4 __attribute__((const, overloadable))convert_ulong4(int4);
2636#endif
2637
2638#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2639/*
2640 * Component wise conversion from uint2 to ulong2
2641 *
2642 * Supported by API versions 9 and newer.
2643 */
2644extern ulong2 __attribute__((const, overloadable))convert_ulong2(uint2);
2645#endif
2646
2647#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2648/*
2649 * Component wise conversion from uint3 to ulong3
2650 *
2651 * Supported by API versions 9 and newer.
2652 */
2653extern ulong3 __attribute__((const, overloadable))convert_ulong3(uint3);
2654#endif
2655
2656#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2657/*
2658 * Component wise conversion from uint4 to ulong4
2659 *
2660 * Supported by API versions 9 and newer.
2661 */
2662extern ulong4 __attribute__((const, overloadable))convert_ulong4(uint4);
2663#endif
2664
2665#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2666/*
2667 * Component wise conversion from long2 to ulong2
2668 *
2669 * Supported by API versions 9 and newer.
2670 */
2671extern ulong2 __attribute__((const, overloadable))convert_ulong2(long2);
2672#endif
2673
2674#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2675/*
2676 * Component wise conversion from long3 to ulong3
2677 *
2678 * Supported by API versions 9 and newer.
2679 */
2680extern ulong3 __attribute__((const, overloadable))convert_ulong3(long3);
2681#endif
2682
2683#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2684/*
2685 * Component wise conversion from long4 to ulong4
2686 *
2687 * Supported by API versions 9 and newer.
2688 */
2689extern ulong4 __attribute__((const, overloadable))convert_ulong4(long4);
2690#endif
2691
2692#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2693/*
2694 * Component wise conversion from ulong2 to ulong2
2695 *
2696 * Supported by API versions 9 and newer.
2697 */
2698extern ulong2 __attribute__((const, overloadable))convert_ulong2(ulong2);
2699#endif
2700
2701#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2702/*
2703 * Component wise conversion from ulong3 to ulong3
2704 *
2705 * Supported by API versions 9 and newer.
2706 */
2707extern ulong3 __attribute__((const, overloadable))convert_ulong3(ulong3);
2708#endif
2709
2710#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2711/*
2712 * Component wise conversion from ulong4 to ulong4
2713 *
2714 * Supported by API versions 9 and newer.
2715 */
2716extern ulong4 __attribute__((const, overloadable))convert_ulong4(ulong4);
2717#endif
2718
2719#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2720/*
2721 * acos
2722 *
2723 * Supported by API versions 9 and newer.
2724 */
2725extern float __attribute__((const, overloadable))acos(float);
2726#endif
2727
2728#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2729/*
2730 * acos
2731 *
2732 * Supported by API versions 9 and newer.
2733 */
2734extern float2 __attribute__((const, overloadable))acos(float2);
2735#endif
2736
2737#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2738/*
2739 * acos
2740 *
2741 * Supported by API versions 9 and newer.
2742 */
2743extern float3 __attribute__((const, overloadable))acos(float3);
2744#endif
2745
2746#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2747/*
2748 * acos
2749 *
2750 * Supported by API versions 9 and newer.
2751 */
2752extern float4 __attribute__((const, overloadable))acos(float4);
2753#endif
2754
2755#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2756/*
2757 * acosh
2758 *
2759 * Supported by API versions 9 and newer.
2760 */
2761extern float __attribute__((const, overloadable))acosh(float);
2762#endif
2763
2764#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2765/*
2766 * acosh
2767 *
2768 * Supported by API versions 9 and newer.
2769 */
2770extern float2 __attribute__((const, overloadable))acosh(float2);
2771#endif
2772
2773#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2774/*
2775 * acosh
2776 *
2777 * Supported by API versions 9 and newer.
2778 */
2779extern float3 __attribute__((const, overloadable))acosh(float3);
2780#endif
2781
2782#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2783/*
2784 * acosh
2785 *
2786 * Supported by API versions 9 and newer.
2787 */
2788extern float4 __attribute__((const, overloadable))acosh(float4);
2789#endif
2790
2791#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2792/*
2793 * acospi
2794 *
2795 * Supported by API versions 9 and newer.
2796 */
2797extern float __attribute__((const, overloadable))acospi(float);
2798#endif
2799
2800#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2801/*
2802 * acospi
2803 *
2804 * Supported by API versions 9 and newer.
2805 */
2806extern float2 __attribute__((const, overloadable))acospi(float2);
2807#endif
2808
2809#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2810/*
2811 * acospi
2812 *
2813 * Supported by API versions 9 and newer.
2814 */
2815extern float3 __attribute__((const, overloadable))acospi(float3);
2816#endif
2817
2818#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2819/*
2820 * acospi
2821 *
2822 * Supported by API versions 9 and newer.
2823 */
2824extern float4 __attribute__((const, overloadable))acospi(float4);
2825#endif
2826
2827#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2828/*
2829 * asin
2830 *
2831 * Supported by API versions 9 and newer.
2832 */
2833extern float __attribute__((const, overloadable))asin(float);
2834#endif
2835
2836#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2837/*
2838 * asin
2839 *
2840 * Supported by API versions 9 and newer.
2841 */
2842extern float2 __attribute__((const, overloadable))asin(float2);
2843#endif
2844
2845#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2846/*
2847 * asin
2848 *
2849 * Supported by API versions 9 and newer.
2850 */
2851extern float3 __attribute__((const, overloadable))asin(float3);
2852#endif
2853
2854#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2855/*
2856 * asin
2857 *
2858 * Supported by API versions 9 and newer.
2859 */
2860extern float4 __attribute__((const, overloadable))asin(float4);
2861#endif
2862
2863#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2864/*
2865 * asinh
2866 *
2867 * Supported by API versions 9 and newer.
2868 */
2869extern float __attribute__((const, overloadable))asinh(float);
2870#endif
2871
2872#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2873/*
2874 * asinh
2875 *
2876 * Supported by API versions 9 and newer.
2877 */
2878extern float2 __attribute__((const, overloadable))asinh(float2);
2879#endif
2880
2881#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2882/*
2883 * asinh
2884 *
2885 * Supported by API versions 9 and newer.
2886 */
2887extern float3 __attribute__((const, overloadable))asinh(float3);
2888#endif
2889
2890#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2891/*
2892 * asinh
2893 *
2894 * Supported by API versions 9 and newer.
2895 */
2896extern float4 __attribute__((const, overloadable))asinh(float4);
2897#endif
2898
2899#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2900/*
2901 * Return the inverse sine divided by PI.
2902 *
2903 * Supported by API versions 9 and newer.
2904 */
2905extern float __attribute__((const, overloadable))asinpi(float);
2906#endif
2907
2908#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2909/*
2910 * Return the inverse sine divided by PI.
2911 *
2912 * Supported by API versions 9 and newer.
2913 */
2914extern float2 __attribute__((const, overloadable))asinpi(float2);
2915#endif
2916
2917#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2918/*
2919 * Return the inverse sine divided by PI.
2920 *
2921 * Supported by API versions 9 and newer.
2922 */
2923extern float3 __attribute__((const, overloadable))asinpi(float3);
2924#endif
2925
2926#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2927/*
2928 * Return the inverse sine divided by PI.
2929 *
2930 * Supported by API versions 9 and newer.
2931 */
2932extern float4 __attribute__((const, overloadable))asinpi(float4);
2933#endif
2934
2935#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2936/*
2937 * Return the inverse tangent.
2938 *
2939 * Supported by API versions 9 and newer.
2940 */
2941extern float __attribute__((const, overloadable))atan(float);
2942#endif
2943
2944#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2945/*
2946 * Return the inverse tangent.
2947 *
2948 * Supported by API versions 9 and newer.
2949 */
2950extern float2 __attribute__((const, overloadable))atan(float2);
2951#endif
2952
2953#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2954/*
2955 * Return the inverse tangent.
2956 *
2957 * Supported by API versions 9 and newer.
2958 */
2959extern float3 __attribute__((const, overloadable))atan(float3);
2960#endif
2961
2962#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2963/*
2964 * Return the inverse tangent.
2965 *
2966 * Supported by API versions 9 and newer.
2967 */
2968extern float4 __attribute__((const, overloadable))atan(float4);
2969#endif
2970
2971#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2972/*
2973 * Return the inverse tangent of y / x.
2974 *
2975 * Supported by API versions 9 and newer.
2976 */
2977extern float __attribute__((const, overloadable))atan2(float y, float x);
2978#endif
2979
2980#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2981/*
2982 * Return the inverse tangent of y / x.
2983 *
2984 * Supported by API versions 9 and newer.
2985 */
2986extern float2 __attribute__((const, overloadable))atan2(float2 y, float2 x);
2987#endif
2988
2989#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2990/*
2991 * Return the inverse tangent of y / x.
2992 *
2993 * Supported by API versions 9 and newer.
2994 */
2995extern float3 __attribute__((const, overloadable))atan2(float3 y, float3 x);
2996#endif
2997
2998#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2999/*
3000 * Return the inverse tangent of y / x.
3001 *
3002 * Supported by API versions 9 and newer.
3003 */
3004extern float4 __attribute__((const, overloadable))atan2(float4 y, float4 x);
3005#endif
3006
3007#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3008/*
3009 * Return the inverse hyperbolic tangent.
3010 *
3011 * Supported by API versions 9 and newer.
3012 */
3013extern float __attribute__((const, overloadable))atanh(float);
3014#endif
3015
3016#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3017/*
3018 * Return the inverse hyperbolic tangent.
3019 *
3020 * Supported by API versions 9 and newer.
3021 */
3022extern float2 __attribute__((const, overloadable))atanh(float2);
3023#endif
3024
3025#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3026/*
3027 * Return the inverse hyperbolic tangent.
3028 *
3029 * Supported by API versions 9 and newer.
3030 */
3031extern float3 __attribute__((const, overloadable))atanh(float3);
3032#endif
3033
3034#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3035/*
3036 * Return the inverse hyperbolic tangent.
3037 *
3038 * Supported by API versions 9 and newer.
3039 */
3040extern float4 __attribute__((const, overloadable))atanh(float4);
3041#endif
3042
3043#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3044/*
3045 * Return the inverse tangent divided by PI.
3046 *
3047 * Supported by API versions 9 and newer.
3048 */
3049extern float __attribute__((const, overloadable))atanpi(float);
3050#endif
3051
3052#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3053/*
3054 * Return the inverse tangent divided by PI.
3055 *
3056 * Supported by API versions 9 and newer.
3057 */
3058extern float2 __attribute__((const, overloadable))atanpi(float2);
3059#endif
3060
3061#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3062/*
3063 * Return the inverse tangent divided by PI.
3064 *
3065 * Supported by API versions 9 and newer.
3066 */
3067extern float3 __attribute__((const, overloadable))atanpi(float3);
3068#endif
3069
3070#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3071/*
3072 * Return the inverse tangent divided by PI.
3073 *
3074 * Supported by API versions 9 and newer.
3075 */
3076extern float4 __attribute__((const, overloadable))atanpi(float4);
3077#endif
3078
3079#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3080/*
3081 * Return the inverse tangent of y / x, divided by PI.
3082 *
3083 * Supported by API versions 9 and newer.
3084 */
3085extern float __attribute__((const, overloadable))atan2pi(float y, float x);
3086#endif
3087
3088#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3089/*
3090 * Return the inverse tangent of y / x, divided by PI.
3091 *
3092 * Supported by API versions 9 and newer.
3093 */
3094extern float2 __attribute__((const, overloadable))atan2pi(float2 y, float2 x);
3095#endif
3096
3097#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3098/*
3099 * Return the inverse tangent of y / x, divided by PI.
3100 *
3101 * Supported by API versions 9 and newer.
3102 */
3103extern float3 __attribute__((const, overloadable))atan2pi(float3 y, float3 x);
3104#endif
3105
3106#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3107/*
3108 * Return the inverse tangent of y / x, divided by PI.
3109 *
3110 * Supported by API versions 9 and newer.
3111 */
3112extern float4 __attribute__((const, overloadable))atan2pi(float4 y, float4 x);
3113#endif
3114
3115#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3116/*
3117 * Return the cube root.
3118 *
3119 * Supported by API versions 9 and newer.
3120 */
3121extern float __attribute__((const, overloadable))cbrt(float);
3122#endif
3123
3124#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3125/*
3126 * Return the cube root.
3127 *
3128 * Supported by API versions 9 and newer.
3129 */
3130extern float2 __attribute__((const, overloadable))cbrt(float2);
3131#endif
3132
3133#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3134/*
3135 * Return the cube root.
3136 *
3137 * Supported by API versions 9 and newer.
3138 */
3139extern float3 __attribute__((const, overloadable))cbrt(float3);
3140#endif
3141
3142#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3143/*
3144 * Return the cube root.
3145 *
3146 * Supported by API versions 9 and newer.
3147 */
3148extern float4 __attribute__((const, overloadable))cbrt(float4);
3149#endif
3150
3151#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3152/*
3153 * Return the smallest integer not less than a value.
3154 *
3155 * Supported by API versions 9 and newer.
3156 */
3157extern float __attribute__((const, overloadable))ceil(float);
3158#endif
3159
3160#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3161/*
3162 * Return the smallest integer not less than a value.
3163 *
3164 * Supported by API versions 9 and newer.
3165 */
3166extern float2 __attribute__((const, overloadable))ceil(float2);
3167#endif
3168
3169#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3170/*
3171 * Return the smallest integer not less than a value.
3172 *
3173 * Supported by API versions 9 and newer.
3174 */
3175extern float3 __attribute__((const, overloadable))ceil(float3);
3176#endif
3177
3178#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3179/*
3180 * Return the smallest integer not less than a value.
3181 *
3182 * Supported by API versions 9 and newer.
3183 */
3184extern float4 __attribute__((const, overloadable))ceil(float4);
3185#endif
3186
3187#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3188/*
3189 * Copy the sign bit from y to x.
3190 *
3191 * Supported by API versions 9 and newer.
3192 */
3193extern float __attribute__((const, overloadable))copysign(float x, float y);
3194#endif
3195
3196#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3197/*
3198 * Copy the sign bit from y to x.
3199 *
3200 * Supported by API versions 9 and newer.
3201 */
3202extern float2 __attribute__((const, overloadable))copysign(float2 x, float2 y);
3203#endif
3204
3205#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3206/*
3207 * Copy the sign bit from y to x.
3208 *
3209 * Supported by API versions 9 and newer.
3210 */
3211extern float3 __attribute__((const, overloadable))copysign(float3 x, float3 y);
3212#endif
3213
3214#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3215/*
3216 * Copy the sign bit from y to x.
3217 *
3218 * Supported by API versions 9 and newer.
3219 */
3220extern float4 __attribute__((const, overloadable))copysign(float4 x, float4 y);
3221#endif
3222
3223#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3224/*
3225 * Return the cosine.
3226 *
3227 * Supported by API versions 9 and newer.
3228 */
3229extern float __attribute__((const, overloadable))cos(float);
3230#endif
3231
3232#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3233/*
3234 * Return the cosine.
3235 *
3236 * Supported by API versions 9 and newer.
3237 */
3238extern float2 __attribute__((const, overloadable))cos(float2);
3239#endif
3240
3241#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3242/*
3243 * Return the cosine.
3244 *
3245 * Supported by API versions 9 and newer.
3246 */
3247extern float3 __attribute__((const, overloadable))cos(float3);
3248#endif
3249
3250#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3251/*
3252 * Return the cosine.
3253 *
3254 * Supported by API versions 9 and newer.
3255 */
3256extern float4 __attribute__((const, overloadable))cos(float4);
3257#endif
3258
3259#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3260/*
3261 * Return the hypebolic cosine.
3262 *
3263 * Supported by API versions 9 and newer.
3264 */
3265extern float __attribute__((const, overloadable))cosh(float);
3266#endif
3267
3268#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3269/*
3270 * Return the hypebolic cosine.
3271 *
3272 * Supported by API versions 9 and newer.
3273 */
3274extern float2 __attribute__((const, overloadable))cosh(float2);
3275#endif
3276
3277#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3278/*
3279 * Return the hypebolic cosine.
3280 *
3281 * Supported by API versions 9 and newer.
3282 */
3283extern float3 __attribute__((const, overloadable))cosh(float3);
3284#endif
3285
3286#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3287/*
3288 * Return the hypebolic cosine.
3289 *
3290 * Supported by API versions 9 and newer.
3291 */
3292extern float4 __attribute__((const, overloadable))cosh(float4);
3293#endif
3294
3295#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3296/*
3297 * Return the cosine of the value * PI.
3298 *
3299 * Supported by API versions 9 and newer.
3300 */
3301extern float __attribute__((const, overloadable))cospi(float);
3302#endif
3303
3304#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3305/*
3306 * Return the cosine of the value * PI.
3307 *
3308 * Supported by API versions 9 and newer.
3309 */
3310extern float2 __attribute__((const, overloadable))cospi(float2);
3311#endif
3312
3313#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3314/*
3315 * Return the cosine of the value * PI.
3316 *
3317 * Supported by API versions 9 and newer.
3318 */
3319extern float3 __attribute__((const, overloadable))cospi(float3);
3320#endif
3321
3322#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3323/*
3324 * Return the cosine of the value * PI.
3325 *
3326 * Supported by API versions 9 and newer.
3327 */
3328extern float4 __attribute__((const, overloadable))cospi(float4);
3329#endif
3330
3331#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3332/*
3333 * Return the complementary error function.
3334 *
3335 * Supported by API versions 9 and newer.
3336 */
3337extern float __attribute__((const, overloadable))erfc(float);
3338#endif
3339
3340#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3341/*
3342 * Return the complementary error function.
3343 *
3344 * Supported by API versions 9 and newer.
3345 */
3346extern float2 __attribute__((const, overloadable))erfc(float2);
3347#endif
3348
3349#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3350/*
3351 * Return the complementary error function.
3352 *
3353 * Supported by API versions 9 and newer.
3354 */
3355extern float3 __attribute__((const, overloadable))erfc(float3);
3356#endif
3357
3358#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3359/*
3360 * Return the complementary error function.
3361 *
3362 * Supported by API versions 9 and newer.
3363 */
3364extern float4 __attribute__((const, overloadable))erfc(float4);
3365#endif
3366
3367#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3368/*
3369 * Return the error function.
3370 *
3371 * Supported by API versions 9 and newer.
3372 */
3373extern float __attribute__((const, overloadable))erf(float);
3374#endif
3375
3376#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3377/*
3378 * Return the error function.
3379 *
3380 * Supported by API versions 9 and newer.
3381 */
3382extern float2 __attribute__((const, overloadable))erf(float2);
3383#endif
3384
3385#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3386/*
3387 * Return the error function.
3388 *
3389 * Supported by API versions 9 and newer.
3390 */
3391extern float3 __attribute__((const, overloadable))erf(float3);
3392#endif
3393
3394#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3395/*
3396 * Return the error function.
3397 *
3398 * Supported by API versions 9 and newer.
3399 */
3400extern float4 __attribute__((const, overloadable))erf(float4);
3401#endif
3402
3403#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3404/*
3405 * Return e ^ value.
3406 *
3407 * Supported by API versions 9 and newer.
3408 */
3409extern float __attribute__((const, overloadable))exp(float);
3410#endif
3411
3412#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3413/*
3414 * Return e ^ value.
3415 *
3416 * Supported by API versions 9 and newer.
3417 */
3418extern float2 __attribute__((const, overloadable))exp(float2);
3419#endif
3420
3421#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3422/*
3423 * Return e ^ value.
3424 *
3425 * Supported by API versions 9 and newer.
3426 */
3427extern float3 __attribute__((const, overloadable))exp(float3);
3428#endif
3429
3430#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3431/*
3432 * Return e ^ value.
3433 *
3434 * Supported by API versions 9 and newer.
3435 */
3436extern float4 __attribute__((const, overloadable))exp(float4);
3437#endif
3438
3439#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3440/*
3441 * Return 2 ^ value.
3442 *
3443 * Supported by API versions 9 and newer.
3444 */
3445extern float __attribute__((const, overloadable))exp2(float);
3446#endif
3447
3448#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3449/*
3450 * Return 2 ^ value.
3451 *
3452 * Supported by API versions 9 and newer.
3453 */
3454extern float2 __attribute__((const, overloadable))exp2(float2);
3455#endif
3456
3457#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3458/*
3459 * Return 2 ^ value.
3460 *
3461 * Supported by API versions 9 and newer.
3462 */
3463extern float3 __attribute__((const, overloadable))exp2(float3);
3464#endif
3465
3466#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3467/*
3468 * Return 2 ^ value.
3469 *
3470 * Supported by API versions 9 and newer.
3471 */
3472extern float4 __attribute__((const, overloadable))exp2(float4);
3473#endif
3474
3475#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3476/*
3477 * Return 10 ^ value.
3478 *
3479 * Supported by API versions 9 and newer.
3480 */
3481extern float __attribute__((const, overloadable))exp10(float);
3482#endif
3483
3484#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3485/*
3486 * Return 10 ^ value.
3487 *
3488 * Supported by API versions 9 and newer.
3489 */
3490extern float2 __attribute__((const, overloadable))exp10(float2);
3491#endif
3492
3493#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3494/*
3495 * Return 10 ^ value.
3496 *
3497 * Supported by API versions 9 and newer.
3498 */
3499extern float3 __attribute__((const, overloadable))exp10(float3);
3500#endif
3501
3502#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3503/*
3504 * Return 10 ^ value.
3505 *
3506 * Supported by API versions 9 and newer.
3507 */
3508extern float4 __attribute__((const, overloadable))exp10(float4);
3509#endif
3510
3511#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3512/*
3513 * Return (e ^ value) - 1.
3514 *
3515 * Supported by API versions 9 and newer.
3516 */
3517extern float __attribute__((const, overloadable))expm1(float);
3518#endif
3519
3520#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3521/*
3522 * Return (e ^ value) - 1.
3523 *
3524 * Supported by API versions 9 and newer.
3525 */
3526extern float2 __attribute__((const, overloadable))expm1(float2);
3527#endif
3528
3529#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3530/*
3531 * Return (e ^ value) - 1.
3532 *
3533 * Supported by API versions 9 and newer.
3534 */
3535extern float3 __attribute__((const, overloadable))expm1(float3);
3536#endif
3537
3538#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3539/*
3540 * Return (e ^ value) - 1.
3541 *
3542 * Supported by API versions 9 and newer.
3543 */
3544extern float4 __attribute__((const, overloadable))expm1(float4);
3545#endif
3546
3547#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3548/*
3549 * Return the absolute value of a value.
3550 *
3551 * Supported by API versions 9 and newer.
3552 */
3553extern float __attribute__((const, overloadable))fabs(float);
3554#endif
3555
3556#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3557/*
3558 * Return the absolute value of a value.
3559 *
3560 * Supported by API versions 9 and newer.
3561 */
3562extern float2 __attribute__((const, overloadable))fabs(float2);
3563#endif
3564
3565#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3566/*
3567 * Return the absolute value of a value.
3568 *
3569 * Supported by API versions 9 and newer.
3570 */
3571extern float3 __attribute__((const, overloadable))fabs(float3);
3572#endif
3573
3574#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3575/*
3576 * Return the absolute value of a value.
3577 *
3578 * Supported by API versions 9 and newer.
3579 */
3580extern float4 __attribute__((const, overloadable))fabs(float4);
3581#endif
3582
3583#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3584/*
3585 * Return the positive difference between two values.
3586 *
3587 * Supported by API versions 9 and newer.
3588 */
3589extern float __attribute__((const, overloadable))fdim(float, float);
3590#endif
3591
3592#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3593/*
3594 * Return the positive difference between two values.
3595 *
3596 * Supported by API versions 9 and newer.
3597 */
3598extern float2 __attribute__((const, overloadable))fdim(float2, float2);
3599#endif
3600
3601#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3602/*
3603 * Return the positive difference between two values.
3604 *
3605 * Supported by API versions 9 and newer.
3606 */
3607extern float3 __attribute__((const, overloadable))fdim(float3, float3);
3608#endif
3609
3610#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3611/*
3612 * Return the positive difference between two values.
3613 *
3614 * Supported by API versions 9 and newer.
3615 */
3616extern float4 __attribute__((const, overloadable))fdim(float4, float4);
3617#endif
3618
3619#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3620/*
3621 * Return the smallest integer not greater than a value.
3622 *
3623 * Supported by API versions 9 and newer.
3624 */
3625extern float __attribute__((const, overloadable))floor(float);
3626#endif
3627
3628#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3629/*
3630 * Return the smallest integer not greater than a value.
3631 *
3632 * Supported by API versions 9 and newer.
3633 */
3634extern float2 __attribute__((const, overloadable))floor(float2);
3635#endif
3636
3637#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3638/*
3639 * Return the smallest integer not greater than a value.
3640 *
3641 * Supported by API versions 9 and newer.
3642 */
3643extern float3 __attribute__((const, overloadable))floor(float3);
3644#endif
3645
3646#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3647/*
3648 * Return the smallest integer not greater than a value.
3649 *
3650 * Supported by API versions 9 and newer.
3651 */
3652extern float4 __attribute__((const, overloadable))floor(float4);
3653#endif
3654
3655#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3656/*
3657 * Return (a * b) + c.
3658 *
3659 * Supported by API versions 9 and newer.
3660 */
3661extern float __attribute__((const, overloadable))fma(float a, float b, float c);
3662#endif
3663
3664#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3665/*
3666 * Return (a * b) + c.
3667 *
3668 * Supported by API versions 9 and newer.
3669 */
3670extern float2 __attribute__((const, overloadable))fma(float2 a, float2 b, float2 c);
3671#endif
3672
3673#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3674/*
3675 * Return (a * b) + c.
3676 *
3677 * Supported by API versions 9 and newer.
3678 */
3679extern float3 __attribute__((const, overloadable))fma(float3 a, float3 b, float3 c);
3680#endif
3681
3682#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3683/*
3684 * Return (a * b) + c.
3685 *
3686 * Supported by API versions 9 and newer.
3687 */
3688extern float4 __attribute__((const, overloadable))fma(float4 a, float4 b, float4 c);
3689#endif
3690
3691#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3692/*
3693 * Return (x < y ? y : x)
3694 *
3695 * Supported by API versions 9 and newer.
3696 */
3697extern float __attribute__((const, overloadable))fmax(float x, float y);
3698#endif
3699
3700#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3701/*
3702 * Return (x < y ? y : x)
3703 *
3704 * Supported by API versions 9 and newer.
3705 */
3706extern float2 __attribute__((const, overloadable))fmax(float2 x, float2 y);
3707#endif
3708
3709#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3710/*
3711 * Return (x < y ? y : x)
3712 *
3713 * Supported by API versions 9 and newer.
3714 */
3715extern float3 __attribute__((const, overloadable))fmax(float3 x, float3 y);
3716#endif
3717
3718#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3719/*
3720 * Return (x < y ? y : x)
3721 *
3722 * Supported by API versions 9 and newer.
3723 */
3724extern float4 __attribute__((const, overloadable))fmax(float4 x, float4 y);
3725#endif
3726
3727#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3728/*
3729 * Return (x < y ? y : x)
3730 *
3731 * Supported by API versions 9 and newer.
3732 */
3733extern float __attribute__((const, overloadable))fmax(float x, float y);
3734#endif
3735
3736#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3737/*
3738 * Return (x < y ? y : x)
3739 *
3740 * Supported by API versions 9 and newer.
3741 */
3742extern float2 __attribute__((const, overloadable))fmax(float2 x, float y);
3743#endif
3744
3745#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3746/*
3747 * Return (x < y ? y : x)
3748 *
3749 * Supported by API versions 9 and newer.
3750 */
3751extern float3 __attribute__((const, overloadable))fmax(float3 x, float y);
3752#endif
3753
3754#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3755/*
3756 * Return (x < y ? y : x)
3757 *
3758 * Supported by API versions 9 and newer.
3759 */
3760extern float4 __attribute__((const, overloadable))fmax(float4 x, float y);
3761#endif
3762
3763#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3764/*
3765 * Return (x > y ? y : x)
3766 *
3767 * Supported by API versions 9 and newer.
3768 */
3769extern float __attribute__((const, overloadable))fmin(float x, float y);
3770#endif
3771
3772#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3773/*
3774 * Return (x > y ? y : x)
3775 *
3776 * Supported by API versions 9 and newer.
3777 */
3778extern float2 __attribute__((const, overloadable))fmin(float2 x, float2 y);
3779#endif
3780
3781#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3782/*
3783 * Return (x > y ? y : x)
3784 *
3785 * Supported by API versions 9 and newer.
3786 */
3787extern float3 __attribute__((const, overloadable))fmin(float3 x, float3 y);
3788#endif
3789
3790#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3791/*
3792 * Return (x > y ? y : x)
3793 *
3794 * Supported by API versions 9 and newer.
3795 */
3796extern float4 __attribute__((const, overloadable))fmin(float4 x, float4 y);
3797#endif
3798
3799#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3800/*
3801 * Return (x > y ? y : x)
3802 *
3803 * Supported by API versions 9 and newer.
3804 */
3805extern float __attribute__((const, overloadable))fmin(float x, float y);
3806#endif
3807
3808#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3809/*
3810 * Return (x > y ? y : x)
3811 *
3812 * Supported by API versions 9 and newer.
3813 */
3814extern float2 __attribute__((const, overloadable))fmin(float2 x, float y);
3815#endif
3816
3817#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3818/*
3819 * Return (x > y ? y : x)
3820 *
3821 * Supported by API versions 9 and newer.
3822 */
3823extern float3 __attribute__((const, overloadable))fmin(float3 x, float y);
3824#endif
3825
3826#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3827/*
3828 * Return (x > y ? y : x)
3829 *
3830 * Supported by API versions 9 and newer.
3831 */
3832extern float4 __attribute__((const, overloadable))fmin(float4 x, float y);
3833#endif
3834
3835#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3836/*
3837 * Return the remainder from x / y
3838 *
3839 * Supported by API versions 9 and newer.
3840 */
3841extern float __attribute__((const, overloadable))fmod(float x, float y);
3842#endif
3843
3844#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3845/*
3846 * Return the remainder from x / y
3847 *
3848 * Supported by API versions 9 and newer.
3849 */
3850extern float2 __attribute__((const, overloadable))fmod(float2 x, float2 y);
3851#endif
3852
3853#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3854/*
3855 * Return the remainder from x / y
3856 *
3857 * Supported by API versions 9 and newer.
3858 */
3859extern float3 __attribute__((const, overloadable))fmod(float3 x, float3 y);
3860#endif
3861
3862#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3863/*
3864 * Return the remainder from x / y
3865 *
3866 * Supported by API versions 9 and newer.
3867 */
3868extern float4 __attribute__((const, overloadable))fmod(float4 x, float4 y);
3869#endif
3870
3871#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3872/*
3873 * Return fractional part of v
3874 *
3875 * @param iptr iptr[0] will be set to the floor of the input value.
3876 *
3877 * Supported by API versions 9 and newer.
3878 */
3879extern float __attribute__((const, overloadable))fract(float v, float *iptr);
3880#endif
3881
3882#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3883/*
3884 * Return fractional part of v
3885 *
3886 * @param iptr iptr[0] will be set to the floor of the input value.
3887 *
3888 * Supported by API versions 9 and newer.
3889 */
3890extern float2 __attribute__((const, overloadable))fract(float2 v, float2 *iptr);
3891#endif
3892
3893#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3894/*
3895 * Return fractional part of v
3896 *
3897 * @param iptr iptr[0] will be set to the floor of the input value.
3898 *
3899 * Supported by API versions 9 and newer.
3900 */
3901extern float3 __attribute__((const, overloadable))fract(float3 v, float3 *iptr);
3902#endif
3903
3904#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3905/*
3906 * Return fractional part of v
3907 *
3908 * @param iptr iptr[0] will be set to the floor of the input value.
3909 *
3910 * Supported by API versions 9 and newer.
3911 */
3912extern float4 __attribute__((const, overloadable))fract(float4 v, float4 *iptr);
3913#endif
3914
3915#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3916/*
3917 * Return fractional part of v
3918 *
3919 * Supported by API versions 9 and newer.
3920 */
3921static float __attribute__((const, overloadable))fract(float v) {
3922 float unused;
3923 return fract(v, &unused);
3924}
3925#endif
3926
3927#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3928/*
3929 * Return fractional part of v
3930 *
3931 * Supported by API versions 9 and newer.
3932 */
3933static float2 __attribute__((const, overloadable))fract(float2 v) {
3934 float2 unused;
3935 return fract(v, &unused);
3936}
3937#endif
3938
3939#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3940/*
3941 * Return fractional part of v
3942 *
3943 * Supported by API versions 9 and newer.
3944 */
3945static float3 __attribute__((const, overloadable))fract(float3 v) {
3946 float3 unused;
3947 return fract(v, &unused);
3948}
3949#endif
3950
3951#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3952/*
3953 * Return fractional part of v
3954 *
3955 * Supported by API versions 9 and newer.
3956 */
3957static float4 __attribute__((const, overloadable))fract(float4 v) {
3958 float4 unused;
3959 return fract(v, &unused);
3960}
3961#endif
3962
3963#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3964/*
3965 * Return the mantissa and place the exponent into iptr[0]
3966 *
3967 * @param v Supports float, float2, float3, float4.
3968 *
3969 * Supported by API versions 9 and newer.
3970 */
3971extern float __attribute__((const, overloadable))frexp(float v, int *iptr);
3972#endif
3973
3974#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3975/*
3976 * Return the mantissa and place the exponent into iptr[0]
3977 *
3978 * @param v Supports float, float2, float3, float4.
3979 *
3980 * Supported by API versions 9 and newer.
3981 */
3982extern float2 __attribute__((const, overloadable))frexp(float2 v, int2 *iptr);
3983#endif
3984
3985#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3986/*
3987 * Return the mantissa and place the exponent into iptr[0]
3988 *
3989 * @param v Supports float, float2, float3, float4.
3990 *
3991 * Supported by API versions 9 and newer.
3992 */
3993extern float3 __attribute__((const, overloadable))frexp(float3 v, int3 *iptr);
3994#endif
3995
3996#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3997/*
3998 * Return the mantissa and place the exponent into iptr[0]
3999 *
4000 * @param v Supports float, float2, float3, float4.
4001 *
4002 * Supported by API versions 9 and newer.
4003 */
4004extern float4 __attribute__((const, overloadable))frexp(float4 v, int4 *iptr);
4005#endif
4006
4007#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4008/*
4009 * Return sqrt(x*x + y*y)
4010 *
4011 * Supported by API versions 9 and newer.
4012 */
4013extern float __attribute__((const, overloadable))hypot(float x, float y);
4014#endif
4015
4016#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4017/*
4018 * Return sqrt(x*x + y*y)
4019 *
4020 * Supported by API versions 9 and newer.
4021 */
4022extern float2 __attribute__((const, overloadable))hypot(float2 x, float2 y);
4023#endif
4024
4025#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4026/*
4027 * Return sqrt(x*x + y*y)
4028 *
4029 * Supported by API versions 9 and newer.
4030 */
4031extern float3 __attribute__((const, overloadable))hypot(float3 x, float3 y);
4032#endif
4033
4034#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4035/*
4036 * Return sqrt(x*x + y*y)
4037 *
4038 * Supported by API versions 9 and newer.
4039 */
4040extern float4 __attribute__((const, overloadable))hypot(float4 x, float4 y);
4041#endif
4042
4043#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4044/*
4045 * Return the integer exponent of a value
4046 *
4047 * Supported by API versions 9 and newer.
4048 */
4049extern int __attribute__((const, overloadable))ilogb(float);
4050#endif
4051
4052#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4053/*
4054 * Return the integer exponent of a value
4055 *
4056 * Supported by API versions 9 and newer.
4057 */
4058extern int2 __attribute__((const, overloadable))ilogb(float2);
4059#endif
4060
4061#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4062/*
4063 * Return the integer exponent of a value
4064 *
4065 * Supported by API versions 9 and newer.
4066 */
4067extern int3 __attribute__((const, overloadable))ilogb(float3);
4068#endif
4069
4070#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4071/*
4072 * Return the integer exponent of a value
4073 *
4074 * Supported by API versions 9 and newer.
4075 */
4076extern int4 __attribute__((const, overloadable))ilogb(float4);
4077#endif
4078
4079#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4080/*
4081 * Return (x * 2^y)
4082 *
4083 * Supported by API versions 9 and newer.
4084 */
4085extern float __attribute__((const, overloadable))ilogb(float, int);
4086#endif
4087
4088#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4089/*
4090 * Return (x * 2^y)
4091 *
4092 * Supported by API versions 9 and newer.
4093 */
4094extern float2 __attribute__((const, overloadable))ilogb(float2, int2);
4095#endif
4096
4097#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4098/*
4099 * Return (x * 2^y)
4100 *
4101 * Supported by API versions 9 and newer.
4102 */
4103extern float3 __attribute__((const, overloadable))ilogb(float3, int3);
4104#endif
4105
4106#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4107/*
4108 * Return (x * 2^y)
4109 *
4110 * Supported by API versions 9 and newer.
4111 */
4112extern float4 __attribute__((const, overloadable))ilogb(float4, int4);
4113#endif
4114
4115#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4116/*
4117 * Return (x * 2^y)
4118 *
4119 * Supported by API versions 9 and newer.
4120 */
4121extern float __attribute__((const, overloadable))ilogb(float, int);
4122#endif
4123
4124#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4125/*
4126 * Return (x * 2^y)
4127 *
4128 * Supported by API versions 9 and newer.
4129 */
4130extern float2 __attribute__((const, overloadable))ilogb(float2, int);
4131#endif
4132
4133#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4134/*
4135 * Return (x * 2^y)
4136 *
4137 * Supported by API versions 9 and newer.
4138 */
4139extern float3 __attribute__((const, overloadable))ilogb(float3, int);
4140#endif
4141
4142#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4143/*
4144 * Return (x * 2^y)
4145 *
4146 * Supported by API versions 9 and newer.
4147 */
4148extern float4 __attribute__((const, overloadable))ilogb(float4, int);
4149#endif
4150
4151#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4152/*
4153 * Return (x * 2^y)
4154 *
4155 * @param x Supports 1,2,3,4 components
4156 * @param y Supports single component or matching vector.
4157 *
4158 * Supported by API versions 9 and newer.
4159 */
4160extern float __attribute__((const, overloadable))ldexp(float x, int y);
4161#endif
4162
4163#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4164/*
4165 * Return (x * 2^y)
4166 *
4167 * @param x Supports 1,2,3,4 components
4168 * @param y Supports single component or matching vector.
4169 *
4170 * Supported by API versions 9 and newer.
4171 */
4172extern float2 __attribute__((const, overloadable))ldexp(float2 x, int2 y);
4173#endif
4174
4175#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4176/*
4177 * Return (x * 2^y)
4178 *
4179 * @param x Supports 1,2,3,4 components
4180 * @param y Supports single component or matching vector.
4181 *
4182 * Supported by API versions 9 and newer.
4183 */
4184extern float3 __attribute__((const, overloadable))ldexp(float3 x, int3 y);
4185#endif
4186
4187#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4188/*
4189 * Return (x * 2^y)
4190 *
4191 * @param x Supports 1,2,3,4 components
4192 * @param y Supports single component or matching vector.
4193 *
4194 * Supported by API versions 9 and newer.
4195 */
4196extern float4 __attribute__((const, overloadable))ldexp(float4 x, int4 y);
4197#endif
4198
4199#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4200/*
4201 * Return (x * 2^y)
4202 *
4203 * @param x Supports 1,2,3,4 components
4204 * @param y Supports single component or matching vector.
4205 *
4206 * Supported by API versions 9 and newer.
4207 */
4208extern float2 __attribute__((const, overloadable))ldexp(float2 x, int y);
4209#endif
4210
4211#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4212/*
4213 * Return (x * 2^y)
4214 *
4215 * @param x Supports 1,2,3,4 components
4216 * @param y Supports single component or matching vector.
4217 *
4218 * Supported by API versions 9 and newer.
4219 */
4220extern float3 __attribute__((const, overloadable))ldexp(float3 x, int y);
4221#endif
4222
4223#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4224/*
4225 * Return (x * 2^y)
4226 *
4227 * @param x Supports 1,2,3,4 components
4228 * @param y Supports single component or matching vector.
4229 *
4230 * Supported by API versions 9 and newer.
4231 */
4232extern float4 __attribute__((const, overloadable))ldexp(float4 x, int y);
4233#endif
4234
4235#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4236/*
4237 * Return the log gamma and sign
4238 *
4239 * Supported by API versions 9 and newer.
4240 */
4241extern float __attribute__((const, overloadable))lgamma(float x);
4242#endif
4243
4244#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4245/*
4246 * Return the log gamma and sign
4247 *
4248 * Supported by API versions 9 and newer.
4249 */
4250extern float2 __attribute__((const, overloadable))lgamma(float2 x);
4251#endif
4252
4253#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4254/*
4255 * Return the log gamma and sign
4256 *
4257 * Supported by API versions 9 and newer.
4258 */
4259extern float3 __attribute__((const, overloadable))lgamma(float3 x);
4260#endif
4261
4262#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4263/*
4264 * Return the log gamma and sign
4265 *
4266 * Supported by API versions 9 and newer.
4267 */
4268extern float4 __attribute__((const, overloadable))lgamma(float4 x);
4269#endif
4270
4271#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4272/*
4273 * Return the log gamma and sign
4274 *
4275 * Supported by API versions 9 and newer.
4276 */
4277extern float __attribute__((const, overloadable))lgamma(float x, int *y);
4278#endif
4279
4280#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4281/*
4282 * Return the log gamma and sign
4283 *
4284 * Supported by API versions 9 and newer.
4285 */
4286extern float2 __attribute__((const, overloadable))lgamma(float2 x, int2 *y);
4287#endif
4288
4289#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4290/*
4291 * Return the log gamma and sign
4292 *
4293 * Supported by API versions 9 and newer.
4294 */
4295extern float3 __attribute__((const, overloadable))lgamma(float3 x, int3 *y);
4296#endif
4297
4298#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4299/*
4300 * Return the log gamma and sign
4301 *
4302 * Supported by API versions 9 and newer.
4303 */
4304extern float4 __attribute__((const, overloadable))lgamma(float4 x, int4 *y);
4305#endif
4306
4307#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4308/*
4309 * Return the natural logarithm.
4310 *
4311 * Supported by API versions 9 and newer.
4312 */
4313extern float __attribute__((const, overloadable))log(float x);
4314#endif
4315
4316#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4317/*
4318 * Return the natural logarithm.
4319 *
4320 * Supported by API versions 9 and newer.
4321 */
4322extern float2 __attribute__((const, overloadable))log(float2 x);
4323#endif
4324
4325#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4326/*
4327 * Return the natural logarithm.
4328 *
4329 * Supported by API versions 9 and newer.
4330 */
4331extern float3 __attribute__((const, overloadable))log(float3 x);
4332#endif
4333
4334#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4335/*
4336 * Return the natural logarithm.
4337 *
4338 * Supported by API versions 9 and newer.
4339 */
4340extern float4 __attribute__((const, overloadable))log(float4 x);
4341#endif
4342
4343#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4344/*
4345 * Return the base 2 logarithm.
4346 *
4347 * Supported by API versions 9 and newer.
4348 */
4349extern float __attribute__((const, overloadable))log2(float x);
4350#endif
4351
4352#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4353/*
4354 * Return the base 2 logarithm.
4355 *
4356 * Supported by API versions 9 and newer.
4357 */
4358extern float2 __attribute__((const, overloadable))log2(float2 x);
4359#endif
4360
4361#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4362/*
4363 * Return the base 2 logarithm.
4364 *
4365 * Supported by API versions 9 and newer.
4366 */
4367extern float3 __attribute__((const, overloadable))log2(float3 x);
4368#endif
4369
4370#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4371/*
4372 * Return the base 2 logarithm.
4373 *
4374 * Supported by API versions 9 and newer.
4375 */
4376extern float4 __attribute__((const, overloadable))log2(float4 x);
4377#endif
4378
4379#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4380/*
4381 * Return the base 10 logarithm.
4382 *
4383 * Supported by API versions 9 and newer.
4384 */
4385extern float __attribute__((const, overloadable))log10(float x);
4386#endif
4387
4388#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4389/*
4390 * Return the base 10 logarithm.
4391 *
4392 * Supported by API versions 9 and newer.
4393 */
4394extern float2 __attribute__((const, overloadable))log10(float2 x);
4395#endif
4396
4397#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4398/*
4399 * Return the base 10 logarithm.
4400 *
4401 * Supported by API versions 9 and newer.
4402 */
4403extern float3 __attribute__((const, overloadable))log10(float3 x);
4404#endif
4405
4406#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4407/*
4408 * Return the base 10 logarithm.
4409 *
4410 * Supported by API versions 9 and newer.
4411 */
4412extern float4 __attribute__((const, overloadable))log10(float4 x);
4413#endif
4414
4415#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4416/*
4417 * Return the natural logarithm of (v + 1.0f)
4418 *
4419 * Supported by API versions 9 and newer.
4420 */
4421extern float __attribute__((const, overloadable))log1p(float x);
4422#endif
4423
4424#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4425/*
4426 * Return the natural logarithm of (v + 1.0f)
4427 *
4428 * Supported by API versions 9 and newer.
4429 */
4430extern float2 __attribute__((const, overloadable))log1p(float2 x);
4431#endif
4432
4433#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4434/*
4435 * Return the natural logarithm of (v + 1.0f)
4436 *
4437 * Supported by API versions 9 and newer.
4438 */
4439extern float3 __attribute__((const, overloadable))log1p(float3 x);
4440#endif
4441
4442#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4443/*
4444 * Return the natural logarithm of (v + 1.0f)
4445 *
4446 * Supported by API versions 9 and newer.
4447 */
4448extern float4 __attribute__((const, overloadable))log1p(float4 x);
4449#endif
4450
4451#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4452/*
4453 * Compute the exponent of the value.
4454 *
4455 * Supported by API versions 9 and newer.
4456 */
4457extern float __attribute__((const, overloadable))logb(float x);
4458#endif
4459
4460#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4461/*
4462 * Compute the exponent of the value.
4463 *
4464 * Supported by API versions 9 and newer.
4465 */
4466extern float2 __attribute__((const, overloadable))logb(float2 x);
4467#endif
4468
4469#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4470/*
4471 * Compute the exponent of the value.
4472 *
4473 * Supported by API versions 9 and newer.
4474 */
4475extern float3 __attribute__((const, overloadable))logb(float3 x);
4476#endif
4477
4478#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4479/*
4480 * Compute the exponent of the value.
4481 *
4482 * Supported by API versions 9 and newer.
4483 */
4484extern float4 __attribute__((const, overloadable))logb(float4 x);
4485#endif
4486
4487#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4488/*
4489 * Compute (a * b) + c
4490 *
4491 * Supported by API versions 9 and newer.
4492 */
4493extern float __attribute__((const, overloadable))mad(float a, float b, float c);
4494#endif
4495
4496#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4497/*
4498 * Compute (a * b) + c
4499 *
4500 * Supported by API versions 9 and newer.
4501 */
4502extern float2 __attribute__((const, overloadable))mad(float2 a, float2 b, float2 c);
4503#endif
4504
4505#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4506/*
4507 * Compute (a * b) + c
4508 *
4509 * Supported by API versions 9 and newer.
4510 */
4511extern float3 __attribute__((const, overloadable))mad(float3 a, float3 b, float3 c);
4512#endif
4513
4514#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4515/*
4516 * Compute (a * b) + c
4517 *
4518 * Supported by API versions 9 and newer.
4519 */
4520extern float4 __attribute__((const, overloadable))mad(float4 a, float4 b, float4 c);
4521#endif
4522
4523#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4524/*
4525 * Return the integral and fractional components of a number.
4526 *
4527 * @param x Source value
4528 * @param iret iret[0] will be set to the integral portion of the number.
4529 * @return The floating point portion of the value.
4530 *
4531 * Supported by API versions 9 and newer.
4532 */
4533extern float __attribute__((const, overloadable))modf(float x, float *iret);
4534#endif
4535
4536#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4537/*
4538 * Return the integral and fractional components of a number.
4539 *
4540 * @param x Source value
4541 * @param iret iret[0] will be set to the integral portion of the number.
4542 * @return The floating point portion of the value.
4543 *
4544 * Supported by API versions 9 and newer.
4545 */
4546extern float2 __attribute__((const, overloadable))modf(float2 x, float2 *iret);
4547#endif
4548
4549#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4550/*
4551 * Return the integral and fractional components of a number.
4552 *
4553 * @param x Source value
4554 * @param iret iret[0] will be set to the integral portion of the number.
4555 * @return The floating point portion of the value.
4556 *
4557 * Supported by API versions 9 and newer.
4558 */
4559extern float3 __attribute__((const, overloadable))modf(float3 x, float3 *iret);
4560#endif
4561
4562#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4563/*
4564 * Return the integral and fractional components of a number.
4565 *
4566 * @param x Source value
4567 * @param iret iret[0] will be set to the integral portion of the number.
4568 * @return The floating point portion of the value.
4569 *
4570 * Supported by API versions 9 and newer.
4571 */
4572extern float4 __attribute__((const, overloadable))modf(float4 x, float4 *iret);
4573#endif
4574
4575#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4576/*
4577 * generate a nan
4578 *
4579 * Supported by API versions 9 and newer.
4580 */
4581extern float __attribute__((const, overloadable))nan(uint);
4582#endif
4583
4584#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4585/*
4586 * Return the next floating point number from x towards y.
4587 *
4588 * Supported by API versions 9 and newer.
4589 */
4590extern float __attribute__((const, overloadable))nextafter(float x, float y);
4591#endif
4592
4593#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4594/*
4595 * Return the next floating point number from x towards y.
4596 *
4597 * Supported by API versions 9 and newer.
4598 */
4599extern float2 __attribute__((const, overloadable))nextafter(float2 x, float2 y);
4600#endif
4601
4602#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4603/*
4604 * Return the next floating point number from x towards y.
4605 *
4606 * Supported by API versions 9 and newer.
4607 */
4608extern float3 __attribute__((const, overloadable))nextafter(float3 x, float3 y);
4609#endif
4610
4611#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4612/*
4613 * Return the next floating point number from x towards y.
4614 *
4615 * Supported by API versions 9 and newer.
4616 */
4617extern float4 __attribute__((const, overloadable))nextafter(float4 x, float4 y);
4618#endif
4619
4620#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4621/*
4622 * Return x ^ y.
4623 *
4624 * Supported by API versions 9 and newer.
4625 */
4626extern float __attribute__((const, overloadable))pow(float x, float y);
4627#endif
4628
4629#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4630/*
4631 * Return x ^ y.
4632 *
4633 * Supported by API versions 9 and newer.
4634 */
4635extern float2 __attribute__((const, overloadable))pow(float2 x, float2 y);
4636#endif
4637
4638#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4639/*
4640 * Return x ^ y.
4641 *
4642 * Supported by API versions 9 and newer.
4643 */
4644extern float3 __attribute__((const, overloadable))pow(float3 x, float3 y);
4645#endif
4646
4647#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4648/*
4649 * Return x ^ y.
4650 *
4651 * Supported by API versions 9 and newer.
4652 */
4653extern float4 __attribute__((const, overloadable))pow(float4 x, float4 y);
4654#endif
4655
4656#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4657/*
4658 * Return x ^ y.
4659 *
4660 * Supported by API versions 9 and newer.
4661 */
4662extern float __attribute__((const, overloadable))pown(float x, int y);
4663#endif
4664
4665#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4666/*
4667 * Return x ^ y.
4668 *
4669 * Supported by API versions 9 and newer.
4670 */
4671extern float2 __attribute__((const, overloadable))pown(float2 x, int2 y);
4672#endif
4673
4674#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4675/*
4676 * Return x ^ y.
4677 *
4678 * Supported by API versions 9 and newer.
4679 */
4680extern float3 __attribute__((const, overloadable))pown(float3 x, int3 y);
4681#endif
4682
4683#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4684/*
4685 * Return x ^ y.
4686 *
4687 * Supported by API versions 9 and newer.
4688 */
4689extern float4 __attribute__((const, overloadable))pown(float4 x, int4 y);
4690#endif
4691
4692#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4693/*
4694 * Return x ^ y.
4695 * y must be > 0
4696 *
4697 * Supported by API versions 9 and newer.
4698 */
4699extern float __attribute__((const, overloadable))powr(float x, float y);
4700#endif
4701
4702#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4703/*
4704 * Return x ^ y.
4705 * y must be > 0
4706 *
4707 * Supported by API versions 9 and newer.
4708 */
4709extern float2 __attribute__((const, overloadable))powr(float2 x, float2 y);
4710#endif
4711
4712#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4713/*
4714 * Return x ^ y.
4715 * y must be > 0
4716 *
4717 * Supported by API versions 9 and newer.
4718 */
4719extern float3 __attribute__((const, overloadable))powr(float3 x, float3 y);
4720#endif
4721
4722#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4723/*
4724 * Return x ^ y.
4725 * y must be > 0
4726 *
4727 * Supported by API versions 9 and newer.
4728 */
4729extern float4 __attribute__((const, overloadable))powr(float4 x, float4 y);
4730#endif
4731
4732#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4733/*
4734 * Return round x/y to the nearest integer then compute the remander.
4735 *
4736 * Supported by API versions 9 and newer.
4737 */
4738extern float __attribute__((const, overloadable))remainder(float x, float y);
4739#endif
4740
4741#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4742/*
4743 * Return round x/y to the nearest integer then compute the remander.
4744 *
4745 * Supported by API versions 9 and newer.
4746 */
4747extern float2 __attribute__((const, overloadable))remainder(float2 x, float2 y);
4748#endif
4749
4750#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4751/*
4752 * Return round x/y to the nearest integer then compute the remander.
4753 *
4754 * Supported by API versions 9 and newer.
4755 */
4756extern float3 __attribute__((const, overloadable))remainder(float3 x, float3 y);
4757#endif
4758
4759#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4760/*
4761 * Return round x/y to the nearest integer then compute the remander.
4762 *
4763 * Supported by API versions 9 and newer.
4764 */
4765extern float4 __attribute__((const, overloadable))remainder(float4 x, float4 y);
4766#endif
4767
4768#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4769/*
4770 * todo
4771 *
4772 * Supported by API versions 9 and newer.
4773 */
4774extern float __attribute__((const, overloadable))remquo(float, float, int *);
4775#endif
4776
4777#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4778/*
4779 * todo
4780 *
4781 * Supported by API versions 9 and newer.
4782 */
4783extern float2 __attribute__((const, overloadable))remquo(float2, float2, int2 *);
4784#endif
4785
4786#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4787/*
4788 * todo
4789 *
4790 * Supported by API versions 9 and newer.
4791 */
4792extern float3 __attribute__((const, overloadable))remquo(float3, float3, int3 *);
4793#endif
4794
4795#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4796/*
4797 * todo
4798 *
4799 * Supported by API versions 9 and newer.
4800 */
4801extern float4 __attribute__((const, overloadable))remquo(float4, float4, int4 *);
4802#endif
4803
4804#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4805/*
4806 * Round to the nearest integral value.
4807 *
4808 * Supported by API versions 9 and newer.
4809 */
4810extern float __attribute__((const, overloadable))rint(float);
4811#endif
4812
4813#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4814/*
4815 * Round to the nearest integral value.
4816 *
4817 * Supported by API versions 9 and newer.
4818 */
4819extern float2 __attribute__((const, overloadable))rint(float2);
4820#endif
4821
4822#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4823/*
4824 * Round to the nearest integral value.
4825 *
4826 * Supported by API versions 9 and newer.
4827 */
4828extern float3 __attribute__((const, overloadable))rint(float3);
4829#endif
4830
4831#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4832/*
4833 * Round to the nearest integral value.
4834 *
4835 * Supported by API versions 9 and newer.
4836 */
4837extern float4 __attribute__((const, overloadable))rint(float4);
4838#endif
4839
4840#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4841/*
4842 * Compute the Nth root of a value.
4843 *
4844 * Supported by API versions 9 and newer.
4845 */
4846extern float __attribute__((const, overloadable))rootn(float v, int n);
4847#endif
4848
4849#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4850/*
4851 * Compute the Nth root of a value.
4852 *
4853 * Supported by API versions 9 and newer.
4854 */
4855extern float2 __attribute__((const, overloadable))rootn(float2 v, int2 n);
4856#endif
4857
4858#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4859/*
4860 * Compute the Nth root of a value.
4861 *
4862 * Supported by API versions 9 and newer.
4863 */
4864extern float3 __attribute__((const, overloadable))rootn(float3 v, int3 n);
4865#endif
4866
4867#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4868/*
4869 * Compute the Nth root of a value.
4870 *
4871 * Supported by API versions 9 and newer.
4872 */
4873extern float4 __attribute__((const, overloadable))rootn(float4 v, int4 n);
4874#endif
4875
4876#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4877/*
4878 * Round to the nearest integral value. Half values are rounded away from zero.
4879 *
4880 * Supported by API versions 9 and newer.
4881 */
4882extern float __attribute__((const, overloadable))round(float);
4883#endif
4884
4885#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4886/*
4887 * Round to the nearest integral value. Half values are rounded away from zero.
4888 *
4889 * Supported by API versions 9 and newer.
4890 */
4891extern float2 __attribute__((const, overloadable))round(float2);
4892#endif
4893
4894#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4895/*
4896 * Round to the nearest integral value. Half values are rounded away from zero.
4897 *
4898 * Supported by API versions 9 and newer.
4899 */
4900extern float3 __attribute__((const, overloadable))round(float3);
4901#endif
4902
4903#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4904/*
4905 * Round to the nearest integral value. Half values are rounded away from zero.
4906 *
4907 * Supported by API versions 9 and newer.
4908 */
4909extern float4 __attribute__((const, overloadable))round(float4);
4910#endif
4911
4912#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4913/*
4914 * Return (1 / sqrt(value)).
4915 *
4916 * Supported by API versions 9 and newer.
4917 */
4918extern float __attribute__((const, overloadable))rsqrt(float);
4919#endif
4920
4921#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4922/*
4923 * Return (1 / sqrt(value)).
4924 *
4925 * Supported by API versions 9 and newer.
4926 */
4927extern float2 __attribute__((const, overloadable))rsqrt(float2);
4928#endif
4929
4930#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4931/*
4932 * Return (1 / sqrt(value)).
4933 *
4934 * Supported by API versions 9 and newer.
4935 */
4936extern float3 __attribute__((const, overloadable))rsqrt(float3);
4937#endif
4938
4939#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4940/*
4941 * Return (1 / sqrt(value)).
4942 *
4943 * Supported by API versions 9 and newer.
4944 */
4945extern float4 __attribute__((const, overloadable))rsqrt(float4);
4946#endif
4947
4948#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4949/*
4950 * Return the square root of a value.
4951 *
4952 * Supported by API versions 9 and newer.
4953 */
4954extern float __attribute__((const, overloadable))sqrt(float);
4955#endif
4956
4957#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4958/*
4959 * Return the square root of a value.
4960 *
4961 * Supported by API versions 9 and newer.
4962 */
4963extern float2 __attribute__((const, overloadable))sqrt(float2);
4964#endif
4965
4966#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4967/*
4968 * Return the square root of a value.
4969 *
4970 * Supported by API versions 9 and newer.
4971 */
4972extern float3 __attribute__((const, overloadable))sqrt(float3);
4973#endif
4974
4975#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4976/*
4977 * Return the square root of a value.
4978 *
4979 * Supported by API versions 9 and newer.
4980 */
4981extern float4 __attribute__((const, overloadable))sqrt(float4);
4982#endif
4983
4984#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4985/*
4986 * Return the sine of a value specified in radians.
4987 *
4988 * Supported by API versions 9 and newer.
4989 */
4990extern float __attribute__((const, overloadable))sin(float);
4991#endif
4992
4993#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4994/*
4995 * Return the sine of a value specified in radians.
4996 *
4997 * Supported by API versions 9 and newer.
4998 */
4999extern float2 __attribute__((const, overloadable))sin(float2);
5000#endif
5001
5002#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5003/*
5004 * Return the sine of a value specified in radians.
5005 *
5006 * Supported by API versions 9 and newer.
5007 */
5008extern float3 __attribute__((const, overloadable))sin(float3);
5009#endif
5010
5011#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5012/*
5013 * Return the sine of a value specified in radians.
5014 *
5015 * Supported by API versions 9 and newer.
5016 */
5017extern float4 __attribute__((const, overloadable))sin(float4);
5018#endif
5019
5020#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5021/*
5022 * Return the sine and cosine of a value.
5023 *
5024 * @return sine
5025 * @param v The incoming value in radians
5026 * @param *cosptr cosptr[0] will be set to the cosine value.
5027 *
5028 * Supported by API versions 9 and newer.
5029 */
5030extern float __attribute__((const, overloadable))sincos(float v, float *cosptr);
5031#endif
5032
5033#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5034/*
5035 * Return the sine and cosine of a value.
5036 *
5037 * @return sine
5038 * @param v The incoming value in radians
5039 * @param *cosptr cosptr[0] will be set to the cosine value.
5040 *
5041 * Supported by API versions 9 and newer.
5042 */
5043extern float2 __attribute__((const, overloadable))sincos(float2 v, float2 *cosptr);
5044#endif
5045
5046#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5047/*
5048 * Return the sine and cosine of a value.
5049 *
5050 * @return sine
5051 * @param v The incoming value in radians
5052 * @param *cosptr cosptr[0] will be set to the cosine value.
5053 *
5054 * Supported by API versions 9 and newer.
5055 */
5056extern float3 __attribute__((const, overloadable))sincos(float3 v, float3 *cosptr);
5057#endif
5058
5059#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5060/*
5061 * Return the sine and cosine of a value.
5062 *
5063 * @return sine
5064 * @param v The incoming value in radians
5065 * @param *cosptr cosptr[0] will be set to the cosine value.
5066 *
5067 * Supported by API versions 9 and newer.
5068 */
5069extern float4 __attribute__((const, overloadable))sincos(float4 v, float4 *cosptr);
5070#endif
5071
5072#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5073/*
5074 * Return the hyperbolic sine of a value specified in radians.
5075 *
5076 * Supported by API versions 9 and newer.
5077 */
5078extern float __attribute__((const, overloadable))sinh(float);
5079#endif
5080
5081#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5082/*
5083 * Return the hyperbolic sine of a value specified in radians.
5084 *
5085 * Supported by API versions 9 and newer.
5086 */
5087extern float2 __attribute__((const, overloadable))sinh(float2);
5088#endif
5089
5090#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5091/*
5092 * Return the hyperbolic sine of a value specified in radians.
5093 *
5094 * Supported by API versions 9 and newer.
5095 */
5096extern float3 __attribute__((const, overloadable))sinh(float3);
5097#endif
5098
5099#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5100/*
5101 * Return the hyperbolic sine of a value specified in radians.
5102 *
5103 * Supported by API versions 9 and newer.
5104 */
5105extern float4 __attribute__((const, overloadable))sinh(float4);
5106#endif
5107
5108#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5109/*
5110 * Return the sin(v * PI).
5111 *
5112 * Supported by API versions 9 and newer.
5113 */
5114extern float __attribute__((const, overloadable))sinpi(float);
5115#endif
5116
5117#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5118/*
5119 * Return the sin(v * PI).
5120 *
5121 * Supported by API versions 9 and newer.
5122 */
5123extern float2 __attribute__((const, overloadable))sinpi(float2);
5124#endif
5125
5126#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5127/*
5128 * Return the sin(v * PI).
5129 *
5130 * Supported by API versions 9 and newer.
5131 */
5132extern float3 __attribute__((const, overloadable))sinpi(float3);
5133#endif
5134
5135#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5136/*
5137 * Return the sin(v * PI).
5138 *
5139 * Supported by API versions 9 and newer.
5140 */
5141extern float4 __attribute__((const, overloadable))sinpi(float4);
5142#endif
5143
5144#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5145/*
5146 * Return the tangent of a value.
5147 *
5148 * Supported by API versions 9 and newer.
5149 */
5150extern float __attribute__((const, overloadable))tan(float);
5151#endif
5152
5153#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5154/*
5155 * Return the tangent of a value.
5156 *
5157 * Supported by API versions 9 and newer.
5158 */
5159extern float2 __attribute__((const, overloadable))tan(float2);
5160#endif
5161
5162#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5163/*
5164 * Return the tangent of a value.
5165 *
5166 * Supported by API versions 9 and newer.
5167 */
5168extern float3 __attribute__((const, overloadable))tan(float3);
5169#endif
5170
5171#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5172/*
5173 * Return the tangent of a value.
5174 *
5175 * Supported by API versions 9 and newer.
5176 */
5177extern float4 __attribute__((const, overloadable))tan(float4);
5178#endif
5179
5180#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5181/*
5182 * Return the hyperbolic tangent of a value.
5183 *
5184 * Supported by API versions 9 and newer.
5185 */
5186extern float __attribute__((const, overloadable))tanh(float);
5187#endif
5188
5189#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5190/*
5191 * Return the hyperbolic tangent of a value.
5192 *
5193 * Supported by API versions 9 and newer.
5194 */
5195extern float2 __attribute__((const, overloadable))tanh(float2);
5196#endif
5197
5198#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5199/*
5200 * Return the hyperbolic tangent of a value.
5201 *
5202 * Supported by API versions 9 and newer.
5203 */
5204extern float3 __attribute__((const, overloadable))tanh(float3);
5205#endif
5206
5207#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5208/*
5209 * Return the hyperbolic tangent of a value.
5210 *
5211 * Supported by API versions 9 and newer.
5212 */
5213extern float4 __attribute__((const, overloadable))tanh(float4);
5214#endif
5215
5216#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5217/*
5218 * Return tan(v * PI)
5219 *
5220 * Supported by API versions 9 and newer.
5221 */
5222extern float __attribute__((const, overloadable))tanpi(float);
5223#endif
5224
5225#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5226/*
5227 * Return tan(v * PI)
5228 *
5229 * Supported by API versions 9 and newer.
5230 */
5231extern float2 __attribute__((const, overloadable))tanpi(float2);
5232#endif
5233
5234#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5235/*
5236 * Return tan(v * PI)
5237 *
5238 * Supported by API versions 9 and newer.
5239 */
5240extern float3 __attribute__((const, overloadable))tanpi(float3);
5241#endif
5242
5243#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5244/*
5245 * Return tan(v * PI)
5246 *
5247 * Supported by API versions 9 and newer.
5248 */
5249extern float4 __attribute__((const, overloadable))tanpi(float4);
5250#endif
5251
5252#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5253/*
5254 * Compute the gamma function of a value.
5255 *
5256 * Supported by API versions 9 and newer.
5257 */
5258extern float __attribute__((const, overloadable))tgamma(float);
5259#endif
5260
5261#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5262/*
5263 * Compute the gamma function of a value.
5264 *
5265 * Supported by API versions 9 and newer.
5266 */
5267extern float2 __attribute__((const, overloadable))tgamma(float2);
5268#endif
5269
5270#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5271/*
5272 * Compute the gamma function of a value.
5273 *
5274 * Supported by API versions 9 and newer.
5275 */
5276extern float3 __attribute__((const, overloadable))tgamma(float3);
5277#endif
5278
5279#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5280/*
5281 * Compute the gamma function of a value.
5282 *
5283 * Supported by API versions 9 and newer.
5284 */
5285extern float4 __attribute__((const, overloadable))tgamma(float4);
5286#endif
5287
5288#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5289/*
5290 * ound to integral using truncation.
5291 *
5292 * Supported by API versions 9 and newer.
5293 */
5294extern float __attribute__((const, overloadable))trunc(float);
5295#endif
5296
5297#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5298/*
5299 * ound to integral using truncation.
5300 *
5301 * Supported by API versions 9 and newer.
5302 */
5303extern float2 __attribute__((const, overloadable))trunc(float2);
5304#endif
5305
5306#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5307/*
5308 * ound to integral using truncation.
5309 *
5310 * Supported by API versions 9 and newer.
5311 */
5312extern float3 __attribute__((const, overloadable))trunc(float3);
5313#endif
5314
5315#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5316/*
5317 * ound to integral using truncation.
5318 *
5319 * Supported by API versions 9 and newer.
5320 */
5321extern float4 __attribute__((const, overloadable))trunc(float4);
5322#endif
5323
5324#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5325/*
5326 * Return the absolute value of a value.
5327 *
5328 * Supported by API versions 9 and newer.
5329 */
5330extern uchar __attribute__((const, overloadable))abs(char value);
5331#endif
5332
5333#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5334/*
5335 * Return the absolute value of a value.
5336 *
5337 * Supported by API versions 9 and newer.
5338 */
5339extern uchar2 __attribute__((const, overloadable))abs(char2 value);
5340#endif
5341
5342#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5343/*
5344 * Return the absolute value of a value.
5345 *
5346 * Supported by API versions 9 and newer.
5347 */
5348extern uchar3 __attribute__((const, overloadable))abs(char3 value);
5349#endif
5350
5351#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5352/*
5353 * Return the absolute value of a value.
5354 *
5355 * Supported by API versions 9 and newer.
5356 */
5357extern uchar4 __attribute__((const, overloadable))abs(char4 value);
5358#endif
5359
5360#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5361/*
5362 * Return the absolute value of a value.
5363 *
5364 * Supported by API versions 9 and newer.
5365 */
5366extern ushort __attribute__((const, overloadable))abs(short value);
5367#endif
5368
5369#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5370/*
5371 * Return the absolute value of a value.
5372 *
5373 * Supported by API versions 9 and newer.
5374 */
5375extern ushort2 __attribute__((const, overloadable))abs(short2 value);
5376#endif
5377
5378#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5379/*
5380 * Return the absolute value of a value.
5381 *
5382 * Supported by API versions 9 and newer.
5383 */
5384extern ushort3 __attribute__((const, overloadable))abs(short3 value);
5385#endif
5386
5387#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5388/*
5389 * Return the absolute value of a value.
5390 *
5391 * Supported by API versions 9 and newer.
5392 */
5393extern ushort4 __attribute__((const, overloadable))abs(short4 value);
5394#endif
5395
5396#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5397/*
5398 * Return the absolute value of a value.
5399 *
5400 * Supported by API versions 9 and newer.
5401 */
5402extern uint __attribute__((const, overloadable))abs(int value);
5403#endif
5404
5405#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5406/*
5407 * Return the absolute value of a value.
5408 *
5409 * Supported by API versions 9 and newer.
5410 */
5411extern uint2 __attribute__((const, overloadable))abs(int2 value);
5412#endif
5413
5414#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5415/*
5416 * Return the absolute value of a value.
5417 *
5418 * Supported by API versions 9 and newer.
5419 */
5420extern uint3 __attribute__((const, overloadable))abs(int3 value);
5421#endif
5422
5423#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5424/*
5425 * Return the absolute value of a value.
5426 *
5427 * Supported by API versions 9 and newer.
5428 */
5429extern uint4 __attribute__((const, overloadable))abs(int4 value);
5430#endif
5431
5432#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5433/*
5434 * Return the number of leading 0-bits in a value.
5435 *
5436 * Supported by API versions 9 and newer.
5437 */
5438extern char __attribute__((const, overloadable))clz(char value);
5439#endif
5440
5441#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5442/*
5443 * Return the number of leading 0-bits in a value.
5444 *
5445 * Supported by API versions 9 and newer.
5446 */
5447extern char2 __attribute__((const, overloadable))clz(char2 value);
5448#endif
5449
5450#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5451/*
5452 * Return the number of leading 0-bits in a value.
5453 *
5454 * Supported by API versions 9 and newer.
5455 */
5456extern char3 __attribute__((const, overloadable))clz(char3 value);
5457#endif
5458
5459#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5460/*
5461 * Return the number of leading 0-bits in a value.
5462 *
5463 * Supported by API versions 9 and newer.
5464 */
5465extern char4 __attribute__((const, overloadable))clz(char4 value);
5466#endif
5467
5468#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5469/*
5470 * Return the number of leading 0-bits in a value.
5471 *
5472 * Supported by API versions 9 and newer.
5473 */
5474extern uchar __attribute__((const, overloadable))clz(uchar value);
5475#endif
5476
5477#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5478/*
5479 * Return the number of leading 0-bits in a value.
5480 *
5481 * Supported by API versions 9 and newer.
5482 */
5483extern uchar2 __attribute__((const, overloadable))clz(uchar2 value);
5484#endif
5485
5486#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5487/*
5488 * Return the number of leading 0-bits in a value.
5489 *
5490 * Supported by API versions 9 and newer.
5491 */
5492extern uchar3 __attribute__((const, overloadable))clz(uchar3 value);
5493#endif
5494
5495#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5496/*
5497 * Return the number of leading 0-bits in a value.
5498 *
5499 * Supported by API versions 9 and newer.
5500 */
5501extern uchar4 __attribute__((const, overloadable))clz(uchar4 value);
5502#endif
5503
5504#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5505/*
5506 * Return the number of leading 0-bits in a value.
5507 *
5508 * Supported by API versions 9 and newer.
5509 */
5510extern short __attribute__((const, overloadable))clz(short value);
5511#endif
5512
5513#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5514/*
5515 * Return the number of leading 0-bits in a value.
5516 *
5517 * Supported by API versions 9 and newer.
5518 */
5519extern short2 __attribute__((const, overloadable))clz(short2 value);
5520#endif
5521
5522#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5523/*
5524 * Return the number of leading 0-bits in a value.
5525 *
5526 * Supported by API versions 9 and newer.
5527 */
5528extern short3 __attribute__((const, overloadable))clz(short3 value);
5529#endif
5530
5531#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5532/*
5533 * Return the number of leading 0-bits in a value.
5534 *
5535 * Supported by API versions 9 and newer.
5536 */
5537extern short4 __attribute__((const, overloadable))clz(short4 value);
5538#endif
5539
5540#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5541/*
5542 * Return the number of leading 0-bits in a value.
5543 *
5544 * Supported by API versions 9 and newer.
5545 */
5546extern ushort __attribute__((const, overloadable))clz(ushort value);
5547#endif
5548
5549#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5550/*
5551 * Return the number of leading 0-bits in a value.
5552 *
5553 * Supported by API versions 9 and newer.
5554 */
5555extern ushort2 __attribute__((const, overloadable))clz(ushort2 value);
5556#endif
5557
5558#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5559/*
5560 * Return the number of leading 0-bits in a value.
5561 *
5562 * Supported by API versions 9 and newer.
5563 */
5564extern ushort3 __attribute__((const, overloadable))clz(ushort3 value);
5565#endif
5566
5567#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5568/*
5569 * Return the number of leading 0-bits in a value.
5570 *
5571 * Supported by API versions 9 and newer.
5572 */
5573extern ushort4 __attribute__((const, overloadable))clz(ushort4 value);
5574#endif
5575
5576#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5577/*
5578 * Return the number of leading 0-bits in a value.
5579 *
5580 * Supported by API versions 9 and newer.
5581 */
5582extern int __attribute__((const, overloadable))clz(int value);
5583#endif
5584
5585#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5586/*
5587 * Return the number of leading 0-bits in a value.
5588 *
5589 * Supported by API versions 9 and newer.
5590 */
5591extern int2 __attribute__((const, overloadable))clz(int2 value);
5592#endif
5593
5594#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5595/*
5596 * Return the number of leading 0-bits in a value.
5597 *
5598 * Supported by API versions 9 and newer.
5599 */
5600extern int3 __attribute__((const, overloadable))clz(int3 value);
5601#endif
5602
5603#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5604/*
5605 * Return the number of leading 0-bits in a value.
5606 *
5607 * Supported by API versions 9 and newer.
5608 */
5609extern int4 __attribute__((const, overloadable))clz(int4 value);
5610#endif
5611
5612#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5613/*
5614 * Return the number of leading 0-bits in a value.
5615 *
5616 * Supported by API versions 9 and newer.
5617 */
5618extern uint __attribute__((const, overloadable))clz(uint value);
5619#endif
5620
5621#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5622/*
5623 * Return the number of leading 0-bits in a value.
5624 *
5625 * Supported by API versions 9 and newer.
5626 */
5627extern uint2 __attribute__((const, overloadable))clz(uint2 value);
5628#endif
5629
5630#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5631/*
5632 * Return the number of leading 0-bits in a value.
5633 *
5634 * Supported by API versions 9 and newer.
5635 */
5636extern uint3 __attribute__((const, overloadable))clz(uint3 value);
5637#endif
5638
5639#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5640/*
5641 * Return the number of leading 0-bits in a value.
5642 *
5643 * Supported by API versions 9 and newer.
5644 */
5645extern uint4 __attribute__((const, overloadable))clz(uint4 value);
5646#endif
5647
5648#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5649/*
5650 * Return the minimum value from two arguments
5651 *
5652 * Supported by API versions 9 and newer.
5653 */
5654extern float __attribute__((const, overloadable))min(float, float);
5655#endif
5656
5657#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5658/*
5659 * Return the minimum value from two arguments
5660 *
5661 * Supported by API versions 9 and newer.
5662 */
5663extern float2 __attribute__((const, overloadable))min(float2, float2);
5664#endif
5665
5666#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5667/*
5668 * Return the minimum value from two arguments
5669 *
5670 * Supported by API versions 9 and newer.
5671 */
5672extern float3 __attribute__((const, overloadable))min(float3, float3);
5673#endif
5674
5675#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5676/*
5677 * Return the minimum value from two arguments
5678 *
5679 * Supported by API versions 9 and newer.
5680 */
5681extern float4 __attribute__((const, overloadable))min(float4, float4);
5682#endif
5683
5684#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5685/*
5686 * Return the minimum value from two arguments
5687 *
5688 * Suppored by API versions 9 - 19
5689 */
5690static char __attribute__((const, overloadable))min(char v1, char v2) {
5691 return (v1 < v2 ? v1 : v2);
5692}
5693#endif
5694
5695#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5696/*
5697 * Return the minimum value from two arguments
5698 *
5699 * Suppored by API versions 9 - 19
5700 */
5701static uchar __attribute__((const, overloadable))min(uchar v1, uchar v2) {
5702 return (v1 < v2 ? v1 : v2);
5703}
5704#endif
5705
5706#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5707/*
5708 * Return the minimum value from two arguments
5709 *
5710 * Suppored by API versions 9 - 19
5711 */
5712static short __attribute__((const, overloadable))min(short v1, short v2) {
5713 return (v1 < v2 ? v1 : v2);
5714}
5715#endif
5716
5717#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5718/*
5719 * Return the minimum value from two arguments
5720 *
5721 * Suppored by API versions 9 - 19
5722 */
5723static ushort __attribute__((const, overloadable))min(ushort v1, ushort v2) {
5724 return (v1 < v2 ? v1 : v2);
5725}
5726#endif
5727
5728#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5729/*
5730 * Return the minimum value from two arguments
5731 *
5732 * Suppored by API versions 9 - 19
5733 */
5734static int __attribute__((const, overloadable))min(int v1, int v2) {
5735 return (v1 < v2 ? v1 : v2);
5736}
5737#endif
5738
5739#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5740/*
5741 * Return the minimum value from two arguments
5742 *
5743 * Suppored by API versions 9 - 19
5744 */
5745static uint __attribute__((const, overloadable))min(uint v1, uint v2) {
5746 return (v1 < v2 ? v1 : v2);
5747}
5748#endif
5749
5750#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5751/*
5752 * Return the minimum value from two arguments
5753 *
5754 * Suppored by API versions 9 - 19
5755 */
5756static char2 __attribute__((const, overloadable))min(char2 v1, char2 v2) {
5757 char2 tmp;
5758 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5759 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5760 return tmp;
5761}
5762#endif
5763
5764#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5765/*
5766 * Return the minimum value from two arguments
5767 *
5768 * Suppored by API versions 9 - 19
5769 */
5770static uchar2 __attribute__((const, overloadable))min(uchar2 v1, uchar2 v2) {
5771 uchar2 tmp;
5772 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5773 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5774 return tmp;
5775}
5776#endif
5777
5778#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5779/*
5780 * Return the minimum value from two arguments
5781 *
5782 * Suppored by API versions 9 - 19
5783 */
5784static short2 __attribute__((const, overloadable))min(short2 v1, short2 v2) {
5785 short2 tmp;
5786 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5787 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5788 return tmp;
5789}
5790#endif
5791
5792#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5793/*
5794 * Return the minimum value from two arguments
5795 *
5796 * Suppored by API versions 9 - 19
5797 */
5798static ushort2 __attribute__((const, overloadable))min(ushort2 v1, ushort2 v2) {
5799 ushort2 tmp;
5800 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5801 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5802 return tmp;
5803}
5804#endif
5805
5806#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5807/*
5808 * Return the minimum value from two arguments
5809 *
5810 * Suppored by API versions 9 - 19
5811 */
5812static int2 __attribute__((const, overloadable))min(int2 v1, int2 v2) {
5813 int2 tmp;
5814 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5815 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5816 return tmp;
5817}
5818#endif
5819
5820#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5821/*
5822 * Return the minimum value from two arguments
5823 *
5824 * Suppored by API versions 9 - 19
5825 */
5826static uint2 __attribute__((const, overloadable))min(uint2 v1, uint2 v2) {
5827 uint2 tmp;
5828 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5829 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5830 return tmp;
5831}
5832#endif
5833
5834#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5835/*
5836 * Return the minimum value from two arguments
5837 *
5838 * Suppored by API versions 9 - 19
5839 */
5840static char3 __attribute__((const, overloadable))min(char3 v1, char3 v2) {
5841 char3 tmp;
5842 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5843 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5844 tmp.z = (v1.z < v2.z ? v1.z : v2.z);
5845 return tmp;
5846}
5847#endif
5848
5849#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5850/*
5851 * Return the minimum value from two arguments
5852 *
5853 * Suppored by API versions 9 - 19
5854 */
5855static uchar3 __attribute__((const, overloadable))min(uchar3 v1, uchar3 v2) {
5856 uchar3 tmp;
5857 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5858 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5859 tmp.z = (v1.z < v2.z ? v1.z : v2.z);
5860 return tmp;
5861}
5862#endif
5863
5864#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5865/*
5866 * Return the minimum value from two arguments
5867 *
5868 * Suppored by API versions 9 - 19
5869 */
5870static short3 __attribute__((const, overloadable))min(short3 v1, short3 v2) {
5871 short3 tmp;
5872 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5873 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5874 tmp.z = (v1.z < v2.z ? v1.z : v2.z);
5875 return tmp;
5876}
5877#endif
5878
5879#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5880/*
5881 * Return the minimum value from two arguments
5882 *
5883 * Suppored by API versions 9 - 19
5884 */
5885static ushort3 __attribute__((const, overloadable))min(ushort3 v1, ushort3 v2) {
5886 ushort3 tmp;
5887 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5888 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5889 tmp.z = (v1.z < v2.z ? v1.z : v2.z);
5890 return tmp;
5891}
5892#endif
5893
5894#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5895/*
5896 * Return the minimum value from two arguments
5897 *
5898 * Suppored by API versions 9 - 19
5899 */
5900static int3 __attribute__((const, overloadable))min(int3 v1, int3 v2) {
5901 int3 tmp;
5902 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5903 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5904 tmp.z = (v1.z < v2.z ? v1.z : v2.z);
5905 return tmp;
5906}
5907#endif
5908
5909#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5910/*
5911 * Return the minimum value from two arguments
5912 *
5913 * Suppored by API versions 9 - 19
5914 */
5915static uint3 __attribute__((const, overloadable))min(uint3 v1, uint3 v2) {
5916 uint3 tmp;
5917 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5918 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5919 tmp.z = (v1.z < v2.z ? v1.z : v2.z);
5920 return tmp;
5921}
5922#endif
5923
5924#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5925/*
5926 * Return the minimum value from two arguments
5927 *
5928 * Suppored by API versions 9 - 19
5929 */
5930static char4 __attribute__((const, overloadable))min(char4 v1, char4 v2) {
5931 char4 tmp;
5932 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5933 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5934 tmp.z = (v1.z < v2.z ? v1.z : v2.z);
5935 tmp.w = (v1.w < v2.w ? v1.w : v2.w);
5936 return tmp;
5937}
5938#endif
5939
5940#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5941/*
5942 * Return the minimum value from two arguments
5943 *
5944 * Suppored by API versions 9 - 19
5945 */
5946static uchar4 __attribute__((const, overloadable))min(uchar4 v1, uchar4 v2) {
5947 uchar4 tmp;
5948 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5949 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5950 tmp.z = (v1.z < v2.z ? v1.z : v2.z);
5951 tmp.w = (v1.w < v2.w ? v1.w : v2.w);
5952 return tmp;
5953}
5954#endif
5955
5956#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5957/*
5958 * Return the minimum value from two arguments
5959 *
5960 * Suppored by API versions 9 - 19
5961 */
5962static short4 __attribute__((const, overloadable))min(short4 v1, short4 v2) {
5963 short4 tmp;
5964 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5965 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5966 tmp.z = (v1.z < v2.z ? v1.z : v2.z);
5967 tmp.w = (v1.w < v2.w ? v1.w : v2.w);
5968 return tmp;
5969}
5970#endif
5971
5972#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5973/*
5974 * Return the minimum value from two arguments
5975 *
5976 * Suppored by API versions 9 - 19
5977 */
5978static ushort4 __attribute__((const, overloadable))min(ushort4 v1, ushort4 v2) {
5979 ushort4 tmp;
5980 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5981 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5982 tmp.z = (v1.z < v2.z ? v1.z : v2.z);
5983 tmp.w = (v1.w < v2.w ? v1.w : v2.w);
5984 return tmp;
5985}
5986#endif
5987
5988#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
5989/*
5990 * Return the minimum value from two arguments
5991 *
5992 * Suppored by API versions 9 - 19
5993 */
5994static int4 __attribute__((const, overloadable))min(int4 v1, int4 v2) {
5995 int4 tmp;
5996 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
5997 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
5998 tmp.z = (v1.z < v2.z ? v1.z : v2.z);
5999 tmp.w = (v1.w < v2.w ? v1.w : v2.w);
6000 return tmp;
6001}
6002#endif
6003
6004#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6005/*
6006 * Return the minimum value from two arguments
6007 *
6008 * Suppored by API versions 9 - 19
6009 */
6010static uint4 __attribute__((const, overloadable))min(uint4 v1, uint4 v2) {
6011 uint4 tmp;
6012 tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6013 tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6014 tmp.z = (v1.z < v2.z ? v1.z : v2.z);
6015 tmp.w = (v1.w < v2.w ? v1.w : v2.w);
6016 return tmp;
6017}
6018#endif
6019
6020#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6021/*
6022 * Return the minimum value from two arguments
6023 *
6024 * Supported by API versions 20 and newer.
6025 */
6026extern char __attribute__((const, overloadable))min(char v1, char v2);
6027#endif
6028
6029#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6030/*
6031 * Return the minimum value from two arguments
6032 *
6033 * Supported by API versions 20 and newer.
6034 */
6035extern char2 __attribute__((const, overloadable))min(char2 v1, char2 v2);
6036#endif
6037
6038#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6039/*
6040 * Return the minimum value from two arguments
6041 *
6042 * Supported by API versions 20 and newer.
6043 */
6044extern char3 __attribute__((const, overloadable))min(char3 v1, char3 v2);
6045#endif
6046
6047#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6048/*
6049 * Return the minimum value from two arguments
6050 *
6051 * Supported by API versions 20 and newer.
6052 */
6053extern char4 __attribute__((const, overloadable))min(char4 v1, char4 v2);
6054#endif
6055
6056#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6057/*
6058 * Return the minimum value from two arguments
6059 *
6060 * Supported by API versions 20 and newer.
6061 */
6062extern uchar __attribute__((const, overloadable))min(uchar v1, uchar v2);
6063#endif
6064
6065#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6066/*
6067 * Return the minimum value from two arguments
6068 *
6069 * Supported by API versions 20 and newer.
6070 */
6071extern uchar2 __attribute__((const, overloadable))min(uchar2 v1, uchar2 v2);
6072#endif
6073
6074#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6075/*
6076 * Return the minimum value from two arguments
6077 *
6078 * Supported by API versions 20 and newer.
6079 */
6080extern uchar3 __attribute__((const, overloadable))min(uchar3 v1, uchar3 v2);
6081#endif
6082
6083#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6084/*
6085 * Return the minimum value from two arguments
6086 *
6087 * Supported by API versions 20 and newer.
6088 */
6089extern uchar4 __attribute__((const, overloadable))min(uchar4 v1, uchar4 v2);
6090#endif
6091
6092#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6093/*
6094 * Return the minimum value from two arguments
6095 *
6096 * Supported by API versions 20 and newer.
6097 */
6098extern short __attribute__((const, overloadable))min(short v1, short v2);
6099#endif
6100
6101#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6102/*
6103 * Return the minimum value from two arguments
6104 *
6105 * Supported by API versions 20 and newer.
6106 */
6107extern short2 __attribute__((const, overloadable))min(short2 v1, short2 v2);
6108#endif
6109
6110#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6111/*
6112 * Return the minimum value from two arguments
6113 *
6114 * Supported by API versions 20 and newer.
6115 */
6116extern short3 __attribute__((const, overloadable))min(short3 v1, short3 v2);
6117#endif
6118
6119#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6120/*
6121 * Return the minimum value from two arguments
6122 *
6123 * Supported by API versions 20 and newer.
6124 */
6125extern short4 __attribute__((const, overloadable))min(short4 v1, short4 v2);
6126#endif
6127
6128#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6129/*
6130 * Return the minimum value from two arguments
6131 *
6132 * Supported by API versions 20 and newer.
6133 */
6134extern ushort __attribute__((const, overloadable))min(ushort v1, ushort v2);
6135#endif
6136
6137#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6138/*
6139 * Return the minimum value from two arguments
6140 *
6141 * Supported by API versions 20 and newer.
6142 */
6143extern ushort2 __attribute__((const, overloadable))min(ushort2 v1, ushort2 v2);
6144#endif
6145
6146#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6147/*
6148 * Return the minimum value from two arguments
6149 *
6150 * Supported by API versions 20 and newer.
6151 */
6152extern ushort3 __attribute__((const, overloadable))min(ushort3 v1, ushort3 v2);
6153#endif
6154
6155#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6156/*
6157 * Return the minimum value from two arguments
6158 *
6159 * Supported by API versions 20 and newer.
6160 */
6161extern ushort4 __attribute__((const, overloadable))min(ushort4 v1, ushort4 v2);
6162#endif
6163
6164#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6165/*
6166 * Return the minimum value from two arguments
6167 *
6168 * Supported by API versions 20 and newer.
6169 */
6170extern int __attribute__((const, overloadable))min(int v1, int v2);
6171#endif
6172
6173#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6174/*
6175 * Return the minimum value from two arguments
6176 *
6177 * Supported by API versions 20 and newer.
6178 */
6179extern int2 __attribute__((const, overloadable))min(int2 v1, int2 v2);
6180#endif
6181
6182#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6183/*
6184 * Return the minimum value from two arguments
6185 *
6186 * Supported by API versions 20 and newer.
6187 */
6188extern int3 __attribute__((const, overloadable))min(int3 v1, int3 v2);
6189#endif
6190
6191#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6192/*
6193 * Return the minimum value from two arguments
6194 *
6195 * Supported by API versions 20 and newer.
6196 */
6197extern int4 __attribute__((const, overloadable))min(int4 v1, int4 v2);
6198#endif
6199
6200#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6201/*
6202 * Return the minimum value from two arguments
6203 *
6204 * Supported by API versions 20 and newer.
6205 */
6206extern uint __attribute__((const, overloadable))min(uint v1, uint v2);
6207#endif
6208
6209#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6210/*
6211 * Return the minimum value from two arguments
6212 *
6213 * Supported by API versions 20 and newer.
6214 */
6215extern uint2 __attribute__((const, overloadable))min(uint2 v1, uint2 v2);
6216#endif
6217
6218#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6219/*
6220 * Return the minimum value from two arguments
6221 *
6222 * Supported by API versions 20 and newer.
6223 */
6224extern uint3 __attribute__((const, overloadable))min(uint3 v1, uint3 v2);
6225#endif
6226
6227#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6228/*
6229 * Return the minimum value from two arguments
6230 *
6231 * Supported by API versions 20 and newer.
6232 */
6233extern uint4 __attribute__((const, overloadable))min(uint4 v1, uint4 v2);
6234#endif
6235
6236#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6237/*
6238 * Return the minimum value from two arguments
6239 *
6240 * Supported by API versions 20 and newer.
6241 */
6242extern long __attribute__((const, overloadable))min(long v1, long v2);
6243#endif
6244
6245#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6246/*
6247 * Return the minimum value from two arguments
6248 *
6249 * Supported by API versions 20 and newer.
6250 */
6251extern long2 __attribute__((const, overloadable))min(long2 v1, long2 v2);
6252#endif
6253
6254#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6255/*
6256 * Return the minimum value from two arguments
6257 *
6258 * Supported by API versions 20 and newer.
6259 */
6260extern long3 __attribute__((const, overloadable))min(long3 v1, long3 v2);
6261#endif
6262
6263#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6264/*
6265 * Return the minimum value from two arguments
6266 *
6267 * Supported by API versions 20 and newer.
6268 */
6269extern long4 __attribute__((const, overloadable))min(long4 v1, long4 v2);
6270#endif
6271
6272#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6273/*
6274 * Return the minimum value from two arguments
6275 *
6276 * Supported by API versions 20 and newer.
6277 */
6278extern ulong __attribute__((const, overloadable))min(ulong v1, ulong v2);
6279#endif
6280
6281#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6282/*
6283 * Return the minimum value from two arguments
6284 *
6285 * Supported by API versions 20 and newer.
6286 */
6287extern ulong2 __attribute__((const, overloadable))min(ulong2 v1, ulong2 v2);
6288#endif
6289
6290#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6291/*
6292 * Return the minimum value from two arguments
6293 *
6294 * Supported by API versions 20 and newer.
6295 */
6296extern ulong3 __attribute__((const, overloadable))min(ulong3 v1, ulong3 v2);
6297#endif
6298
6299#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6300/*
6301 * Return the minimum value from two arguments
6302 *
6303 * Supported by API versions 20 and newer.
6304 */
6305extern ulong4 __attribute__((const, overloadable))min(ulong4 v1, ulong4 v2);
6306#endif
6307
6308#if (defined(RS_VERSION) && (RS_VERSION >= 9))
6309/*
6310 * Return the maximum value from two arguments
6311 *
6312 * Supported by API versions 9 and newer.
6313 */
6314extern float __attribute__((const, overloadable))max(float, float);
6315#endif
6316
6317#if (defined(RS_VERSION) && (RS_VERSION >= 9))
6318/*
6319 * Return the maximum value from two arguments
6320 *
6321 * Supported by API versions 9 and newer.
6322 */
6323extern float2 __attribute__((const, overloadable))max(float2, float2);
6324#endif
6325
6326#if (defined(RS_VERSION) && (RS_VERSION >= 9))
6327/*
6328 * Return the maximum value from two arguments
6329 *
6330 * Supported by API versions 9 and newer.
6331 */
6332extern float3 __attribute__((const, overloadable))max(float3, float3);
6333#endif
6334
6335#if (defined(RS_VERSION) && (RS_VERSION >= 9))
6336/*
6337 * Return the maximum value from two arguments
6338 *
6339 * Supported by API versions 9 and newer.
6340 */
6341extern float4 __attribute__((const, overloadable))max(float4, float4);
6342#endif
6343
6344#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6345/*
6346 * Return the maximum value from two arguments
6347 *
6348 * Suppored by API versions 9 - 19
6349 */
6350static char __attribute__((const, overloadable))max(char v1, char v2) {
6351 return (v1 > v2 ? v1 : v2);
6352}
6353#endif
6354
6355#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6356/*
6357 * Return the maximum value from two arguments
6358 *
6359 * Suppored by API versions 9 - 19
6360 */
6361static uchar __attribute__((const, overloadable))max(uchar v1, uchar v2) {
6362 return (v1 > v2 ? v1 : v2);
6363}
6364#endif
6365
6366#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6367/*
6368 * Return the maximum value from two arguments
6369 *
6370 * Suppored by API versions 9 - 19
6371 */
6372static short __attribute__((const, overloadable))max(short v1, short v2) {
6373 return (v1 > v2 ? v1 : v2);
6374}
6375#endif
6376
6377#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6378/*
6379 * Return the maximum value from two arguments
6380 *
6381 * Suppored by API versions 9 - 19
6382 */
6383static ushort __attribute__((const, overloadable))max(ushort v1, ushort v2) {
6384 return (v1 > v2 ? v1 : v2);
6385}
6386#endif
6387
6388#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6389/*
6390 * Return the maximum value from two arguments
6391 *
6392 * Suppored by API versions 9 - 19
6393 */
6394static int __attribute__((const, overloadable))max(int v1, int v2) {
6395 return (v1 > v2 ? v1 : v2);
6396}
6397#endif
6398
6399#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6400/*
6401 * Return the maximum value from two arguments
6402 *
6403 * Suppored by API versions 9 - 19
6404 */
6405static uint __attribute__((const, overloadable))max(uint v1, uint v2) {
6406 return (v1 > v2 ? v1 : v2);
6407}
6408#endif
6409
6410#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6411/*
6412 * Return the maximum value from two arguments
6413 *
6414 * Suppored by API versions 9 - 19
6415 */
6416static char2 __attribute__((const, overloadable))max(char2 v1, char2 v2) {
6417 char2 tmp;
6418 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6419 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6420 return tmp;
6421}
6422#endif
6423
6424#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6425/*
6426 * Return the maximum value from two arguments
6427 *
6428 * Suppored by API versions 9 - 19
6429 */
6430static uchar2 __attribute__((const, overloadable))max(uchar2 v1, uchar2 v2) {
6431 uchar2 tmp;
6432 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6433 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6434 return tmp;
6435}
6436#endif
6437
6438#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6439/*
6440 * Return the maximum value from two arguments
6441 *
6442 * Suppored by API versions 9 - 19
6443 */
6444static short2 __attribute__((const, overloadable))max(short2 v1, short2 v2) {
6445 short2 tmp;
6446 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6447 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6448 return tmp;
6449}
6450#endif
6451
6452#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6453/*
6454 * Return the maximum value from two arguments
6455 *
6456 * Suppored by API versions 9 - 19
6457 */
6458static ushort2 __attribute__((const, overloadable))max(ushort2 v1, ushort2 v2) {
6459 ushort2 tmp;
6460 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6461 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6462 return tmp;
6463}
6464#endif
6465
6466#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6467/*
6468 * Return the maximum value from two arguments
6469 *
6470 * Suppored by API versions 9 - 19
6471 */
6472static int2 __attribute__((const, overloadable))max(int2 v1, int2 v2) {
6473 int2 tmp;
6474 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6475 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6476 return tmp;
6477}
6478#endif
6479
6480#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6481/*
6482 * Return the maximum value from two arguments
6483 *
6484 * Suppored by API versions 9 - 19
6485 */
6486static uint2 __attribute__((const, overloadable))max(uint2 v1, uint2 v2) {
6487 uint2 tmp;
6488 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6489 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6490 return tmp;
6491}
6492#endif
6493
6494#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6495/*
6496 * Return the maximum value from two arguments
6497 *
6498 * Suppored by API versions 9 - 19
6499 */
6500static char3 __attribute__((const, overloadable))max(char3 v1, char3 v2) {
6501 char3 tmp;
6502 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6503 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6504 tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6505 return tmp;
6506}
6507#endif
6508
6509#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6510/*
6511 * Return the maximum value from two arguments
6512 *
6513 * Suppored by API versions 9 - 19
6514 */
6515static uchar3 __attribute__((const, overloadable))max(uchar3 v1, uchar3 v2) {
6516 uchar3 tmp;
6517 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6518 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6519 tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6520 return tmp;
6521}
6522#endif
6523
6524#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6525/*
6526 * Return the maximum value from two arguments
6527 *
6528 * Suppored by API versions 9 - 19
6529 */
6530static short3 __attribute__((const, overloadable))max(short3 v1, short3 v2) {
6531 short3 tmp;
6532 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6533 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6534 tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6535 return tmp;
6536}
6537#endif
6538
6539#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6540/*
6541 * Return the maximum value from two arguments
6542 *
6543 * Suppored by API versions 9 - 19
6544 */
6545static ushort3 __attribute__((const, overloadable))max(ushort3 v1, ushort3 v2) {
6546 ushort3 tmp;
6547 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6548 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6549 tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6550 return tmp;
6551}
6552#endif
6553
6554#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6555/*
6556 * Return the maximum value from two arguments
6557 *
6558 * Suppored by API versions 9 - 19
6559 */
6560static int3 __attribute__((const, overloadable))max(int3 v1, int3 v2) {
6561 int3 tmp;
6562 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6563 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6564 tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6565 return tmp;
6566}
6567#endif
6568
6569#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6570/*
6571 * Return the maximum value from two arguments
6572 *
6573 * Suppored by API versions 9 - 19
6574 */
6575static uint3 __attribute__((const, overloadable))max(uint3 v1, uint3 v2) {
6576 uint3 tmp;
6577 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6578 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6579 tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6580 return tmp;
6581}
6582#endif
6583
6584#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6585/*
6586 * Return the maximum value from two arguments
6587 *
6588 * Suppored by API versions 9 - 19
6589 */
6590static char4 __attribute__((const, overloadable))max(char4 v1, char4 v2) {
6591 char4 tmp;
6592 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6593 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6594 tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6595 tmp.w = (v1.w > v2.w ? v1.w : v2.w);
6596 return tmp;
6597}
6598#endif
6599
6600#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6601/*
6602 * Return the maximum value from two arguments
6603 *
6604 * Suppored by API versions 9 - 19
6605 */
6606static uchar4 __attribute__((const, overloadable))max(uchar4 v1, uchar4 v2) {
6607 uchar4 tmp;
6608 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6609 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6610 tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6611 tmp.w = (v1.w > v2.w ? v1.w : v2.w);
6612 return tmp;
6613}
6614#endif
6615
6616#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6617/*
6618 * Return the maximum value from two arguments
6619 *
6620 * Suppored by API versions 9 - 19
6621 */
6622static short4 __attribute__((const, overloadable))max(short4 v1, short4 v2) {
6623 short4 tmp;
6624 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6625 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6626 tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6627 tmp.w = (v1.w > v2.w ? v1.w : v2.w);
6628 return tmp;
6629}
6630#endif
6631
6632#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6633/*
6634 * Return the maximum value from two arguments
6635 *
6636 * Suppored by API versions 9 - 19
6637 */
6638static ushort4 __attribute__((const, overloadable))max(ushort4 v1, ushort4 v2) {
6639 ushort4 tmp;
6640 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6641 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6642 tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6643 tmp.w = (v1.w > v2.w ? v1.w : v2.w);
6644 return tmp;
6645}
6646#endif
6647
6648#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6649/*
6650 * Return the maximum value from two arguments
6651 *
6652 * Suppored by API versions 9 - 19
6653 */
6654static int4 __attribute__((const, overloadable))max(int4 v1, int4 v2) {
6655 int4 tmp;
6656 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6657 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6658 tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6659 tmp.w = (v1.w > v2.w ? v1.w : v2.w);
6660 return tmp;
6661}
6662#endif
6663
6664#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6665/*
6666 * Return the maximum value from two arguments
6667 *
6668 * Suppored by API versions 9 - 19
6669 */
6670static uint4 __attribute__((const, overloadable))max(uint4 v1, uint4 v2) {
6671 uint4 tmp;
6672 tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6673 tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6674 tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6675 tmp.w = (v1.w > v2.w ? v1.w : v2.w);
6676 return tmp;
6677}
6678#endif
6679
6680#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6681/*
6682 * Return the maximum value from two arguments
6683 *
6684 * Supported by API versions 20 and newer.
6685 */
6686extern char __attribute__((const, overloadable))max(char v1, char v2);
6687#endif
6688
6689#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6690/*
6691 * Return the maximum value from two arguments
6692 *
6693 * Supported by API versions 20 and newer.
6694 */
6695extern char2 __attribute__((const, overloadable))max(char2 v1, char2 v2);
6696#endif
6697
6698#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6699/*
6700 * Return the maximum value from two arguments
6701 *
6702 * Supported by API versions 20 and newer.
6703 */
6704extern char3 __attribute__((const, overloadable))max(char3 v1, char3 v2);
6705#endif
6706
6707#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6708/*
6709 * Return the maximum value from two arguments
6710 *
6711 * Supported by API versions 20 and newer.
6712 */
6713extern char4 __attribute__((const, overloadable))max(char4 v1, char4 v2);
6714#endif
6715
6716#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6717/*
6718 * Return the maximum value from two arguments
6719 *
6720 * Supported by API versions 20 and newer.
6721 */
6722extern uchar __attribute__((const, overloadable))max(uchar v1, uchar v2);
6723#endif
6724
6725#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6726/*
6727 * Return the maximum value from two arguments
6728 *
6729 * Supported by API versions 20 and newer.
6730 */
6731extern uchar2 __attribute__((const, overloadable))max(uchar2 v1, uchar2 v2);
6732#endif
6733
6734#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6735/*
6736 * Return the maximum value from two arguments
6737 *
6738 * Supported by API versions 20 and newer.
6739 */
6740extern uchar3 __attribute__((const, overloadable))max(uchar3 v1, uchar3 v2);
6741#endif
6742
6743#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6744/*
6745 * Return the maximum value from two arguments
6746 *
6747 * Supported by API versions 20 and newer.
6748 */
6749extern uchar4 __attribute__((const, overloadable))max(uchar4 v1, uchar4 v2);
6750#endif
6751
6752#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6753/*
6754 * Return the maximum value from two arguments
6755 *
6756 * Supported by API versions 20 and newer.
6757 */
6758extern short __attribute__((const, overloadable))max(short v1, short v2);
6759#endif
6760
6761#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6762/*
6763 * Return the maximum value from two arguments
6764 *
6765 * Supported by API versions 20 and newer.
6766 */
6767extern short2 __attribute__((const, overloadable))max(short2 v1, short2 v2);
6768#endif
6769
6770#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6771/*
6772 * Return the maximum value from two arguments
6773 *
6774 * Supported by API versions 20 and newer.
6775 */
6776extern short3 __attribute__((const, overloadable))max(short3 v1, short3 v2);
6777#endif
6778
6779#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6780/*
6781 * Return the maximum value from two arguments
6782 *
6783 * Supported by API versions 20 and newer.
6784 */
6785extern short4 __attribute__((const, overloadable))max(short4 v1, short4 v2);
6786#endif
6787
6788#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6789/*
6790 * Return the maximum value from two arguments
6791 *
6792 * Supported by API versions 20 and newer.
6793 */
6794extern ushort __attribute__((const, overloadable))max(ushort v1, ushort v2);
6795#endif
6796
6797#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6798/*
6799 * Return the maximum value from two arguments
6800 *
6801 * Supported by API versions 20 and newer.
6802 */
6803extern ushort2 __attribute__((const, overloadable))max(ushort2 v1, ushort2 v2);
6804#endif
6805
6806#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6807/*
6808 * Return the maximum value from two arguments
6809 *
6810 * Supported by API versions 20 and newer.
6811 */
6812extern ushort3 __attribute__((const, overloadable))max(ushort3 v1, ushort3 v2);
6813#endif
6814
6815#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6816/*
6817 * Return the maximum value from two arguments
6818 *
6819 * Supported by API versions 20 and newer.
6820 */
6821extern ushort4 __attribute__((const, overloadable))max(ushort4 v1, ushort4 v2);
6822#endif
6823
6824#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6825/*
6826 * Return the maximum value from two arguments
6827 *
6828 * Supported by API versions 20 and newer.
6829 */
6830extern int __attribute__((const, overloadable))max(int v1, int v2);
6831#endif
6832
6833#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6834/*
6835 * Return the maximum value from two arguments
6836 *
6837 * Supported by API versions 20 and newer.
6838 */
6839extern int2 __attribute__((const, overloadable))max(int2 v1, int2 v2);
6840#endif
6841
6842#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6843/*
6844 * Return the maximum value from two arguments
6845 *
6846 * Supported by API versions 20 and newer.
6847 */
6848extern int3 __attribute__((const, overloadable))max(int3 v1, int3 v2);
6849#endif
6850
6851#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6852/*
6853 * Return the maximum value from two arguments
6854 *
6855 * Supported by API versions 20 and newer.
6856 */
6857extern int4 __attribute__((const, overloadable))max(int4 v1, int4 v2);
6858#endif
6859
6860#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6861/*
6862 * Return the maximum value from two arguments
6863 *
6864 * Supported by API versions 20 and newer.
6865 */
6866extern uint __attribute__((const, overloadable))max(uint v1, uint v2);
6867#endif
6868
6869#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6870/*
6871 * Return the maximum value from two arguments
6872 *
6873 * Supported by API versions 20 and newer.
6874 */
6875extern uint2 __attribute__((const, overloadable))max(uint2 v1, uint2 v2);
6876#endif
6877
6878#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6879/*
6880 * Return the maximum value from two arguments
6881 *
6882 * Supported by API versions 20 and newer.
6883 */
6884extern uint3 __attribute__((const, overloadable))max(uint3 v1, uint3 v2);
6885#endif
6886
6887#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6888/*
6889 * Return the maximum value from two arguments
6890 *
6891 * Supported by API versions 20 and newer.
6892 */
6893extern uint4 __attribute__((const, overloadable))max(uint4 v1, uint4 v2);
6894#endif
6895
6896#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6897/*
6898 * Return the maximum value from two arguments
6899 *
6900 * Supported by API versions 20 and newer.
6901 */
6902extern long __attribute__((const, overloadable))max(long v1, long v2);
6903#endif
6904
6905#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6906/*
6907 * Return the maximum value from two arguments
6908 *
6909 * Supported by API versions 20 and newer.
6910 */
6911extern long2 __attribute__((const, overloadable))max(long2 v1, long2 v2);
6912#endif
6913
6914#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6915/*
6916 * Return the maximum value from two arguments
6917 *
6918 * Supported by API versions 20 and newer.
6919 */
6920extern long3 __attribute__((const, overloadable))max(long3 v1, long3 v2);
6921#endif
6922
6923#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6924/*
6925 * Return the maximum value from two arguments
6926 *
6927 * Supported by API versions 20 and newer.
6928 */
6929extern long4 __attribute__((const, overloadable))max(long4 v1, long4 v2);
6930#endif
6931
6932#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6933/*
6934 * Return the maximum value from two arguments
6935 *
6936 * Supported by API versions 20 and newer.
6937 */
6938extern ulong __attribute__((const, overloadable))max(ulong v1, ulong v2);
6939#endif
6940
6941#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6942/*
6943 * Return the maximum value from two arguments
6944 *
6945 * Supported by API versions 20 and newer.
6946 */
6947extern ulong2 __attribute__((const, overloadable))max(ulong2 v1, ulong2 v2);
6948#endif
6949
6950#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6951/*
6952 * Return the maximum value from two arguments
6953 *
6954 * Supported by API versions 20 and newer.
6955 */
6956extern ulong3 __attribute__((const, overloadable))max(ulong3 v1, ulong3 v2);
6957#endif
6958
6959#if (defined(RS_VERSION) && (RS_VERSION >= 20))
6960/*
6961 * Return the maximum value from two arguments
6962 *
6963 * Supported by API versions 20 and newer.
6964 */
6965extern ulong4 __attribute__((const, overloadable))max(ulong4 v1, ulong4 v2);
6966#endif
6967
6968#if (defined(RS_VERSION) && (RS_VERSION >= 9))
6969/*
6970 * Clamp a value to a specified high and low bound.
6971 *
6972 * @param amount value to be clamped. Supports 1,2,3,4 components
6973 * @param min_value Lower bound, must be scalar or matching vector.
6974 * @param max_value High bound, must match type of low
6975 *
6976 * Supported by API versions 9 and newer.
6977 */
6978extern float __attribute__((const, overloadable))clamp(float value, float min_value, float max_value);
6979#endif
6980
6981#if (defined(RS_VERSION) && (RS_VERSION >= 9))
6982/*
6983 * Clamp a value to a specified high and low bound.
6984 *
6985 * @param amount value to be clamped. Supports 1,2,3,4 components
6986 * @param min_value Lower bound, must be scalar or matching vector.
6987 * @param max_value High bound, must match type of low
6988 *
6989 * Supported by API versions 9 and newer.
6990 */
6991extern float2 __attribute__((const, overloadable))clamp(float2 value, float2 min_value, float2 max_value);
6992#endif
6993
6994#if (defined(RS_VERSION) && (RS_VERSION >= 9))
6995/*
6996 * Clamp a value to a specified high and low bound.
6997 *
6998 * @param amount value to be clamped. Supports 1,2,3,4 components
6999 * @param min_value Lower bound, must be scalar or matching vector.
7000 * @param max_value High bound, must match type of low
7001 *
7002 * Supported by API versions 9 and newer.
7003 */
7004extern float3 __attribute__((const, overloadable))clamp(float3 value, float3 min_value, float3 max_value);
7005#endif
7006
7007#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7008/*
7009 * Clamp a value to a specified high and low bound.
7010 *
7011 * @param amount value to be clamped. Supports 1,2,3,4 components
7012 * @param min_value Lower bound, must be scalar or matching vector.
7013 * @param max_value High bound, must match type of low
7014 *
7015 * Supported by API versions 9 and newer.
7016 */
7017extern float4 __attribute__((const, overloadable))clamp(float4 value, float4 min_value, float4 max_value);
7018#endif
7019
7020#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7021/*
7022 * Clamp a value to a specified high and low bound.
7023 *
7024 * @param amount value to be clamped. Supports 1,2,3,4 components
7025 * @param min_value Lower bound, must be scalar or matching vector.
7026 * @param max_value High bound, must match type of low
7027 *
7028 * Supported by API versions 9 and newer.
7029 */
7030extern float __attribute__((const, overloadable))clamp(float value, float min_value, float max_value);
7031#endif
7032
7033#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7034/*
7035 * Clamp a value to a specified high and low bound.
7036 *
7037 * @param amount value to be clamped. Supports 1,2,3,4 components
7038 * @param min_value Lower bound, must be scalar or matching vector.
7039 * @param max_value High bound, must match type of low
7040 *
7041 * Supported by API versions 9 and newer.
7042 */
7043extern float2 __attribute__((const, overloadable))clamp(float2 value, float min_value, float max_value);
7044#endif
7045
7046#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7047/*
7048 * Clamp a value to a specified high and low bound.
7049 *
7050 * @param amount value to be clamped. Supports 1,2,3,4 components
7051 * @param min_value Lower bound, must be scalar or matching vector.
7052 * @param max_value High bound, must match type of low
7053 *
7054 * Supported by API versions 9 and newer.
7055 */
7056extern float3 __attribute__((const, overloadable))clamp(float3 value, float min_value, float max_value);
7057#endif
7058
7059#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7060/*
7061 * Clamp a value to a specified high and low bound.
7062 *
7063 * @param amount value to be clamped. Supports 1,2,3,4 components
7064 * @param min_value Lower bound, must be scalar or matching vector.
7065 * @param max_value High bound, must match type of low
7066 *
7067 * Supported by API versions 9 and newer.
7068 */
7069extern float4 __attribute__((const, overloadable))clamp(float4 value, float min_value, float max_value);
7070#endif
7071
7072#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7073/*
7074 * Clamp a value to a specified high and low bound.
7075 *
7076 * @param amount value to be clamped. Supports 1,2,3,4 components
7077 * @param min_value Lower bound, must be scalar or matching vector.
7078 * @param max_value High bound, must match type of low
7079 *
7080 * Supported by API versions 19 and newer.
7081 */
7082extern char __attribute__((const, overloadable))clamp(char value, char min_value, char max_value);
7083#endif
7084
7085#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7086/*
7087 * Clamp a value to a specified high and low bound.
7088 *
7089 * @param amount value to be clamped. Supports 1,2,3,4 components
7090 * @param min_value Lower bound, must be scalar or matching vector.
7091 * @param max_value High bound, must match type of low
7092 *
7093 * Supported by API versions 19 and newer.
7094 */
7095extern char2 __attribute__((const, overloadable))clamp(char2 value, char2 min_value, char2 max_value);
7096#endif
7097
7098#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7099/*
7100 * Clamp a value to a specified high and low bound.
7101 *
7102 * @param amount value to be clamped. Supports 1,2,3,4 components
7103 * @param min_value Lower bound, must be scalar or matching vector.
7104 * @param max_value High bound, must match type of low
7105 *
7106 * Supported by API versions 19 and newer.
7107 */
7108extern char3 __attribute__((const, overloadable))clamp(char3 value, char3 min_value, char3 max_value);
7109#endif
7110
7111#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7112/*
7113 * Clamp a value to a specified high and low bound.
7114 *
7115 * @param amount value to be clamped. Supports 1,2,3,4 components
7116 * @param min_value Lower bound, must be scalar or matching vector.
7117 * @param max_value High bound, must match type of low
7118 *
7119 * Supported by API versions 19 and newer.
7120 */
7121extern char4 __attribute__((const, overloadable))clamp(char4 value, char4 min_value, char4 max_value);
7122#endif
7123
7124#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7125/*
7126 * Clamp a value to a specified high and low bound.
7127 *
7128 * @param amount value to be clamped. Supports 1,2,3,4 components
7129 * @param min_value Lower bound, must be scalar or matching vector.
7130 * @param max_value High bound, must match type of low
7131 *
7132 * Supported by API versions 19 and newer.
7133 */
7134extern uchar __attribute__((const, overloadable))clamp(uchar value, uchar min_value, uchar max_value);
7135#endif
7136
7137#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7138/*
7139 * Clamp a value to a specified high and low bound.
7140 *
7141 * @param amount value to be clamped. Supports 1,2,3,4 components
7142 * @param min_value Lower bound, must be scalar or matching vector.
7143 * @param max_value High bound, must match type of low
7144 *
7145 * Supported by API versions 19 and newer.
7146 */
7147extern uchar2 __attribute__((const, overloadable))clamp(uchar2 value, uchar2 min_value, uchar2 max_value);
7148#endif
7149
7150#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7151/*
7152 * Clamp a value to a specified high and low bound.
7153 *
7154 * @param amount value to be clamped. Supports 1,2,3,4 components
7155 * @param min_value Lower bound, must be scalar or matching vector.
7156 * @param max_value High bound, must match type of low
7157 *
7158 * Supported by API versions 19 and newer.
7159 */
7160extern uchar3 __attribute__((const, overloadable))clamp(uchar3 value, uchar3 min_value, uchar3 max_value);
7161#endif
7162
7163#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7164/*
7165 * Clamp a value to a specified high and low bound.
7166 *
7167 * @param amount value to be clamped. Supports 1,2,3,4 components
7168 * @param min_value Lower bound, must be scalar or matching vector.
7169 * @param max_value High bound, must match type of low
7170 *
7171 * Supported by API versions 19 and newer.
7172 */
7173extern uchar4 __attribute__((const, overloadable))clamp(uchar4 value, uchar4 min_value, uchar4 max_value);
7174#endif
7175
7176#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7177/*
7178 * Clamp a value to a specified high and low bound.
7179 *
7180 * @param amount value to be clamped. Supports 1,2,3,4 components
7181 * @param min_value Lower bound, must be scalar or matching vector.
7182 * @param max_value High bound, must match type of low
7183 *
7184 * Supported by API versions 19 and newer.
7185 */
7186extern short __attribute__((const, overloadable))clamp(short value, short min_value, short max_value);
7187#endif
7188
7189#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7190/*
7191 * Clamp a value to a specified high and low bound.
7192 *
7193 * @param amount value to be clamped. Supports 1,2,3,4 components
7194 * @param min_value Lower bound, must be scalar or matching vector.
7195 * @param max_value High bound, must match type of low
7196 *
7197 * Supported by API versions 19 and newer.
7198 */
7199extern short2 __attribute__((const, overloadable))clamp(short2 value, short2 min_value, short2 max_value);
7200#endif
7201
7202#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7203/*
7204 * Clamp a value to a specified high and low bound.
7205 *
7206 * @param amount value to be clamped. Supports 1,2,3,4 components
7207 * @param min_value Lower bound, must be scalar or matching vector.
7208 * @param max_value High bound, must match type of low
7209 *
7210 * Supported by API versions 19 and newer.
7211 */
7212extern short3 __attribute__((const, overloadable))clamp(short3 value, short3 min_value, short3 max_value);
7213#endif
7214
7215#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7216/*
7217 * Clamp a value to a specified high and low bound.
7218 *
7219 * @param amount value to be clamped. Supports 1,2,3,4 components
7220 * @param min_value Lower bound, must be scalar or matching vector.
7221 * @param max_value High bound, must match type of low
7222 *
7223 * Supported by API versions 19 and newer.
7224 */
7225extern short4 __attribute__((const, overloadable))clamp(short4 value, short4 min_value, short4 max_value);
7226#endif
7227
7228#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7229/*
7230 * Clamp a value to a specified high and low bound.
7231 *
7232 * @param amount value to be clamped. Supports 1,2,3,4 components
7233 * @param min_value Lower bound, must be scalar or matching vector.
7234 * @param max_value High bound, must match type of low
7235 *
7236 * Supported by API versions 19 and newer.
7237 */
7238extern ushort __attribute__((const, overloadable))clamp(ushort value, ushort min_value, ushort max_value);
7239#endif
7240
7241#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7242/*
7243 * Clamp a value to a specified high and low bound.
7244 *
7245 * @param amount value to be clamped. Supports 1,2,3,4 components
7246 * @param min_value Lower bound, must be scalar or matching vector.
7247 * @param max_value High bound, must match type of low
7248 *
7249 * Supported by API versions 19 and newer.
7250 */
7251extern ushort2 __attribute__((const, overloadable))clamp(ushort2 value, ushort2 min_value, ushort2 max_value);
7252#endif
7253
7254#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7255/*
7256 * Clamp a value to a specified high and low bound.
7257 *
7258 * @param amount value to be clamped. Supports 1,2,3,4 components
7259 * @param min_value Lower bound, must be scalar or matching vector.
7260 * @param max_value High bound, must match type of low
7261 *
7262 * Supported by API versions 19 and newer.
7263 */
7264extern ushort3 __attribute__((const, overloadable))clamp(ushort3 value, ushort3 min_value, ushort3 max_value);
7265#endif
7266
7267#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7268/*
7269 * Clamp a value to a specified high and low bound.
7270 *
7271 * @param amount value to be clamped. Supports 1,2,3,4 components
7272 * @param min_value Lower bound, must be scalar or matching vector.
7273 * @param max_value High bound, must match type of low
7274 *
7275 * Supported by API versions 19 and newer.
7276 */
7277extern ushort4 __attribute__((const, overloadable))clamp(ushort4 value, ushort4 min_value, ushort4 max_value);
7278#endif
7279
7280#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7281/*
7282 * Clamp a value to a specified high and low bound.
7283 *
7284 * @param amount value to be clamped. Supports 1,2,3,4 components
7285 * @param min_value Lower bound, must be scalar or matching vector.
7286 * @param max_value High bound, must match type of low
7287 *
7288 * Supported by API versions 19 and newer.
7289 */
7290extern int __attribute__((const, overloadable))clamp(int value, int min_value, int max_value);
7291#endif
7292
7293#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7294/*
7295 * Clamp a value to a specified high and low bound.
7296 *
7297 * @param amount value to be clamped. Supports 1,2,3,4 components
7298 * @param min_value Lower bound, must be scalar or matching vector.
7299 * @param max_value High bound, must match type of low
7300 *
7301 * Supported by API versions 19 and newer.
7302 */
7303extern int2 __attribute__((const, overloadable))clamp(int2 value, int2 min_value, int2 max_value);
7304#endif
7305
7306#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7307/*
7308 * Clamp a value to a specified high and low bound.
7309 *
7310 * @param amount value to be clamped. Supports 1,2,3,4 components
7311 * @param min_value Lower bound, must be scalar or matching vector.
7312 * @param max_value High bound, must match type of low
7313 *
7314 * Supported by API versions 19 and newer.
7315 */
7316extern int3 __attribute__((const, overloadable))clamp(int3 value, int3 min_value, int3 max_value);
7317#endif
7318
7319#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7320/*
7321 * Clamp a value to a specified high and low bound.
7322 *
7323 * @param amount value to be clamped. Supports 1,2,3,4 components
7324 * @param min_value Lower bound, must be scalar or matching vector.
7325 * @param max_value High bound, must match type of low
7326 *
7327 * Supported by API versions 19 and newer.
7328 */
7329extern int4 __attribute__((const, overloadable))clamp(int4 value, int4 min_value, int4 max_value);
7330#endif
7331
7332#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7333/*
7334 * Clamp a value to a specified high and low bound.
7335 *
7336 * @param amount value to be clamped. Supports 1,2,3,4 components
7337 * @param min_value Lower bound, must be scalar or matching vector.
7338 * @param max_value High bound, must match type of low
7339 *
7340 * Supported by API versions 19 and newer.
7341 */
7342extern uint __attribute__((const, overloadable))clamp(uint value, uint min_value, uint max_value);
7343#endif
7344
7345#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7346/*
7347 * Clamp a value to a specified high and low bound.
7348 *
7349 * @param amount value to be clamped. Supports 1,2,3,4 components
7350 * @param min_value Lower bound, must be scalar or matching vector.
7351 * @param max_value High bound, must match type of low
7352 *
7353 * Supported by API versions 19 and newer.
7354 */
7355extern uint2 __attribute__((const, overloadable))clamp(uint2 value, uint2 min_value, uint2 max_value);
7356#endif
7357
7358#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7359/*
7360 * Clamp a value to a specified high and low bound.
7361 *
7362 * @param amount value to be clamped. Supports 1,2,3,4 components
7363 * @param min_value Lower bound, must be scalar or matching vector.
7364 * @param max_value High bound, must match type of low
7365 *
7366 * Supported by API versions 19 and newer.
7367 */
7368extern uint3 __attribute__((const, overloadable))clamp(uint3 value, uint3 min_value, uint3 max_value);
7369#endif
7370
7371#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7372/*
7373 * Clamp a value to a specified high and low bound.
7374 *
7375 * @param amount value to be clamped. Supports 1,2,3,4 components
7376 * @param min_value Lower bound, must be scalar or matching vector.
7377 * @param max_value High bound, must match type of low
7378 *
7379 * Supported by API versions 19 and newer.
7380 */
7381extern uint4 __attribute__((const, overloadable))clamp(uint4 value, uint4 min_value, uint4 max_value);
7382#endif
7383
7384#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7385/*
7386 * Clamp a value to a specified high and low bound.
7387 *
7388 * @param amount value to be clamped. Supports 1,2,3,4 components
7389 * @param min_value Lower bound, must be scalar or matching vector.
7390 * @param max_value High bound, must match type of low
7391 *
7392 * Supported by API versions 19 and newer.
7393 */
7394extern long __attribute__((const, overloadable))clamp(long value, long min_value, long max_value);
7395#endif
7396
7397#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7398/*
7399 * Clamp a value to a specified high and low bound.
7400 *
7401 * @param amount value to be clamped. Supports 1,2,3,4 components
7402 * @param min_value Lower bound, must be scalar or matching vector.
7403 * @param max_value High bound, must match type of low
7404 *
7405 * Supported by API versions 19 and newer.
7406 */
7407extern long2 __attribute__((const, overloadable))clamp(long2 value, long2 min_value, long2 max_value);
7408#endif
7409
7410#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7411/*
7412 * Clamp a value to a specified high and low bound.
7413 *
7414 * @param amount value to be clamped. Supports 1,2,3,4 components
7415 * @param min_value Lower bound, must be scalar or matching vector.
7416 * @param max_value High bound, must match type of low
7417 *
7418 * Supported by API versions 19 and newer.
7419 */
7420extern long3 __attribute__((const, overloadable))clamp(long3 value, long3 min_value, long3 max_value);
7421#endif
7422
7423#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7424/*
7425 * Clamp a value to a specified high and low bound.
7426 *
7427 * @param amount value to be clamped. Supports 1,2,3,4 components
7428 * @param min_value Lower bound, must be scalar or matching vector.
7429 * @param max_value High bound, must match type of low
7430 *
7431 * Supported by API versions 19 and newer.
7432 */
7433extern long4 __attribute__((const, overloadable))clamp(long4 value, long4 min_value, long4 max_value);
7434#endif
7435
7436#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7437/*
7438 * Clamp a value to a specified high and low bound.
7439 *
7440 * @param amount value to be clamped. Supports 1,2,3,4 components
7441 * @param min_value Lower bound, must be scalar or matching vector.
7442 * @param max_value High bound, must match type of low
7443 *
7444 * Supported by API versions 19 and newer.
7445 */
7446extern ulong __attribute__((const, overloadable))clamp(ulong value, ulong min_value, ulong max_value);
7447#endif
7448
7449#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7450/*
7451 * Clamp a value to a specified high and low bound.
7452 *
7453 * @param amount value to be clamped. Supports 1,2,3,4 components
7454 * @param min_value Lower bound, must be scalar or matching vector.
7455 * @param max_value High bound, must match type of low
7456 *
7457 * Supported by API versions 19 and newer.
7458 */
7459extern ulong2 __attribute__((const, overloadable))clamp(ulong2 value, ulong2 min_value, ulong2 max_value);
7460#endif
7461
7462#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7463/*
7464 * Clamp a value to a specified high and low bound.
7465 *
7466 * @param amount value to be clamped. Supports 1,2,3,4 components
7467 * @param min_value Lower bound, must be scalar or matching vector.
7468 * @param max_value High bound, must match type of low
7469 *
7470 * Supported by API versions 19 and newer.
7471 */
7472extern ulong3 __attribute__((const, overloadable))clamp(ulong3 value, ulong3 min_value, ulong3 max_value);
7473#endif
7474
7475#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7476/*
7477 * Clamp a value to a specified high and low bound.
7478 *
7479 * @param amount value to be clamped. Supports 1,2,3,4 components
7480 * @param min_value Lower bound, must be scalar or matching vector.
7481 * @param max_value High bound, must match type of low
7482 *
7483 * Supported by API versions 19 and newer.
7484 */
7485extern ulong4 __attribute__((const, overloadable))clamp(ulong4 value, ulong4 min_value, ulong4 max_value);
7486#endif
7487
7488#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7489/*
7490 * Clamp a value to a specified high and low bound.
7491 *
7492 * @param amount value to be clamped. Supports 1,2,3,4 components
7493 * @param min_value Lower bound, must be scalar or matching vector.
7494 * @param max_value High bound, must match type of low
7495 *
7496 * Supported by API versions 19 and newer.
7497 */
7498extern char __attribute__((const, overloadable))clamp(char value, char min_value, char max_value);
7499#endif
7500
7501#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7502/*
7503 * Clamp a value to a specified high and low bound.
7504 *
7505 * @param amount value to be clamped. Supports 1,2,3,4 components
7506 * @param min_value Lower bound, must be scalar or matching vector.
7507 * @param max_value High bound, must match type of low
7508 *
7509 * Supported by API versions 19 and newer.
7510 */
7511extern char2 __attribute__((const, overloadable))clamp(char2 value, char min_value, char max_value);
7512#endif
7513
7514#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7515/*
7516 * Clamp a value to a specified high and low bound.
7517 *
7518 * @param amount value to be clamped. Supports 1,2,3,4 components
7519 * @param min_value Lower bound, must be scalar or matching vector.
7520 * @param max_value High bound, must match type of low
7521 *
7522 * Supported by API versions 19 and newer.
7523 */
7524extern char3 __attribute__((const, overloadable))clamp(char3 value, char min_value, char max_value);
7525#endif
7526
7527#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7528/*
7529 * Clamp a value to a specified high and low bound.
7530 *
7531 * @param amount value to be clamped. Supports 1,2,3,4 components
7532 * @param min_value Lower bound, must be scalar or matching vector.
7533 * @param max_value High bound, must match type of low
7534 *
7535 * Supported by API versions 19 and newer.
7536 */
7537extern char4 __attribute__((const, overloadable))clamp(char4 value, char min_value, char max_value);
7538#endif
7539
7540#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7541/*
7542 * Clamp a value to a specified high and low bound.
7543 *
7544 * @param amount value to be clamped. Supports 1,2,3,4 components
7545 * @param min_value Lower bound, must be scalar or matching vector.
7546 * @param max_value High bound, must match type of low
7547 *
7548 * Supported by API versions 19 and newer.
7549 */
7550extern uchar __attribute__((const, overloadable))clamp(uchar value, uchar min_value, uchar max_value);
7551#endif
7552
7553#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7554/*
7555 * Clamp a value to a specified high and low bound.
7556 *
7557 * @param amount value to be clamped. Supports 1,2,3,4 components
7558 * @param min_value Lower bound, must be scalar or matching vector.
7559 * @param max_value High bound, must match type of low
7560 *
7561 * Supported by API versions 19 and newer.
7562 */
7563extern uchar2 __attribute__((const, overloadable))clamp(uchar2 value, uchar min_value, uchar max_value);
7564#endif
7565
7566#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7567/*
7568 * Clamp a value to a specified high and low bound.
7569 *
7570 * @param amount value to be clamped. Supports 1,2,3,4 components
7571 * @param min_value Lower bound, must be scalar or matching vector.
7572 * @param max_value High bound, must match type of low
7573 *
7574 * Supported by API versions 19 and newer.
7575 */
7576extern uchar3 __attribute__((const, overloadable))clamp(uchar3 value, uchar min_value, uchar max_value);
7577#endif
7578
7579#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7580/*
7581 * Clamp a value to a specified high and low bound.
7582 *
7583 * @param amount value to be clamped. Supports 1,2,3,4 components
7584 * @param min_value Lower bound, must be scalar or matching vector.
7585 * @param max_value High bound, must match type of low
7586 *
7587 * Supported by API versions 19 and newer.
7588 */
7589extern uchar4 __attribute__((const, overloadable))clamp(uchar4 value, uchar min_value, uchar max_value);
7590#endif
7591
7592#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7593/*
7594 * Clamp a value to a specified high and low bound.
7595 *
7596 * @param amount value to be clamped. Supports 1,2,3,4 components
7597 * @param min_value Lower bound, must be scalar or matching vector.
7598 * @param max_value High bound, must match type of low
7599 *
7600 * Supported by API versions 19 and newer.
7601 */
7602extern short __attribute__((const, overloadable))clamp(short value, short min_value, short max_value);
7603#endif
7604
7605#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7606/*
7607 * Clamp a value to a specified high and low bound.
7608 *
7609 * @param amount value to be clamped. Supports 1,2,3,4 components
7610 * @param min_value Lower bound, must be scalar or matching vector.
7611 * @param max_value High bound, must match type of low
7612 *
7613 * Supported by API versions 19 and newer.
7614 */
7615extern short2 __attribute__((const, overloadable))clamp(short2 value, short min_value, short max_value);
7616#endif
7617
7618#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7619/*
7620 * Clamp a value to a specified high and low bound.
7621 *
7622 * @param amount value to be clamped. Supports 1,2,3,4 components
7623 * @param min_value Lower bound, must be scalar or matching vector.
7624 * @param max_value High bound, must match type of low
7625 *
7626 * Supported by API versions 19 and newer.
7627 */
7628extern short3 __attribute__((const, overloadable))clamp(short3 value, short min_value, short max_value);
7629#endif
7630
7631#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7632/*
7633 * Clamp a value to a specified high and low bound.
7634 *
7635 * @param amount value to be clamped. Supports 1,2,3,4 components
7636 * @param min_value Lower bound, must be scalar or matching vector.
7637 * @param max_value High bound, must match type of low
7638 *
7639 * Supported by API versions 19 and newer.
7640 */
7641extern short4 __attribute__((const, overloadable))clamp(short4 value, short min_value, short max_value);
7642#endif
7643
7644#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7645/*
7646 * Clamp a value to a specified high and low bound.
7647 *
7648 * @param amount value to be clamped. Supports 1,2,3,4 components
7649 * @param min_value Lower bound, must be scalar or matching vector.
7650 * @param max_value High bound, must match type of low
7651 *
7652 * Supported by API versions 19 and newer.
7653 */
7654extern ushort __attribute__((const, overloadable))clamp(ushort value, ushort min_value, ushort max_value);
7655#endif
7656
7657#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7658/*
7659 * Clamp a value to a specified high and low bound.
7660 *
7661 * @param amount value to be clamped. Supports 1,2,3,4 components
7662 * @param min_value Lower bound, must be scalar or matching vector.
7663 * @param max_value High bound, must match type of low
7664 *
7665 * Supported by API versions 19 and newer.
7666 */
7667extern ushort2 __attribute__((const, overloadable))clamp(ushort2 value, ushort min_value, ushort max_value);
7668#endif
7669
7670#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7671/*
7672 * Clamp a value to a specified high and low bound.
7673 *
7674 * @param amount value to be clamped. Supports 1,2,3,4 components
7675 * @param min_value Lower bound, must be scalar or matching vector.
7676 * @param max_value High bound, must match type of low
7677 *
7678 * Supported by API versions 19 and newer.
7679 */
7680extern ushort3 __attribute__((const, overloadable))clamp(ushort3 value, ushort min_value, ushort max_value);
7681#endif
7682
7683#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7684/*
7685 * Clamp a value to a specified high and low bound.
7686 *
7687 * @param amount value to be clamped. Supports 1,2,3,4 components
7688 * @param min_value Lower bound, must be scalar or matching vector.
7689 * @param max_value High bound, must match type of low
7690 *
7691 * Supported by API versions 19 and newer.
7692 */
7693extern ushort4 __attribute__((const, overloadable))clamp(ushort4 value, ushort min_value, ushort max_value);
7694#endif
7695
7696#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7697/*
7698 * Clamp a value to a specified high and low bound.
7699 *
7700 * @param amount value to be clamped. Supports 1,2,3,4 components
7701 * @param min_value Lower bound, must be scalar or matching vector.
7702 * @param max_value High bound, must match type of low
7703 *
7704 * Supported by API versions 19 and newer.
7705 */
7706extern int __attribute__((const, overloadable))clamp(int value, int min_value, int max_value);
7707#endif
7708
7709#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7710/*
7711 * Clamp a value to a specified high and low bound.
7712 *
7713 * @param amount value to be clamped. Supports 1,2,3,4 components
7714 * @param min_value Lower bound, must be scalar or matching vector.
7715 * @param max_value High bound, must match type of low
7716 *
7717 * Supported by API versions 19 and newer.
7718 */
7719extern int2 __attribute__((const, overloadable))clamp(int2 value, int min_value, int max_value);
7720#endif
7721
7722#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7723/*
7724 * Clamp a value to a specified high and low bound.
7725 *
7726 * @param amount value to be clamped. Supports 1,2,3,4 components
7727 * @param min_value Lower bound, must be scalar or matching vector.
7728 * @param max_value High bound, must match type of low
7729 *
7730 * Supported by API versions 19 and newer.
7731 */
7732extern int3 __attribute__((const, overloadable))clamp(int3 value, int min_value, int max_value);
7733#endif
7734
7735#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7736/*
7737 * Clamp a value to a specified high and low bound.
7738 *
7739 * @param amount value to be clamped. Supports 1,2,3,4 components
7740 * @param min_value Lower bound, must be scalar or matching vector.
7741 * @param max_value High bound, must match type of low
7742 *
7743 * Supported by API versions 19 and newer.
7744 */
7745extern int4 __attribute__((const, overloadable))clamp(int4 value, int min_value, int max_value);
7746#endif
7747
7748#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7749/*
7750 * Clamp a value to a specified high and low bound.
7751 *
7752 * @param amount value to be clamped. Supports 1,2,3,4 components
7753 * @param min_value Lower bound, must be scalar or matching vector.
7754 * @param max_value High bound, must match type of low
7755 *
7756 * Supported by API versions 19 and newer.
7757 */
7758extern uint __attribute__((const, overloadable))clamp(uint value, uint min_value, uint max_value);
7759#endif
7760
7761#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7762/*
7763 * Clamp a value to a specified high and low bound.
7764 *
7765 * @param amount value to be clamped. Supports 1,2,3,4 components
7766 * @param min_value Lower bound, must be scalar or matching vector.
7767 * @param max_value High bound, must match type of low
7768 *
7769 * Supported by API versions 19 and newer.
7770 */
7771extern uint2 __attribute__((const, overloadable))clamp(uint2 value, uint min_value, uint max_value);
7772#endif
7773
7774#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7775/*
7776 * Clamp a value to a specified high and low bound.
7777 *
7778 * @param amount value to be clamped. Supports 1,2,3,4 components
7779 * @param min_value Lower bound, must be scalar or matching vector.
7780 * @param max_value High bound, must match type of low
7781 *
7782 * Supported by API versions 19 and newer.
7783 */
7784extern uint3 __attribute__((const, overloadable))clamp(uint3 value, uint min_value, uint max_value);
7785#endif
7786
7787#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7788/*
7789 * Clamp a value to a specified high and low bound.
7790 *
7791 * @param amount value to be clamped. Supports 1,2,3,4 components
7792 * @param min_value Lower bound, must be scalar or matching vector.
7793 * @param max_value High bound, must match type of low
7794 *
7795 * Supported by API versions 19 and newer.
7796 */
7797extern uint4 __attribute__((const, overloadable))clamp(uint4 value, uint min_value, uint max_value);
7798#endif
7799
7800#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7801/*
7802 * Clamp a value to a specified high and low bound.
7803 *
7804 * @param amount value to be clamped. Supports 1,2,3,4 components
7805 * @param min_value Lower bound, must be scalar or matching vector.
7806 * @param max_value High bound, must match type of low
7807 *
7808 * Supported by API versions 19 and newer.
7809 */
7810extern long __attribute__((const, overloadable))clamp(long value, long min_value, long max_value);
7811#endif
7812
7813#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7814/*
7815 * Clamp a value to a specified high and low bound.
7816 *
7817 * @param amount value to be clamped. Supports 1,2,3,4 components
7818 * @param min_value Lower bound, must be scalar or matching vector.
7819 * @param max_value High bound, must match type of low
7820 *
7821 * Supported by API versions 19 and newer.
7822 */
7823extern long2 __attribute__((const, overloadable))clamp(long2 value, long min_value, long max_value);
7824#endif
7825
7826#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7827/*
7828 * Clamp a value to a specified high and low bound.
7829 *
7830 * @param amount value to be clamped. Supports 1,2,3,4 components
7831 * @param min_value Lower bound, must be scalar or matching vector.
7832 * @param max_value High bound, must match type of low
7833 *
7834 * Supported by API versions 19 and newer.
7835 */
7836extern long3 __attribute__((const, overloadable))clamp(long3 value, long min_value, long max_value);
7837#endif
7838
7839#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7840/*
7841 * Clamp a value to a specified high and low bound.
7842 *
7843 * @param amount value to be clamped. Supports 1,2,3,4 components
7844 * @param min_value Lower bound, must be scalar or matching vector.
7845 * @param max_value High bound, must match type of low
7846 *
7847 * Supported by API versions 19 and newer.
7848 */
7849extern long4 __attribute__((const, overloadable))clamp(long4 value, long min_value, long max_value);
7850#endif
7851
7852#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7853/*
7854 * Clamp a value to a specified high and low bound.
7855 *
7856 * @param amount value to be clamped. Supports 1,2,3,4 components
7857 * @param min_value Lower bound, must be scalar or matching vector.
7858 * @param max_value High bound, must match type of low
7859 *
7860 * Supported by API versions 19 and newer.
7861 */
7862extern ulong __attribute__((const, overloadable))clamp(ulong value, ulong min_value, ulong max_value);
7863#endif
7864
7865#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7866/*
7867 * Clamp a value to a specified high and low bound.
7868 *
7869 * @param amount value to be clamped. Supports 1,2,3,4 components
7870 * @param min_value Lower bound, must be scalar or matching vector.
7871 * @param max_value High bound, must match type of low
7872 *
7873 * Supported by API versions 19 and newer.
7874 */
7875extern ulong2 __attribute__((const, overloadable))clamp(ulong2 value, ulong min_value, ulong max_value);
7876#endif
7877
7878#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7879/*
7880 * Clamp a value to a specified high and low bound.
7881 *
7882 * @param amount value to be clamped. Supports 1,2,3,4 components
7883 * @param min_value Lower bound, must be scalar or matching vector.
7884 * @param max_value High bound, must match type of low
7885 *
7886 * Supported by API versions 19 and newer.
7887 */
7888extern ulong3 __attribute__((const, overloadable))clamp(ulong3 value, ulong min_value, ulong max_value);
7889#endif
7890
7891#if (defined(RS_VERSION) && (RS_VERSION >= 19))
7892/*
7893 * Clamp a value to a specified high and low bound.
7894 *
7895 * @param amount value to be clamped. Supports 1,2,3,4 components
7896 * @param min_value Lower bound, must be scalar or matching vector.
7897 * @param max_value High bound, must match type of low
7898 *
7899 * Supported by API versions 19 and newer.
7900 */
7901extern ulong4 __attribute__((const, overloadable))clamp(ulong4 value, ulong min_value, ulong max_value);
7902#endif
7903
7904#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7905/*
7906 * Convert from radians to degrees.
7907 *
7908 * Supported by API versions 9 and newer.
7909 */
7910extern float __attribute__((const, overloadable))degrees(float value);
7911#endif
7912
7913#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7914/*
7915 * Convert from radians to degrees.
7916 *
7917 * Supported by API versions 9 and newer.
7918 */
7919extern float2 __attribute__((const, overloadable))degrees(float2 value);
7920#endif
7921
7922#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7923/*
7924 * Convert from radians to degrees.
7925 *
7926 * Supported by API versions 9 and newer.
7927 */
7928extern float3 __attribute__((const, overloadable))degrees(float3 value);
7929#endif
7930
7931#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7932/*
7933 * Convert from radians to degrees.
7934 *
7935 * Supported by API versions 9 and newer.
7936 */
7937extern float4 __attribute__((const, overloadable))degrees(float4 value);
7938#endif
7939
7940#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7941/*
7942 * return start + ((stop - start) * amount)
7943 *
7944 * Supported by API versions 9 and newer.
7945 */
7946extern float __attribute__((const, overloadable))mix(float start, float stop, float amount);
7947#endif
7948
7949#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7950/*
7951 * return start + ((stop - start) * amount)
7952 *
7953 * Supported by API versions 9 and newer.
7954 */
7955extern float2 __attribute__((const, overloadable))mix(float2 start, float2 stop, float2 amount);
7956#endif
7957
7958#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7959/*
7960 * return start + ((stop - start) * amount)
7961 *
7962 * Supported by API versions 9 and newer.
7963 */
7964extern float3 __attribute__((const, overloadable))mix(float3 start, float3 stop, float3 amount);
7965#endif
7966
7967#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7968/*
7969 * return start + ((stop - start) * amount)
7970 *
7971 * Supported by API versions 9 and newer.
7972 */
7973extern float4 __attribute__((const, overloadable))mix(float4 start, float4 stop, float4 amount);
7974#endif
7975
7976#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7977/*
7978 * return start + ((stop - start) * amount)
7979 *
7980 * Supported by API versions 9 and newer.
7981 */
7982extern float __attribute__((const, overloadable))mix(float start, float stop, float amount);
7983#endif
7984
7985#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7986/*
7987 * return start + ((stop - start) * amount)
7988 *
7989 * Supported by API versions 9 and newer.
7990 */
7991extern float2 __attribute__((const, overloadable))mix(float2 start, float2 stop, float amount);
7992#endif
7993
7994#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7995/*
7996 * return start + ((stop - start) * amount)
7997 *
7998 * Supported by API versions 9 and newer.
7999 */
8000extern float3 __attribute__((const, overloadable))mix(float3 start, float3 stop, float amount);
8001#endif
8002
8003#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8004/*
8005 * return start + ((stop - start) * amount)
8006 *
8007 * Supported by API versions 9 and newer.
8008 */
8009extern float4 __attribute__((const, overloadable))mix(float4 start, float4 stop, float amount);
8010#endif
8011
8012#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8013/*
8014 * Convert from degrees to radians.
8015 *
8016 * Supported by API versions 9 and newer.
8017 */
8018extern float __attribute__((const, overloadable))radians(float value);
8019#endif
8020
8021#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8022/*
8023 * Convert from degrees to radians.
8024 *
8025 * Supported by API versions 9 and newer.
8026 */
8027extern float2 __attribute__((const, overloadable))radians(float2 value);
8028#endif
8029
8030#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8031/*
8032 * Convert from degrees to radians.
8033 *
8034 * Supported by API versions 9 and newer.
8035 */
8036extern float3 __attribute__((const, overloadable))radians(float3 value);
8037#endif
8038
8039#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8040/*
8041 * Convert from degrees to radians.
8042 *
8043 * Supported by API versions 9 and newer.
8044 */
8045extern float4 __attribute__((const, overloadable))radians(float4 value);
8046#endif
8047
8048#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8049/*
8050 * if (v < edge)
8051 * return 0.f;
8052 * else
8053 * return 1.f;
8054 *
8055 * Supported by API versions 9 and newer.
8056 */
8057extern float __attribute__((const, overloadable))step(float edge, float v);
8058#endif
8059
8060#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8061/*
8062 * if (v < edge)
8063 * return 0.f;
8064 * else
8065 * return 1.f;
8066 *
8067 * Supported by API versions 9 and newer.
8068 */
8069extern float2 __attribute__((const, overloadable))step(float2 edge, float2 v);
8070#endif
8071
8072#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8073/*
8074 * if (v < edge)
8075 * return 0.f;
8076 * else
8077 * return 1.f;
8078 *
8079 * Supported by API versions 9 and newer.
8080 */
8081extern float3 __attribute__((const, overloadable))step(float3 edge, float3 v);
8082#endif
8083
8084#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8085/*
8086 * if (v < edge)
8087 * return 0.f;
8088 * else
8089 * return 1.f;
8090 *
8091 * Supported by API versions 9 and newer.
8092 */
8093extern float4 __attribute__((const, overloadable))step(float4 edge, float4 v);
8094#endif
8095
8096#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8097/*
8098 * if (v < edge)
8099 * return 0.f;
8100 * else
8101 * return 1.f;
8102 *
8103 * Supported by API versions 9 and newer.
8104 */
8105extern float2 __attribute__((const, overloadable))step(float2 edge, float v);
8106#endif
8107
8108#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8109/*
8110 * if (v < edge)
8111 * return 0.f;
8112 * else
8113 * return 1.f;
8114 *
8115 * Supported by API versions 9 and newer.
8116 */
8117extern float3 __attribute__((const, overloadable))step(float3 edge, float v);
8118#endif
8119
8120#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8121/*
8122 * if (v < edge)
8123 * return 0.f;
8124 * else
8125 * return 1.f;
8126 *
8127 * Supported by API versions 9 and newer.
8128 */
8129extern float4 __attribute__((const, overloadable))step(float4 edge, float v);
8130#endif
8131
Jean-Luc Brouillet0ec16352014-01-22 15:23:30 -08008132#if (defined(RS_VERSION) && (RS_VERSION >= 20))
8133/*
8134 * if (v < edge)
8135 * return 0.f;
8136 * else
8137 * return 1.f;
8138 *
8139 * Supported by API versions 20 and newer.
8140 */
8141extern float2 __attribute__((const, overloadable))step(float edge, float2 v);
8142#endif
8143
8144#if (defined(RS_VERSION) && (RS_VERSION >= 20))
8145/*
8146 * if (v < edge)
8147 * return 0.f;
8148 * else
8149 * return 1.f;
8150 *
8151 * Supported by API versions 20 and newer.
8152 */
8153extern float3 __attribute__((const, overloadable))step(float edge, float3 v);
8154#endif
8155
8156#if (defined(RS_VERSION) && (RS_VERSION >= 20))
8157/*
8158 * if (v < edge)
8159 * return 0.f;
8160 * else
8161 * return 1.f;
8162 *
8163 * Supported by API versions 20 and newer.
8164 */
8165extern float4 __attribute__((const, overloadable))step(float edge, float4 v);
8166#endif
8167
Jason Sams29087fa2014-01-09 17:06:17 -08008168#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8169/*
8170 * Return the sign of a value.
8171 *
8172 * if (v < 0) return -1.f;
8173 * else if (v > 0) return 1.f;
8174 * else return 0.f;
8175 *
8176 * Supported by API versions 9 and newer.
8177 */
8178extern float __attribute__((const, overloadable))sign(float v);
8179#endif
8180
8181#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8182/*
8183 * Return the sign of a value.
8184 *
8185 * if (v < 0) return -1.f;
8186 * else if (v > 0) return 1.f;
8187 * else return 0.f;
8188 *
8189 * Supported by API versions 9 and newer.
8190 */
8191extern float2 __attribute__((const, overloadable))sign(float2 v);
8192#endif
8193
8194#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8195/*
8196 * Return the sign of a value.
8197 *
8198 * if (v < 0) return -1.f;
8199 * else if (v > 0) return 1.f;
8200 * else return 0.f;
8201 *
8202 * Supported by API versions 9 and newer.
8203 */
8204extern float3 __attribute__((const, overloadable))sign(float3 v);
8205#endif
8206
8207#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8208/*
8209 * Return the sign of a value.
8210 *
8211 * if (v < 0) return -1.f;
8212 * else if (v > 0) return 1.f;
8213 * else return 0.f;
8214 *
8215 * Supported by API versions 9 and newer.
8216 */
8217extern float4 __attribute__((const, overloadable))sign(float4 v);
8218#endif
8219
8220#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8221/*
8222 * Compute the cross product of two vectors.
8223 *
8224 * Supported by API versions 9 and newer.
8225 */
8226extern float3 __attribute__((const, overloadable))cross(float3 lhs, float3 rhs);
8227#endif
8228
8229#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8230/*
8231 * Compute the cross product of two vectors.
8232 *
8233 * Supported by API versions 9 and newer.
8234 */
8235extern float4 __attribute__((const, overloadable))cross(float4 lhs, float4 rhs);
8236#endif
8237
8238#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8239/*
8240 * Compute the dot product of two vectors.
8241 *
8242 * Supported by API versions 9 and newer.
8243 */
8244extern float __attribute__((const, overloadable))dot(float lhs, float rhs);
8245#endif
8246
8247#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8248/*
8249 * Compute the dot product of two vectors.
8250 *
8251 * Supported by API versions 9 and newer.
8252 */
8253extern float __attribute__((const, overloadable))dot(float2 lhs, float2 rhs);
8254#endif
8255
8256#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8257/*
8258 * Compute the dot product of two vectors.
8259 *
8260 * Supported by API versions 9 and newer.
8261 */
8262extern float __attribute__((const, overloadable))dot(float3 lhs, float3 rhs);
8263#endif
8264
8265#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8266/*
8267 * Compute the dot product of two vectors.
8268 *
8269 * Supported by API versions 9 and newer.
8270 */
8271extern float __attribute__((const, overloadable))dot(float4 lhs, float4 rhs);
8272#endif
8273
8274#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8275/*
8276 * Compute the length of a vector.
8277 *
8278 * Supported by API versions 9 and newer.
8279 */
8280extern float __attribute__((const, overloadable))length(float v);
8281#endif
8282
8283#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8284/*
8285 * Compute the length of a vector.
8286 *
8287 * Supported by API versions 9 and newer.
8288 */
8289extern float __attribute__((const, overloadable))length(float2 v);
8290#endif
8291
8292#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8293/*
8294 * Compute the length of a vector.
8295 *
8296 * Supported by API versions 9 and newer.
8297 */
8298extern float __attribute__((const, overloadable))length(float3 v);
8299#endif
8300
8301#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8302/*
8303 * Compute the length of a vector.
8304 *
8305 * Supported by API versions 9 and newer.
8306 */
8307extern float __attribute__((const, overloadable))length(float4 v);
8308#endif
8309
8310#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8311/*
8312 * Compute the distance between two points.
8313 *
8314 * Supported by API versions 9 and newer.
8315 */
8316extern float __attribute__((const, overloadable))distance(float lhs, float rhs);
8317#endif
8318
8319#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8320/*
8321 * Compute the distance between two points.
8322 *
8323 * Supported by API versions 9 and newer.
8324 */
8325extern float __attribute__((const, overloadable))distance(float2 lhs, float2 rhs);
8326#endif
8327
8328#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8329/*
8330 * Compute the distance between two points.
8331 *
8332 * Supported by API versions 9 and newer.
8333 */
8334extern float __attribute__((const, overloadable))distance(float3 lhs, float3 rhs);
8335#endif
8336
8337#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8338/*
8339 * Compute the distance between two points.
8340 *
8341 * Supported by API versions 9 and newer.
8342 */
8343extern float __attribute__((const, overloadable))distance(float4 lhs, float4 rhs);
8344#endif
8345
8346#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8347/*
8348 * Normalize a vector.
8349 *
8350 * Supported by API versions 9 and newer.
8351 */
8352extern float __attribute__((const, overloadable))normalize(float v);
8353#endif
8354
8355#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8356/*
8357 * Normalize a vector.
8358 *
8359 * Supported by API versions 9 and newer.
8360 */
8361extern float2 __attribute__((const, overloadable))normalize(float2 v);
8362#endif
8363
8364#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8365/*
8366 * Normalize a vector.
8367 *
8368 * Supported by API versions 9 and newer.
8369 */
8370extern float3 __attribute__((const, overloadable))normalize(float3 v);
8371#endif
8372
8373#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8374/*
8375 * Normalize a vector.
8376 *
8377 * Supported by API versions 9 and newer.
8378 */
8379extern float4 __attribute__((const, overloadable))normalize(float4 v);
8380#endif
8381
8382#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8383/*
8384 * Return the approximate reciprocal of a value.
8385 *
8386 * Supported by API versions 17 and newer.
8387 */
8388extern float __attribute__((const, overloadable))half_recip(float v);
8389#endif
8390
8391#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8392/*
8393 * Return the approximate reciprocal of a value.
8394 *
8395 * Supported by API versions 17 and newer.
8396 */
8397extern float2 __attribute__((const, overloadable))half_recip(float2 v);
8398#endif
8399
8400#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8401/*
8402 * Return the approximate reciprocal of a value.
8403 *
8404 * Supported by API versions 17 and newer.
8405 */
8406extern float3 __attribute__((const, overloadable))half_recip(float3 v);
8407#endif
8408
8409#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8410/*
8411 * Return the approximate reciprocal of a value.
8412 *
8413 * Supported by API versions 17 and newer.
8414 */
8415extern float4 __attribute__((const, overloadable))half_recip(float4 v);
8416#endif
8417
8418#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8419/*
8420 * Return the approximate square root of a value.
8421 *
8422 * Supported by API versions 17 and newer.
8423 */
8424extern float __attribute__((const, overloadable))half_sqrt(float v);
8425#endif
8426
8427#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8428/*
8429 * Return the approximate square root of a value.
8430 *
8431 * Supported by API versions 17 and newer.
8432 */
8433extern float2 __attribute__((const, overloadable))half_sqrt(float2 v);
8434#endif
8435
8436#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8437/*
8438 * Return the approximate square root of a value.
8439 *
8440 * Supported by API versions 17 and newer.
8441 */
8442extern float3 __attribute__((const, overloadable))half_sqrt(float3 v);
8443#endif
8444
8445#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8446/*
8447 * Return the approximate square root of a value.
8448 *
8449 * Supported by API versions 17 and newer.
8450 */
8451extern float4 __attribute__((const, overloadable))half_sqrt(float4 v);
8452#endif
8453
8454#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8455/*
8456 * Return the approximate value of (1.f / sqrt(value)).
8457 *
8458 * Supported by API versions 17 and newer.
8459 */
8460extern float __attribute__((const, overloadable))half_rsqrt(float v);
8461#endif
8462
8463#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8464/*
8465 * Return the approximate value of (1.f / sqrt(value)).
8466 *
8467 * Supported by API versions 17 and newer.
8468 */
8469extern float2 __attribute__((const, overloadable))half_rsqrt(float2 v);
8470#endif
8471
8472#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8473/*
8474 * Return the approximate value of (1.f / sqrt(value)).
8475 *
8476 * Supported by API versions 17 and newer.
8477 */
8478extern float3 __attribute__((const, overloadable))half_rsqrt(float3 v);
8479#endif
8480
8481#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8482/*
8483 * Return the approximate value of (1.f / sqrt(value)).
8484 *
8485 * Supported by API versions 17 and newer.
8486 */
8487extern float4 __attribute__((const, overloadable))half_rsqrt(float4 v);
8488#endif
8489
8490#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8491/*
8492 * Compute the approximate length of a vector.
8493 *
8494 * Supported by API versions 17 and newer.
8495 */
8496extern float __attribute__((const, overloadable))fast_length(float v);
8497#endif
8498
8499#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8500/*
8501 * Compute the approximate length of a vector.
8502 *
8503 * Supported by API versions 17 and newer.
8504 */
8505extern float __attribute__((const, overloadable))fast_length(float2 v);
8506#endif
8507
8508#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8509/*
8510 * Compute the approximate length of a vector.
8511 *
8512 * Supported by API versions 17 and newer.
8513 */
8514extern float __attribute__((const, overloadable))fast_length(float3 v);
8515#endif
8516
8517#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8518/*
8519 * Compute the approximate length of a vector.
8520 *
8521 * Supported by API versions 17 and newer.
8522 */
8523extern float __attribute__((const, overloadable))fast_length(float4 v);
8524#endif
8525
8526#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8527/*
8528 * Compute the approximate distance between two points.
8529 *
8530 * Supported by API versions 17 and newer.
8531 */
8532extern float __attribute__((const, overloadable))fast_distance(float lhs, float rhs);
8533#endif
8534
8535#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8536/*
8537 * Compute the approximate distance between two points.
8538 *
8539 * Supported by API versions 17 and newer.
8540 */
8541extern float __attribute__((const, overloadable))fast_distance(float2 lhs, float2 rhs);
8542#endif
8543
8544#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8545/*
8546 * Compute the approximate distance between two points.
8547 *
8548 * Supported by API versions 17 and newer.
8549 */
8550extern float __attribute__((const, overloadable))fast_distance(float3 lhs, float3 rhs);
8551#endif
8552
8553#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8554/*
8555 * Compute the approximate distance between two points.
8556 *
8557 * Supported by API versions 17 and newer.
8558 */
8559extern float __attribute__((const, overloadable))fast_distance(float4 lhs, float4 rhs);
8560#endif
8561
8562#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8563/*
8564 * Approximately normalize a vector.
8565 *
8566 * Supported by API versions 17 and newer.
8567 */
8568extern float __attribute__((const, overloadable))fast_normalize(float v);
8569#endif
8570
8571#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8572/*
8573 * Approximately normalize a vector.
8574 *
8575 * Supported by API versions 17 and newer.
8576 */
8577extern float2 __attribute__((const, overloadable))fast_normalize(float2 v);
8578#endif
8579
8580#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8581/*
8582 * Approximately normalize a vector.
8583 *
8584 * Supported by API versions 17 and newer.
8585 */
8586extern float3 __attribute__((const, overloadable))fast_normalize(float3 v);
8587#endif
8588
8589#if (defined(RS_VERSION) && (RS_VERSION >= 17))
8590/*
8591 * Approximately normalize a vector.
8592 *
8593 * Supported by API versions 17 and newer.
8594 */
8595extern float4 __attribute__((const, overloadable))fast_normalize(float4 v);
8596#endif
8597
8598#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8599/*
8600 * Fast approximate exp
8601 * valid for inputs -86.f to 86.f
8602 * Max 8192 ulps of error
8603 *
8604 * Supported by API versions 18 and newer.
8605 */
8606extern float __attribute__((const, overloadable))native_exp(float v);
8607#endif
8608
8609#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8610/*
8611 * Fast approximate exp
8612 * valid for inputs -86.f to 86.f
8613 * Max 8192 ulps of error
8614 *
8615 * Supported by API versions 18 and newer.
8616 */
8617extern float2 __attribute__((const, overloadable))native_exp(float2 v);
8618#endif
8619
8620#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8621/*
8622 * Fast approximate exp
8623 * valid for inputs -86.f to 86.f
8624 * Max 8192 ulps of error
8625 *
8626 * Supported by API versions 18 and newer.
8627 */
8628extern float3 __attribute__((const, overloadable))native_exp(float3 v);
8629#endif
8630
8631#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8632/*
8633 * Fast approximate exp
8634 * valid for inputs -86.f to 86.f
8635 * Max 8192 ulps of error
8636 *
8637 * Supported by API versions 18 and newer.
8638 */
8639extern float4 __attribute__((const, overloadable))native_exp(float4 v);
8640#endif
8641
8642#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8643/*
8644 * Fast approximate exp2
8645 * valid for inputs -125.f to 125.f
8646 * Max 8192 ulps of error
8647 *
8648 * Supported by API versions 18 and newer.
8649 */
8650extern float __attribute__((const, overloadable))native_exp2(float v);
8651#endif
8652
8653#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8654/*
8655 * Fast approximate exp2
8656 * valid for inputs -125.f to 125.f
8657 * Max 8192 ulps of error
8658 *
8659 * Supported by API versions 18 and newer.
8660 */
8661extern float2 __attribute__((const, overloadable))native_exp2(float2 v);
8662#endif
8663
8664#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8665/*
8666 * Fast approximate exp2
8667 * valid for inputs -125.f to 125.f
8668 * Max 8192 ulps of error
8669 *
8670 * Supported by API versions 18 and newer.
8671 */
8672extern float3 __attribute__((const, overloadable))native_exp2(float3 v);
8673#endif
8674
8675#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8676/*
8677 * Fast approximate exp2
8678 * valid for inputs -125.f to 125.f
8679 * Max 8192 ulps of error
8680 *
8681 * Supported by API versions 18 and newer.
8682 */
8683extern float4 __attribute__((const, overloadable))native_exp2(float4 v);
8684#endif
8685
8686#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8687/*
8688 * Fast approximate exp10
8689 * valid for inputs -37.f to 37.f
8690 * Max 8192 ulps of error
8691 *
8692 * Supported by API versions 18 and newer.
8693 */
8694extern float __attribute__((const, overloadable))native_exp10(float v);
8695#endif
8696
8697#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8698/*
8699 * Fast approximate exp10
8700 * valid for inputs -37.f to 37.f
8701 * Max 8192 ulps of error
8702 *
8703 * Supported by API versions 18 and newer.
8704 */
8705extern float2 __attribute__((const, overloadable))native_exp10(float2 v);
8706#endif
8707
8708#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8709/*
8710 * Fast approximate exp10
8711 * valid for inputs -37.f to 37.f
8712 * Max 8192 ulps of error
8713 *
8714 * Supported by API versions 18 and newer.
8715 */
8716extern float3 __attribute__((const, overloadable))native_exp10(float3 v);
8717#endif
8718
8719#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8720/*
8721 * Fast approximate exp10
8722 * valid for inputs -37.f to 37.f
8723 * Max 8192 ulps of error
8724 *
8725 * Supported by API versions 18 and newer.
8726 */
8727extern float4 __attribute__((const, overloadable))native_exp10(float4 v);
8728#endif
8729
8730#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8731/*
8732 * Fast approximate log
8733 *
8734 * Supported by API versions 18 and newer.
8735 */
8736extern float __attribute__((const, overloadable))native_log(float v);
8737#endif
8738
8739#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8740/*
8741 * Fast approximate log
8742 *
8743 * Supported by API versions 18 and newer.
8744 */
8745extern float2 __attribute__((const, overloadable))native_log(float2 v);
8746#endif
8747
8748#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8749/*
8750 * Fast approximate log
8751 *
8752 * Supported by API versions 18 and newer.
8753 */
8754extern float3 __attribute__((const, overloadable))native_log(float3 v);
8755#endif
8756
8757#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8758/*
8759 * Fast approximate log
8760 *
8761 * Supported by API versions 18 and newer.
8762 */
8763extern float4 __attribute__((const, overloadable))native_log(float4 v);
8764#endif
8765
8766#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8767/*
8768 * Fast approximate log2
8769 *
8770 * Supported by API versions 18 and newer.
8771 */
8772extern float __attribute__((const, overloadable))native_log2(float v);
8773#endif
8774
8775#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8776/*
8777 * Fast approximate log2
8778 *
8779 * Supported by API versions 18 and newer.
8780 */
8781extern float2 __attribute__((const, overloadable))native_log2(float2 v);
8782#endif
8783
8784#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8785/*
8786 * Fast approximate log2
8787 *
8788 * Supported by API versions 18 and newer.
8789 */
8790extern float3 __attribute__((const, overloadable))native_log2(float3 v);
8791#endif
8792
8793#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8794/*
8795 * Fast approximate log2
8796 *
8797 * Supported by API versions 18 and newer.
8798 */
8799extern float4 __attribute__((const, overloadable))native_log2(float4 v);
8800#endif
8801
8802#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8803/*
8804 * Fast approximate log10
8805 *
8806 * Supported by API versions 18 and newer.
8807 */
8808extern float __attribute__((const, overloadable))native_log10(float v);
8809#endif
8810
8811#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8812/*
8813 * Fast approximate log10
8814 *
8815 * Supported by API versions 18 and newer.
8816 */
8817extern float2 __attribute__((const, overloadable))native_log10(float2 v);
8818#endif
8819
8820#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8821/*
8822 * Fast approximate log10
8823 *
8824 * Supported by API versions 18 and newer.
8825 */
8826extern float3 __attribute__((const, overloadable))native_log10(float3 v);
8827#endif
8828
8829#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8830/*
8831 * Fast approximate log10
8832 *
8833 * Supported by API versions 18 and newer.
8834 */
8835extern float4 __attribute__((const, overloadable))native_log10(float4 v);
8836#endif
8837
8838#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8839/*
8840 * Fast approximate v ^ y
8841 *
8842 * Supported by API versions 18 and newer.
8843 */
8844extern float __attribute__((const, overloadable))native_powr(float v, float y);
8845#endif
8846
8847#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8848/*
8849 * Fast approximate v ^ y
8850 *
8851 * Supported by API versions 18 and newer.
8852 */
8853extern float2 __attribute__((const, overloadable))native_powr(float2 v, float2 y);
8854#endif
8855
8856#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8857/*
8858 * Fast approximate v ^ y
8859 *
8860 * Supported by API versions 18 and newer.
8861 */
8862extern float3 __attribute__((const, overloadable))native_powr(float3 v, float3 y);
8863#endif
8864
8865#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8866/*
8867 * Fast approximate v ^ y
8868 *
8869 * Supported by API versions 18 and newer.
8870 */
8871extern float4 __attribute__((const, overloadable))native_powr(float4 v, float4 y);
8872#endif
8873
8874#endif // __rs_core_math_rsh__