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