129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Copyright (C) 2014 The Android Open Source Project
329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Licensed under the Apache License, Version 2.0 (the "License");
529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * you may not use this file except in compliance with the License.
629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * You may obtain a copy of the License at
729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *      http://www.apache.org/licenses/LICENSE-2.0
929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Unless required by applicable law or agreed to in writing, software
1129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * distributed under the License is distributed on an "AS IS" BASIS,
1229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * See the License for the specific language governing permissions and
1429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * limitations under the License.
1529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
17963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet// Don't edit this file!  It is auto-generated by frameworks/rs/api/gen_runtime.
18963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet
1929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#ifndef __rs_core_math_rsh__
2029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#define __rs_core_math_rsh__
2129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
2229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
23963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
2429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
2529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
2629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
27963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar __attribute__((const, overloadable))abs(char value);
2829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
2929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
3129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
32963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
3329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
3529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
36963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))abs(char2 value);
3729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
3829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
41963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
4229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
4429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
45963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))abs(char3 value);
4629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
4729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
4929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
50963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
5129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
5329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
54963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))abs(char4 value);
5529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
5629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
5829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
59963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
6029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
6229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
63963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort __attribute__((const, overloadable))abs(short value);
6429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
6529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
6729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
68963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
6929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
7129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
72963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))abs(short2 value);
7329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
7429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
7629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
77963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
7829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
8029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
81963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))abs(short3 value);
8229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
8329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
8529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
86963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
8729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
8929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
90963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))abs(short4 value);
9129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
9229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
9429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
95963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
9629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
9829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
99963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint __attribute__((const, overloadable))abs(int value);
10029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
10129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
10229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
10329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
104963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
10529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
10629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
10729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
108963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))abs(int2 value);
10929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
11029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
11129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
11229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
113963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
11429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
11529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
11629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
117963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))abs(int3 value);
11829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
11929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
12029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
12129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
122963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
12329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
12429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
12529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
126963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))abs(int4 value);
12729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
12829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
12929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
13029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
131963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * acos
13229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
13329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
13429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
135bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float __attribute__((const, overloadable))acos(float v);
13629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
13729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
13829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
13929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
140963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * acos
14129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
14229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
14329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
144bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))acos(float2 v);
14529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
14629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
14729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
14829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
149963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * acos
15029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
15129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
15229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
153bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))acos(float3 v);
15429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
15529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
15629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
15729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
158963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * acos
15929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
16029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
16129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
162bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))acos(float4 v);
16329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
16429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
16529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
16629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
167963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * acosh
16829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
16929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
17029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
171963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))acosh(float);
17229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
17329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
17429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
17529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
176963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * acosh
17729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
17829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
17929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
180963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))acosh(float2);
18129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
18229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
18329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
18429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
185963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * acosh
18629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
18729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
18829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
189963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))acosh(float3);
19029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
19129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
19229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
19329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
194963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * acosh
19529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
19629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
19729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
198963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))acosh(float4);
19929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
20029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
20129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
20229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
203963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * acospi
20429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
20529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
20629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
207bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float __attribute__((const, overloadable))acospi(float v);
20829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
20929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
21029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
21129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
212963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * acospi
21329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
21429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
21529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
216bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))acospi(float2 v);
21729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
21829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
21929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
22029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
221963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * acospi
22229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
22329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
22429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
225bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))acospi(float3 v);
22629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
22729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
22829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
22929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
230963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * acospi
23129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
23229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
23329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
234bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))acospi(float4 v);
23529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
23629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
23729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
23829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
239963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * asin
24029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
24129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
24229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
243bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float __attribute__((const, overloadable))asin(float v);
24429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
24529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
24629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
24729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
248963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * asin
24929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
25029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
25129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
252bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))asin(float2 v);
25329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
25429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
25529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
25629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
257963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * asin
25829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
25929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
26029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
261bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))asin(float3 v);
26229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
26329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
26429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
26529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
266963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * asin
26729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
26829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
26929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
270bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))asin(float4 v);
27129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
27229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
27329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
27429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
275963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * asinh
27629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
27729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
27829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
279963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))asinh(float);
28029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
28129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
28229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
28329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
284963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * asinh
28529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
28629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
28729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
288963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))asinh(float2);
28929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
29029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
29129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
29229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
293963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * asinh
29429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
29529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
29629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
297963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))asinh(float3);
29829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
29929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
30029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
30129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
302963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * asinh
30329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
30429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
30529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
306963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))asinh(float4);
30729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
30829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
30929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
31029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
311963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse sine divided by PI.
31229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
31329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
31429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
315bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float __attribute__((const, overloadable))asinpi(float v);
31629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
31729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
31829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
31929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
320963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse sine divided by PI.
32129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
32229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
32329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
324bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))asinpi(float2 v);
32529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
32629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
32729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
32829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
329963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse sine divided by PI.
33029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
33129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
33229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
333bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))asinpi(float3 v);
33429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
33529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
33629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
33729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
338963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse sine divided by PI.
33929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
34029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
34129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
342bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))asinpi(float4 v);
34329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
34429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
34529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
34629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
347963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent.
34829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
34929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
35029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
351bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float __attribute__((const, overloadable))atan(float v);
35229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
35329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
35429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
35529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
356963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent.
35729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
35829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
35929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
360bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))atan(float2 v);
36129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
36229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
36329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
36429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
365963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent.
36629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
36729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
36829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
369bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))atan(float3 v);
37029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
37129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
37229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
37329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
374963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent.
37529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
37629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
37729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
378bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))atan(float4 v);
37929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
38029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
38129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
38229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
383963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent of y / x.
38429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
38529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
38629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
387963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))atan2(float y, float x);
38829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
38929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
39029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
39129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
392963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent of y / x.
39329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
39429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
39529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
396963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))atan2(float2 y, float2 x);
39729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
39829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
39929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
40029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
401963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent of y / x.
40229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
40329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
40429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
405963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))atan2(float3 y, float3 x);
40629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
40729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
40829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
40929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
410963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent of y / x.
41129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
41229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
41329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
414963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))atan2(float4 y, float4 x);
41529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
41629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
41729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
41829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
419963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent of y / x, divided by PI.
42029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
42129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
42229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
423963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))atan2pi(float y, float x);
42429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
42529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
42629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
42729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
428963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent of y / x, divided by PI.
42929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
43029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
43129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
432963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))atan2pi(float2 y, float2 x);
43329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
43429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
43529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
43629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
437963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent of y / x, divided by PI.
43829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
43929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
44029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
441963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))atan2pi(float3 y, float3 x);
44229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
44329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
44429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
44529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
446963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent of y / x, divided by PI.
44729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
44829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
44929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
450963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))atan2pi(float4 y, float4 x);
45129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
45229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
45329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
45429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
455963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse hyperbolic tangent.
45629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
45729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
45829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
45932c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouilletextern float __attribute__((const, overloadable))atanh(float v);
46029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
46129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
46229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
46329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
464963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse hyperbolic tangent.
46529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
46629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
46729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
46832c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))atanh(float2 v);
46929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
47029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
47129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
47229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
473963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse hyperbolic tangent.
47429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
47529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
47629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
47732c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))atanh(float3 v);
47829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
47929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
48029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
48129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
482963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse hyperbolic tangent.
48329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
48429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
48529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
48632c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))atanh(float4 v);
48729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
48829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
48929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
49029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
491963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent divided by PI.
49229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
49329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
49429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
495bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float __attribute__((const, overloadable))atanpi(float v);
49629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
49729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
49829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
49929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
500963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent divided by PI.
50129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
50229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
50329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
504bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))atanpi(float2 v);
50529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
50629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
50729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
50829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
509963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent divided by PI.
51029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
51129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
51229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
513bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))atanpi(float3 v);
51429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
51529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
51629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
51729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
518963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the inverse tangent divided by PI.
51929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
52029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
52129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
522bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))atanpi(float4 v);
52329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
52429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
52529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
52629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
527963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the cube root.
52829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
52929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
53029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
531963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))cbrt(float);
53229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
53329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
53429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
53529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
536963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the cube root.
53729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
53829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
53929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
540963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))cbrt(float2);
54129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
54229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
54329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
54429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
545963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the cube root.
54629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
54729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
54829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
549963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))cbrt(float3);
55029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
55129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
55229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
55329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
554963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the cube root.
55529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
55629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
55729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
558963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))cbrt(float4);
55929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
56029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
56129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
56229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
563963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the smallest integer not less than a value.
56429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
56529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
56629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
567963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))ceil(float);
56829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
56929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
57029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
57129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
572963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the smallest integer not less than a value.
57329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
57429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
57529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
576963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))ceil(float2);
57729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
57829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
57929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
58029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
581963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the smallest integer not less than a value.
58229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
58329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
58429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
585963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))ceil(float3);
58629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
58729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
58829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
58929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
590963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the smallest integer not less than a value.
59129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
59229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
59329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
594963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))ceil(float4);
59529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
59629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
59729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
59829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
599963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
600963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
601963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
602963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
603963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
60429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
60529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
60629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
607963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))clamp(float value, float min_value, float max_value);
60829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
60929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
61029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
61129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
612963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
613963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
614963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
615963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
616963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
61729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
61829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
61929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
620963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))clamp(float2 value, float2 min_value, float2 max_value);
62129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
62229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
62329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
62429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
625963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
626963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
627963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
628963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
629963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
63029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
63129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
63229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
633963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))clamp(float3 value, float3 min_value, float3 max_value);
63429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
63529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
63629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
63729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
638963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
639963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
640963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
641963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
642963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
64329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
64429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
64529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
646963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))clamp(float4 value, float4 min_value, float4 max_value);
64729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
64829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
64929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
65029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
651963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
652963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
653963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
654963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
655963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
65629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
65729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
65829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
659963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))clamp(float2 value, float min_value, float max_value);
66029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
66129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
66229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
66329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
664963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
665963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
666963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
667963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
668963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
66929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
67029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
67129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
672963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))clamp(float3 value, float min_value, float max_value);
67329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
67429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
67529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
67629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
677963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
678963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
679963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
680963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
681963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
68229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
68329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
68429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
685963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))clamp(float4 value, float min_value, float max_value);
68629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
68729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
688963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
68929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
690963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
69129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
692963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
693963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
694963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
695963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
696963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
69729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
698963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char __attribute__((const, overloadable))clamp(char value, char min_value, char max_value);
69929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
70029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
701963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
70229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
703963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
70429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
705963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
706963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
707963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
708963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
709963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
71029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
711963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))clamp(char2 value, char2 min_value, char2 max_value);
71229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
71329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
714963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
71529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
716963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
71729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
718963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
719963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
720963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
721963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
722963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
72329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
724963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))clamp(char3 value, char3 min_value, char3 max_value);
72529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
72629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
727963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
72829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
729963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
73029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
731963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
732963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
733963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
734963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
735963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
73629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
737963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))clamp(char4 value, char4 min_value, char4 max_value);
73829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
73929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
740963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
74129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
742963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
74329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
744963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
745963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
746963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
747963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
748963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
74929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
750963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar __attribute__((const, overloadable))clamp(uchar value, uchar min_value, uchar max_value);
75129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
75229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
753963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
75429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
755963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
75629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
757963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
758963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
759963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
760963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
761963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
76229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
763963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))clamp(uchar2 value, uchar2 min_value, uchar2 max_value);
76429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
76529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
766963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
76729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
768963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
76929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
770963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
771963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
772963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
773963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
774963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
77529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
776963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))clamp(uchar3 value, uchar3 min_value, uchar3 max_value);
77729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
77829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
779963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
78029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
781963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
78229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
783963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
784963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
785963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
786963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
787963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
78829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
789963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))clamp(uchar4 value, uchar4 min_value, uchar4 max_value);
79029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
79129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
792963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
79329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
794963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
79529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
796963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
797963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
798963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
799963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
800963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
80129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
802963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short __attribute__((const, overloadable))clamp(short value, short min_value, short max_value);
80329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
80429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
805963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
80629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
807963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
80829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
809963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
810963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
811963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
812963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
813963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
81429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
815963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))clamp(short2 value, short2 min_value, short2 max_value);
81629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
81729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
818963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
81929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
820963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
82129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
822963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
823963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
824963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
825963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
826963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
82729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
828963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))clamp(short3 value, short3 min_value, short3 max_value);
82929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
83029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
831963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
83229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
833963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
83429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
835963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
836963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
837963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
838963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
839963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
84029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
841963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))clamp(short4 value, short4 min_value, short4 max_value);
84229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
84329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
844963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
84529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
846963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
84729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
848963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
849963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
850963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
851963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
852963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
85329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
854963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort __attribute__((const, overloadable))clamp(ushort value, ushort min_value, ushort max_value);
85529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
85629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
857963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
85829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
859963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
86029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
861963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
862963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
863963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
864963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
865963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
86629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
867963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))clamp(ushort2 value, ushort2 min_value, ushort2 max_value);
86829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
86929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
870963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
87129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
872963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
87329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
874963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
875963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
876963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
877963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
878963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
87929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
880963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))clamp(ushort3 value, ushort3 min_value, ushort3 max_value);
88129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
88229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
883963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
88429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
885963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
88629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
887963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
888963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
889963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
890963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
891963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
89229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
893963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))clamp(ushort4 value, ushort4 min_value, ushort4 max_value);
89429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
89529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
896963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
89729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
898963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
89929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
900963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
901963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
902963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
90329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
904963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
90529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
906963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int __attribute__((const, overloadable))clamp(int value, int min_value, int max_value);
90729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
90829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
909963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
91029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
911963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
91229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
913963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
914963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
915963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
916963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
917963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
91829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
919963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))clamp(int2 value, int2 min_value, int2 max_value);
92029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
92129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
922963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
92329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
924963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
92529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
926963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
927963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
928963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
929963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
930963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
93129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
932963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))clamp(int3 value, int3 min_value, int3 max_value);
93329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
93429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
935963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
93629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
937963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
93829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
939963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
940963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
941963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
942963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
943963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
94429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
945963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))clamp(int4 value, int4 min_value, int4 max_value);
94629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
94729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
948963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
94929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
950963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
95129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
952963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
953963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
954963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
955963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
956963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
95729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
958963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint __attribute__((const, overloadable))clamp(uint value, uint min_value, uint max_value);
95929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
96029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
961963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
96229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
963963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
96429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
965963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
966963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
967963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
968963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
969963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
97029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
971963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))clamp(uint2 value, uint2 min_value, uint2 max_value);
97229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
97329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
974963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
97529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
976963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
97729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
978963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
979963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
980963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
981963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
982963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
98329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
984963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))clamp(uint3 value, uint3 min_value, uint3 max_value);
98529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
98629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
987963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
98829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
989963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
99029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
991963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
992963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
993963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
994963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
995963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
99629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
997963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))clamp(uint4 value, uint4 min_value, uint4 max_value);
99829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
99929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1000963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
100129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1002963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
100329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1004963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1005963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1006963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1007963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1008963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
100929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1010963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long __attribute__((const, overloadable))clamp(long value, long min_value, long max_value);
101129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
101229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1013963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
101429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1015963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
101629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1017963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1018963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1019963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1020963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1021963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
102229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1023963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))clamp(long2 value, long2 min_value, long2 max_value);
102429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
102529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1026963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
102729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1028963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
102929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1030963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1031963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1032963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1033963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1034963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
103529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1036963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))clamp(long3 value, long3 min_value, long3 max_value);
103729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
103829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1039963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
104029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1041963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
104229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1043963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1044963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1045963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1046963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1047963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
104829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1049963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))clamp(long4 value, long4 min_value, long4 max_value);
105029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
105129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1052963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
105329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1054963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
105529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1056963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1057963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1058963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1059963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1060963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
106129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1062963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong __attribute__((const, overloadable))clamp(ulong value, ulong min_value, ulong max_value);
106329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
106429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1065963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
106629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1067963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
106829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1069963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1070963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1071963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1072963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1073963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
107429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1075963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))clamp(ulong2 value, ulong2 min_value, ulong2 max_value);
107629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
107729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1078963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
107929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1080963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
108129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1082963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1083963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1084963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1085963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1086963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
108729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1088963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))clamp(ulong3 value, ulong3 min_value, ulong3 max_value);
108929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
109029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1091963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
109229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1093963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
109429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1095963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1096963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1097963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1098963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1099963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
110029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1101963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))clamp(ulong4 value, ulong4 min_value, ulong4 max_value);
110229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
110329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1104963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
110529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1106963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
110729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1108963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1109963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1110963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1111963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1112963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
111329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1114963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))clamp(char2 value, char min_value, char max_value);
111529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
111629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1117963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
111829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1119963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
112029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1121963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1122963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1123963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1124963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1125963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
112629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1127963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))clamp(char3 value, char min_value, char max_value);
112829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
112929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1130963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
113129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1132963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
113329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1134963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1135963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1136963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1137963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1138963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
113929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1140963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))clamp(char4 value, char min_value, char max_value);
114129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
114229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1143963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
114429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1145963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
114629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1147963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1148963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1149963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1150963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1151963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
115229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1153963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))clamp(uchar2 value, uchar min_value, uchar max_value);
115429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
115529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1156963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
115729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1158963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
115929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1160963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1161963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1162963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1163963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1164963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
116529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1166963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))clamp(uchar3 value, uchar min_value, uchar max_value);
116729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
116829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1169963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
117029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1171963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
117229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1173963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1174963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1175963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1176963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1177963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
117829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1179963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))clamp(uchar4 value, uchar min_value, uchar max_value);
118029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
118129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1182963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
118329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1184963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
118529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1186963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1187963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1188963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1189963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1190963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
119129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1192963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))clamp(short2 value, short min_value, short max_value);
119329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
119429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1195963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
119629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1197963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
119829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1199963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1200963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1201963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1202963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1203963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
120429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1205963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))clamp(short3 value, short min_value, short max_value);
120629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
120729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1208963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
120929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1210963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
121129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1212963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1213963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1214963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1215963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1216963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
121729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1218963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))clamp(short4 value, short min_value, short max_value);
121929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
122029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1221963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
122229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1223963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
122429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1225963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1226963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1227963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1228963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1229963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
123029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1231963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))clamp(ushort2 value, ushort min_value, ushort max_value);
123229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
123329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1234963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
123529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1236963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
123729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1238963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1239963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1240963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1241963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1242963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
124329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1244963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))clamp(ushort3 value, ushort min_value, ushort max_value);
124529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
124629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1247963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
124829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1249963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
125029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1251963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1252963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1253963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1254963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1255963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
125629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1257963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))clamp(ushort4 value, ushort min_value, ushort max_value);
125829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
125929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1260963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
126129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1262963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
126329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1264963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1265963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1266963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1267963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1268963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
126929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1270963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))clamp(int2 value, int min_value, int max_value);
127129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
127229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1273963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
127429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1275963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
127629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1277963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1278963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1279963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1280963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1281963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
128229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1283963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))clamp(int3 value, int min_value, int max_value);
128429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
128529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1286963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
128729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1288963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
128929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1290963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1291963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1292963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1293963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1294963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
129529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1296963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))clamp(int4 value, int min_value, int max_value);
129729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
129829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1299963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
130029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1301963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
130229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1303963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1304963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1305963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1306963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1307963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
130829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1309963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))clamp(uint2 value, uint min_value, uint max_value);
131029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
131129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1312963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
131329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1314963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
131529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1316963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1317963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1318963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1319963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1320963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
132129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1322963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))clamp(uint3 value, uint min_value, uint max_value);
132329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
132429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1325963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
132629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1327963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
132829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1329963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1330963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1331963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1332963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1333963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
133429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1335963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))clamp(uint4 value, uint min_value, uint max_value);
133629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
133729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1338963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
133929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1340963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
134129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1342963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1343963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1344963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1345963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1346963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
134729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1348963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))clamp(long2 value, long min_value, long max_value);
134929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
135029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1351963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
135229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1353963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
135429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1355963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1356963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1357963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1358963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1359963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
136029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1361963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))clamp(long3 value, long min_value, long max_value);
136229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
136329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1364963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
136529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1366963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
136729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1368963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1369963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1370963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1371963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1372963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
137329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1374963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))clamp(long4 value, long min_value, long max_value);
137529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
137629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1377963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
137829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1379963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
138029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1381963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1382963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1383963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1384963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1385963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
138629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1387963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))clamp(ulong2 value, ulong min_value, ulong max_value);
138829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
138929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1390963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
139129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1392963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
139329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1394963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1395963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1396963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1397963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1398963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
139929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1400963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))clamp(ulong3 value, ulong min_value, ulong max_value);
140129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
140229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
1403963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19))
140429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1405963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Clamp a value to a specified high and low bound.
140629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
1407963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param amount value to be clamped.  Supports 1,2,3,4 components
1408963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param min_value Lower bound, must be scalar or matching vector.
1409963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param max_value High bound, must match type of low
1410963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
1411963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 19 and newer.
141229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1413963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))clamp(ulong4 value, ulong min_value, ulong max_value);
141429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
141529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
141629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
141729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1418963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
141929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
142029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
142129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1422963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char __attribute__((const, overloadable))clz(char value);
142329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
142429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
142529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
142629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1427963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
142829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
142929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
143029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1431963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))clz(char2 value);
143229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
143329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
143429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
143529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1436963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
143729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
143829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
143929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1440963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))clz(char3 value);
144129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
144229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
144329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
144429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1445963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
144629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
144729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
144829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1449963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))clz(char4 value);
145029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
145129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
145229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
145329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1454963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
145529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
145629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
145729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1458963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar __attribute__((const, overloadable))clz(uchar value);
145929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
146029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
146129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
146229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1463963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
146429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
146529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
146629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1467963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))clz(uchar2 value);
146829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
146929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
147029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
147129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1472963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
147329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
147429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
147529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1476963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))clz(uchar3 value);
147729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
147829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
147929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
148029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1481963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
148229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
148329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
148429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1485963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))clz(uchar4 value);
148629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
148729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
148829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
148929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1490963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
149129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
149229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
149329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1494963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short __attribute__((const, overloadable))clz(short value);
149529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
149629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
149729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
149829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1499963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
150029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
150129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
150229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1503963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))clz(short2 value);
150429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
150529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
150629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
150729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1508963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
150929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
151029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
151129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1512963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))clz(short3 value);
151329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
151429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
151529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
151629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1517963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
151829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
151929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
152029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1521963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))clz(short4 value);
152229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
152329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
152429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
152529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1526963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
152729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
152829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
152929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1530963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort __attribute__((const, overloadable))clz(ushort value);
153129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
153229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
153329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
153429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1535963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
153629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
153729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
153829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1539963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))clz(ushort2 value);
154029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
154129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
154229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
154329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1544963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
154529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
154629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
154729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1548963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))clz(ushort3 value);
154929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
155029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
155129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
155229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1553963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
155429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
155529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
155629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1557963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))clz(ushort4 value);
155829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
155929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
156029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
156129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1562963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
156329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
156429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
156529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1566963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int __attribute__((const, overloadable))clz(int value);
156729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
156829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
156929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
157029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1571963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
157229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
157329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
157429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1575963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))clz(int2 value);
157629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
157729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
157829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
157929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1580963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
158129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
158229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
158329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1584963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))clz(int3 value);
158529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
158629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
158729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
158829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1589963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
159029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
159129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
159229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1593963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))clz(int4 value);
159429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
159529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
159629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
159729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1598963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
159929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
160029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
160129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1602963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint __attribute__((const, overloadable))clz(uint value);
160329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
160429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
160529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
160629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1607963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
160829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
160929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
161029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1611963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))clz(uint2 value);
161229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
161329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
161429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
161529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1616963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
161729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
161829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
161929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1620963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))clz(uint3 value);
162129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
162229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
162329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
162429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1625963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the number of leading 0-bits in a value.
162629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
162729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
162829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1629963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))clz(uint4 value);
163029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
163129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
163229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
163329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1634963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from float2 to float2
163529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
163629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
163729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1638bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))convert_float2(float2 v);
163929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
164029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
164129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
164229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1643963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from float3 to float3
164429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
164529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
164629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1647bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))convert_float3(float3 v);
164829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
164929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
165029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
165129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1652963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from float4 to float4
165329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
165429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
165529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1656bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))convert_float4(float4 v);
165729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
165829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
165929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
166029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1661963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from char2 to float2
166229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
166329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
166429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1665bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))convert_float2(char2 v);
166629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
166729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
166829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
166929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1670963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from char3 to float3
167129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
167229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
167329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1674bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))convert_float3(char3 v);
167529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
167629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
167729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
167829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1679963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from char4 to float4
168029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
168129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
168229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1683bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))convert_float4(char4 v);
168429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
168529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
168629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
168729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1688963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uchar2 to float2
168929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
169029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
169129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1692bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))convert_float2(uchar2 v);
169329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
169429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
169529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
169629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1697963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uchar3 to float3
169829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
169929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
170029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1701bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))convert_float3(uchar3 v);
170229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
170329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
170429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
170529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1706963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uchar4 to float4
170729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
170829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
170929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1710bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))convert_float4(uchar4 v);
171129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
171229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
171329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
171429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1715963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from short2 to float2
171629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
171729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
171829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1719bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))convert_float2(short2 v);
172029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
172129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
172229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
172329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1724963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from short3 to float3
172529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
172629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
172729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1728bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))convert_float3(short3 v);
172929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
173029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
173129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
173229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1733963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from short4 to float4
173429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
173529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
173629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1737bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))convert_float4(short4 v);
173829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
173929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
174029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
174129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1742963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from ushort2 to float2
174329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
174429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
174529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1746bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))convert_float2(ushort2 v);
174729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
174829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
174929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
175029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1751963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from ushort3 to float3
175229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
175329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
175429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1755bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))convert_float3(ushort3 v);
175629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
175729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
175829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
175929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1760963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from ushort4 to float4
176129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
176229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
176329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1764bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))convert_float4(ushort4 v);
176529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
176629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
176729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
176829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1769963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from int2 to float2
177029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
177129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
177229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1773bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))convert_float2(int2 v);
177429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
177529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
177629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
177729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1778963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from int3 to float3
177929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
178029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
178129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1782bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))convert_float3(int3 v);
178329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
178429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
178529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
178629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1787963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from int4 to float4
178829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
178929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
179029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1791bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))convert_float4(int4 v);
179229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
179329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
179429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
179529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1796963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uint2 to float2
179729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
179829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
179929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1800bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))convert_float2(uint2 v);
180129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
180229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
180329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
180429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1805963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uint3 to float3
180629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
180729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
180829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1809bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))convert_float3(uint3 v);
181029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
181129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
181229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
181329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1814963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uint4 to float4
181529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
181629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
181729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1818bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))convert_float4(uint4 v);
181929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
182029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
182129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
182229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1823564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float2 to char2
182429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
182529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
182629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1827564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char2 __attribute__((const, overloadable))convert_char2(float2 v);
182829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
182929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
183029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
183129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1832564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float3 to char3
183329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
183429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
183529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1836564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char3 __attribute__((const, overloadable))convert_char3(float3 v);
183729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
183829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
183929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
184029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1841564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float4 to char4
184229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
184329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
184429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1845564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char4 __attribute__((const, overloadable))convert_char4(float4 v);
184629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
184729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
184829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
184929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1850564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char2 to char2
185129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
185229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
185329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1854564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char2 __attribute__((const, overloadable))convert_char2(char2 v);
185529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
185629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
185729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
185829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1859564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char3 to char3
186029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
186129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
186229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1863564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char3 __attribute__((const, overloadable))convert_char3(char3 v);
186429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
186529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
186629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
186729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1868564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char4 to char4
186929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
187029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
187129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1872564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char4 __attribute__((const, overloadable))convert_char4(char4 v);
187329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
187429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
187529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
187629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1877564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar2 to char2
187829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
187929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
188029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1881564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char2 __attribute__((const, overloadable))convert_char2(uchar2 v);
188229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
188329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
188429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
188529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1886564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar3 to char3
188729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
188829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
188929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1890564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char3 __attribute__((const, overloadable))convert_char3(uchar3 v);
189129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
189229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
189329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
189429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1895564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar4 to char4
189629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
189729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
189829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1899564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char4 __attribute__((const, overloadable))convert_char4(uchar4 v);
190029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
190129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
190229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
190329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1904564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short2 to char2
190529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
190629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
190729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1908564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char2 __attribute__((const, overloadable))convert_char2(short2 v);
190929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
191029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
191129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
191229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1913564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short3 to char3
191429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
191529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
191629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1917564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char3 __attribute__((const, overloadable))convert_char3(short3 v);
191829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
191929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
192029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
192129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1922564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short4 to char4
192329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
192429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
192529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1926564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char4 __attribute__((const, overloadable))convert_char4(short4 v);
192729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
192829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
192929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
193029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1931564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort2 to char2
193229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
193329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
193429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1935564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char2 __attribute__((const, overloadable))convert_char2(ushort2 v);
193629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
193729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
193829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
193929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1940564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort3 to char3
194129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
194229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
194329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1944564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char3 __attribute__((const, overloadable))convert_char3(ushort3 v);
194529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
194629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
194729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
194829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1949564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort4 to char4
195029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
195129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
195229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1953564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char4 __attribute__((const, overloadable))convert_char4(ushort4 v);
195429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
195529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
195629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
195729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1958564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int2 to char2
195929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
196029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
196129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1962564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char2 __attribute__((const, overloadable))convert_char2(int2 v);
196329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
196429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
196529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
196629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1967564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int3 to char3
196829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
196929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
197029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1971564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char3 __attribute__((const, overloadable))convert_char3(int3 v);
197229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
197329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
197429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
197529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1976564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int4 to char4
197729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
197829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
197929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1980564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char4 __attribute__((const, overloadable))convert_char4(int4 v);
198129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
198229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
198329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
198429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1985564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint2 to char2
198629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
198729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
198829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1989564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char2 __attribute__((const, overloadable))convert_char2(uint2 v);
199029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
199129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
199229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
199329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
1994564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint3 to char3
199529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
199629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
199729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
1998564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char3 __attribute__((const, overloadable))convert_char3(uint3 v);
199929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
200029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
200129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
200229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2003564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint4 to char4
200429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
200529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
200629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2007564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char4 __attribute__((const, overloadable))convert_char4(uint4 v);
200829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
200929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
201029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
201129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2012564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float2 to uchar2
201329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
201429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
201529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2016564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar2 __attribute__((const, overloadable))convert_uchar2(float2 v);
201729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
201829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
201929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
202029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2021564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float3 to uchar3
202229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
202329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
202429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2025564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar3 __attribute__((const, overloadable))convert_uchar3(float3 v);
202629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
202729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
202829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
202929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2030564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float4 to uchar4
203129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
203229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
203329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2034564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar4 __attribute__((const, overloadable))convert_uchar4(float4 v);
203529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
203629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
203729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
203829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2039564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char2 to uchar2
204029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
204129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
204229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2043564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar2 __attribute__((const, overloadable))convert_uchar2(char2 v);
204429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
204529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
204629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
204729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2048564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char3 to uchar3
204929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
205029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
205129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2052564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar3 __attribute__((const, overloadable))convert_uchar3(char3 v);
205329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
205429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
205529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
205629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2057564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char4 to uchar4
205829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
205929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
206029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2061564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar4 __attribute__((const, overloadable))convert_uchar4(char4 v);
206229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
206329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
206429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
206529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2066564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar2 to uchar2
206729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
206829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
206929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2070564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar2 __attribute__((const, overloadable))convert_uchar2(uchar2 v);
207129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
207229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
207329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
207429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2075564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar3 to uchar3
207629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
207729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
207829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2079564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar3 __attribute__((const, overloadable))convert_uchar3(uchar3 v);
208029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
208129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
208229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
208329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2084564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar4 to uchar4
208529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
208629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
208729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2088564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar4 __attribute__((const, overloadable))convert_uchar4(uchar4 v);
208929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
209029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
209129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
209229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2093564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short2 to uchar2
209429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
209529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
209629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2097564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar2 __attribute__((const, overloadable))convert_uchar2(short2 v);
209829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
209929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
210029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
210129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2102564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short3 to uchar3
210329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
210429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
210529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2106564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar3 __attribute__((const, overloadable))convert_uchar3(short3 v);
210729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
210829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
210929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
211029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2111564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short4 to uchar4
211229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
211329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
211429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2115564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar4 __attribute__((const, overloadable))convert_uchar4(short4 v);
211629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
211729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
211829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
211929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2120564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort2 to uchar2
212129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
212229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
212329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2124564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar2 __attribute__((const, overloadable))convert_uchar2(ushort2 v);
212529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
212629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
212729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
212829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2129564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort3 to uchar3
213029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
213129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
213229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2133564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar3 __attribute__((const, overloadable))convert_uchar3(ushort3 v);
213429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
213529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
213629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
213729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2138564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort4 to uchar4
213929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
214029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
214129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2142564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar4 __attribute__((const, overloadable))convert_uchar4(ushort4 v);
214329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
214429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
214529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
214629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2147564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int2 to uchar2
214829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
214929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
215029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2151564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar2 __attribute__((const, overloadable))convert_uchar2(int2 v);
215229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
215329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
215429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
215529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2156564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int3 to uchar3
215729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
215829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
215929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2160564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar3 __attribute__((const, overloadable))convert_uchar3(int3 v);
216129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
216229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
216329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
216429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2165564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int4 to uchar4
216629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
216729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
216829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2169564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar4 __attribute__((const, overloadable))convert_uchar4(int4 v);
217029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
217129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
217229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
217329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2174564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint2 to uchar2
217529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
217629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
217729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2178564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar2 __attribute__((const, overloadable))convert_uchar2(uint2 v);
217929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
218029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
218129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
218229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2183564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint3 to uchar3
218429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
218529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
218629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2187564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar3 __attribute__((const, overloadable))convert_uchar3(uint3 v);
218829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
218929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
219029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
219129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2192564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint4 to uchar4
219329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
219429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
219529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2196564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar4 __attribute__((const, overloadable))convert_uchar4(uint4 v);
219729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
219829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
219929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
220029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2201564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float2 to short2
220229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
220329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
220429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2205564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short2 __attribute__((const, overloadable))convert_short2(float2 v);
220629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
220729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
220829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
220929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2210564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float3 to short3
221129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
221229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
221329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2214564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short3 __attribute__((const, overloadable))convert_short3(float3 v);
221529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
221629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
221729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
221829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2219564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float4 to short4
222029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
222129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
222229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2223564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short4 __attribute__((const, overloadable))convert_short4(float4 v);
222429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
222529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
222629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
222729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2228564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char2 to short2
222929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
223029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
223129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2232564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short2 __attribute__((const, overloadable))convert_short2(char2 v);
223329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
223429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
223529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
223629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2237564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char3 to short3
223829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
223929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
224029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2241564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short3 __attribute__((const, overloadable))convert_short3(char3 v);
224229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
224329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
224429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
224529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2246564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char4 to short4
224729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
224829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
224929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2250564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short4 __attribute__((const, overloadable))convert_short4(char4 v);
225129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
225229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
225329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
225429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2255564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar2 to short2
225629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
225729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
225829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2259564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short2 __attribute__((const, overloadable))convert_short2(uchar2 v);
226029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
226129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
226229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
226329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2264564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar3 to short3
226529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
226629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
226729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2268564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short3 __attribute__((const, overloadable))convert_short3(uchar3 v);
226929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
227029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
227129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
227229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2273564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar4 to short4
227429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
227529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
227629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2277564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short4 __attribute__((const, overloadable))convert_short4(uchar4 v);
227829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
227929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
228029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
228129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2282564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short2 to short2
228329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
228429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
228529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2286564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short2 __attribute__((const, overloadable))convert_short2(short2 v);
228729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
228829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
228929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
229029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2291564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short3 to short3
229229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
229329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
229429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2295564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short3 __attribute__((const, overloadable))convert_short3(short3 v);
229629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
229729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
229829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
229929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2300564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short4 to short4
230129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
230229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
230329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2304564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short4 __attribute__((const, overloadable))convert_short4(short4 v);
230529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
230629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
230729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
230829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2309564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort2 to short2
231029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
231129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
231229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2313564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short2 __attribute__((const, overloadable))convert_short2(ushort2 v);
231429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
231529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
231629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
231729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2318564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort3 to short3
231929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
232029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
232129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2322564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short3 __attribute__((const, overloadable))convert_short3(ushort3 v);
232329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
232429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
232529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
232629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2327564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort4 to short4
232829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
232929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
233029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2331564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short4 __attribute__((const, overloadable))convert_short4(ushort4 v);
233229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
233329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
233429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
233529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2336564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int2 to short2
233729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
233829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
233929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2340564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short2 __attribute__((const, overloadable))convert_short2(int2 v);
234129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
234229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
234329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
234429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2345564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int3 to short3
234629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
234729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
234829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2349564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short3 __attribute__((const, overloadable))convert_short3(int3 v);
235029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
235129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
235229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
235329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2354564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int4 to short4
235529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
235629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
235729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2358564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short4 __attribute__((const, overloadable))convert_short4(int4 v);
235929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
236029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
236129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
236229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2363564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint2 to short2
236429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
236529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
236629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2367564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short2 __attribute__((const, overloadable))convert_short2(uint2 v);
236829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
236929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
237029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
237129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2372564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint3 to short3
237329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
237429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
237529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2376564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short3 __attribute__((const, overloadable))convert_short3(uint3 v);
237729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
237829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
237929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
238029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2381564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint4 to short4
238229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
238329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
238429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2385564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short4 __attribute__((const, overloadable))convert_short4(uint4 v);
238629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
238729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
238829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
238929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2390564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float2 to ushort2
239129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
239229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
239329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2394564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort2 __attribute__((const, overloadable))convert_ushort2(float2 v);
239529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
239629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
239729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
239829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2399564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float3 to ushort3
240029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
240129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
240229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2403564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort3 __attribute__((const, overloadable))convert_ushort3(float3 v);
240429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
240529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
240629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
240729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2408564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float4 to ushort4
240929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
241029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
241129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2412564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort4 __attribute__((const, overloadable))convert_ushort4(float4 v);
241329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
241429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
241529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
241629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2417564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char2 to ushort2
241829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
241929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
242029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2421564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort2 __attribute__((const, overloadable))convert_ushort2(char2 v);
242229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
242329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
242429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
242529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2426564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char3 to ushort3
242729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
242829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
242929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2430564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort3 __attribute__((const, overloadable))convert_ushort3(char3 v);
243129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
243229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
243329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
243429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2435564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char4 to ushort4
243629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
243729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
243829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2439564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort4 __attribute__((const, overloadable))convert_ushort4(char4 v);
244029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
244129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
244229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
244329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2444564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar2 to ushort2
244529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
244629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
244729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2448564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort2 __attribute__((const, overloadable))convert_ushort2(uchar2 v);
244929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
245029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
245129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
245229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2453564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar3 to ushort3
245429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
245529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
245629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2457564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort3 __attribute__((const, overloadable))convert_ushort3(uchar3 v);
245829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
245929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
246029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
246129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2462564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar4 to ushort4
246329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
246429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
246529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2466564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort4 __attribute__((const, overloadable))convert_ushort4(uchar4 v);
246729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
246829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
246929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
247029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2471564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short2 to ushort2
247229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
247329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
247429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2475564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort2 __attribute__((const, overloadable))convert_ushort2(short2 v);
247629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
247729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
247829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
247929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2480564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short3 to ushort3
248129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
248229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
248329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2484564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort3 __attribute__((const, overloadable))convert_ushort3(short3 v);
248529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
248629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
248729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
248829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2489564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short4 to ushort4
249029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
249129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
249229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2493564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort4 __attribute__((const, overloadable))convert_ushort4(short4 v);
249429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
249529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
249629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
249729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2498564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort2 to ushort2
249929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
250029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
250129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2502564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort2 __attribute__((const, overloadable))convert_ushort2(ushort2 v);
250329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
250429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
250529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
250629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2507564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort3 to ushort3
250829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
250929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
251029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2511564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort3 __attribute__((const, overloadable))convert_ushort3(ushort3 v);
251229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
251329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
251429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
251529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2516564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort4 to ushort4
251729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
251829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
251929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2520564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort4 __attribute__((const, overloadable))convert_ushort4(ushort4 v);
252129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
252229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
252329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
252429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2525564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int2 to ushort2
252629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
252729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
252829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2529564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort2 __attribute__((const, overloadable))convert_ushort2(int2 v);
253029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
253129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
253229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
253329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2534564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int3 to ushort3
253529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
253629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
253729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2538564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort3 __attribute__((const, overloadable))convert_ushort3(int3 v);
253929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
254029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
254129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
254229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2543564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int4 to ushort4
254429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
254529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
254629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2547564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort4 __attribute__((const, overloadable))convert_ushort4(int4 v);
254829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
254929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
255029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
255129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2552564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint2 to ushort2
255329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
255429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
255529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2556564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort2 __attribute__((const, overloadable))convert_ushort2(uint2 v);
255729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
255829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
255929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
256029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2561564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint3 to ushort3
256229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
256329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
256429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2565564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort3 __attribute__((const, overloadable))convert_ushort3(uint3 v);
256629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
256729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
256829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
256929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2570564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint4 to ushort4
257129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
257229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
257329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2574564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort4 __attribute__((const, overloadable))convert_ushort4(uint4 v);
257529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
257629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
257729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
257829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2579564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float2 to int2
258029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
258129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
258229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2583564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int2 __attribute__((const, overloadable))convert_int2(float2 v);
258429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
258529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
258629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
258729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2588564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float3 to int3
258929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
259029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
259129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2592564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int3 __attribute__((const, overloadable))convert_int3(float3 v);
259329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
259429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
259529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
259629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2597564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float4 to int4
259829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
259929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
260029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2601564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int4 __attribute__((const, overloadable))convert_int4(float4 v);
260229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
260329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
260429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
260529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2606564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char2 to int2
260729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
260829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
260929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2610564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int2 __attribute__((const, overloadable))convert_int2(char2 v);
261129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
261229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
261329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
261429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2615564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char3 to int3
261629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
261729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
261829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2619564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int3 __attribute__((const, overloadable))convert_int3(char3 v);
262029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
262129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
262229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
262329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2624564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char4 to int4
262529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
262629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
262729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2628564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int4 __attribute__((const, overloadable))convert_int4(char4 v);
262929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
263029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
263129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
263229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2633564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar2 to int2
263429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
263529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
263629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2637564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int2 __attribute__((const, overloadable))convert_int2(uchar2 v);
263829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
263929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
264029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
264129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2642564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar3 to int3
264329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
264429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
264529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2646564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int3 __attribute__((const, overloadable))convert_int3(uchar3 v);
264729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
264829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
264929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
265029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2651564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar4 to int4
265229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
265329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
265429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2655564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int4 __attribute__((const, overloadable))convert_int4(uchar4 v);
265629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
265729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
265829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
265929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2660564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short2 to int2
266129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
266229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
266329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2664564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int2 __attribute__((const, overloadable))convert_int2(short2 v);
266529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
266629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
266729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
266829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2669564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short3 to int3
267029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
267129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
267229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2673564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int3 __attribute__((const, overloadable))convert_int3(short3 v);
267429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
267529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
267629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
267729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2678564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short4 to int4
267929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
268029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
268129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2682564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int4 __attribute__((const, overloadable))convert_int4(short4 v);
268329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
268429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
268529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
268629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2687564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort2 to int2
268829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
268929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
269029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2691564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int2 __attribute__((const, overloadable))convert_int2(ushort2 v);
269229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
269329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
269429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
269529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2696564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort3 to int3
269729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
269829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
269929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2700564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int3 __attribute__((const, overloadable))convert_int3(ushort3 v);
270129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
270229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
270329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
270429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2705564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort4 to int4
270629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
270729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
270829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2709564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int4 __attribute__((const, overloadable))convert_int4(ushort4 v);
271029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
271129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
271229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
271329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2714564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int2 to int2
271529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
271629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
271729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2718564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int2 __attribute__((const, overloadable))convert_int2(int2 v);
271929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
272029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
272129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
272229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2723564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int3 to int3
272429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
272529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
272629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2727564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int3 __attribute__((const, overloadable))convert_int3(int3 v);
272829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
272929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
273029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
273129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2732564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int4 to int4
273329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
273429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
273529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2736564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int4 __attribute__((const, overloadable))convert_int4(int4 v);
273729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
273829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
273929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
274029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2741564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint2 to int2
274229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
274329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
274429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2745564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int2 __attribute__((const, overloadable))convert_int2(uint2 v);
274629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
274729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
274829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
274929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2750564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint3 to int3
275129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
275229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
275329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2754564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int3 __attribute__((const, overloadable))convert_int3(uint3 v);
275529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
275629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
275729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
275829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2759564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint4 to int4
276029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
276129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
276229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2763564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int4 __attribute__((const, overloadable))convert_int4(uint4 v);
276429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
276529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
276629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
276729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2768564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float2 to uint2
276929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
277029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
277129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2772564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint2 __attribute__((const, overloadable))convert_uint2(float2 v);
277329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
277429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
277529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
277629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2777564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float3 to uint3
277829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
277929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
278029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2781564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint3 __attribute__((const, overloadable))convert_uint3(float3 v);
278229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
278329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
278429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
278529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2786564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from float4 to uint4
278729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
278829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
278929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2790564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint4 __attribute__((const, overloadable))convert_uint4(float4 v);
279129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
279229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
279329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
279429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2795564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char2 to uint2
279629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
279729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
279829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2799564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint2 __attribute__((const, overloadable))convert_uint2(char2 v);
280029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
280129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
280229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
280329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2804564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char3 to uint3
280529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
280629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
280729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2808564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint3 __attribute__((const, overloadable))convert_uint3(char3 v);
280929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
281029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
281129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
281229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2813564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from char4 to uint4
281429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
281529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
281629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2817564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint4 __attribute__((const, overloadable))convert_uint4(char4 v);
281829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
281929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
282029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
282129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2822564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar2 to uint2
282329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
282429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
282529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2826564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint2 __attribute__((const, overloadable))convert_uint2(uchar2 v);
282729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
282829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
282929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
283029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2831564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar3 to uint3
283229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
283329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
283429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2835564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint3 __attribute__((const, overloadable))convert_uint3(uchar3 v);
283629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
283729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
283829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
283929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2840564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar4 to uint4
284129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
284229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
284329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2844564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint4 __attribute__((const, overloadable))convert_uint4(uchar4 v);
284529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
284629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
284729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
284829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2849564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short2 to uint2
285029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
285129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
285229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2853564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint2 __attribute__((const, overloadable))convert_uint2(short2 v);
285429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
285529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
285629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
285729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2858564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short3 to uint3
285929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
286029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
286129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2862564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint3 __attribute__((const, overloadable))convert_uint3(short3 v);
286329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
286429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
286529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
286629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2867564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short4 to uint4
286829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
286929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
287029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2871564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint4 __attribute__((const, overloadable))convert_uint4(short4 v);
287229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
287329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
287429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
287529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2876564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort2 to uint2
287729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
287829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
287929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2880564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint2 __attribute__((const, overloadable))convert_uint2(ushort2 v);
288129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
288229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
288329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
288429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2885564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort3 to uint3
288629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
288729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
288829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2889564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint3 __attribute__((const, overloadable))convert_uint3(ushort3 v);
289029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
289129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
289229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
289329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2894564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort4 to uint4
289529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
289629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
289729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2898564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint4 __attribute__((const, overloadable))convert_uint4(ushort4 v);
289929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
290029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
290129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
290229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2903564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int2 to uint2
290429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
290529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
290629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2907564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint2 __attribute__((const, overloadable))convert_uint2(int2 v);
290829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
290929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
291029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
291129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2912564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int3 to uint3
291329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
291429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
291529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2916564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint3 __attribute__((const, overloadable))convert_uint3(int3 v);
291729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
291829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
291929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
292029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2921564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int4 to uint4
292229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
292329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
292429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2925564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint4 __attribute__((const, overloadable))convert_uint4(int4 v);
292629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
292729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
292829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
292929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2930564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint2 to uint2
293129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
293229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
293329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2934564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint2 __attribute__((const, overloadable))convert_uint2(uint2 v);
293529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
293629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
293729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
293829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2939564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint3 to uint3
294029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
294129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
294229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2943564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint3 __attribute__((const, overloadable))convert_uint3(uint3 v);
294429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
294529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
294629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
294729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
2948564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint4 to uint4
294929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
295029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
295129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
2952564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint4 __attribute__((const, overloadable))convert_uint4(uint4 v);
295329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
295429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
2955aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
295629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
295746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from double2 to double2
295829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
2959aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
296029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
296146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double2 __attribute__((const, overloadable))convert_double2(double2 v);
296229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
296329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
2964aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
296529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
296646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from double3 to double3
296729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
2968aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
296929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
297046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double3 __attribute__((const, overloadable))convert_double3(double3 v);
297129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
297229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
2973aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
297429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
297546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from double4 to double4
297629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
2977aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
297829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
297946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double4 __attribute__((const, overloadable))convert_double4(double4 v);
298029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
298129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
2982aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
298329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
298446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from long2 to double2
298529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
2986aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
298729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
298846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double2 __attribute__((const, overloadable))convert_double2(long2 v);
298929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
299029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
2991aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
299229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
299346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from long3 to double3
299429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
2995aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
299629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
299746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double3 __attribute__((const, overloadable))convert_double3(long3 v);
299829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
299929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3000aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
300129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
300246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from long4 to double4
300329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3004aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
300529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
300646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double4 __attribute__((const, overloadable))convert_double4(long4 v);
300729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
300829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3009aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
301029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
301146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from ulong2 to double2
301229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3013aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
301429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
301546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double2 __attribute__((const, overloadable))convert_double2(ulong2 v);
301629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
301729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3018aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
301929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
302046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from ulong3 to double3
302129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3022aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
302329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
302446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double3 __attribute__((const, overloadable))convert_double3(ulong3 v);
302529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
302629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3027aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
302829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
302946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from ulong4 to double4
303029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3031aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
303229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
303346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double4 __attribute__((const, overloadable))convert_double4(ulong4 v);
303429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
303529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3036aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
303729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
303846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from double2 to long2
303929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3040aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
304129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
304246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern long2 __attribute__((const, overloadable))convert_long2(double2 v);
304329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
304429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3045aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
304629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
304746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from double3 to long3
304829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3049aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
305029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
305146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern long3 __attribute__((const, overloadable))convert_long3(double3 v);
305229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
305329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3054aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
305529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
305646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from double4 to long4
305729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3058aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
305929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
306046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern long4 __attribute__((const, overloadable))convert_long4(double4 v);
306129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
306229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3063aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
306429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
306546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from long2 to long2
306629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3067aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
306829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
306946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern long2 __attribute__((const, overloadable))convert_long2(long2 v);
307029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
307129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3072aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
307329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
307446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from long3 to long3
307529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3076aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
307729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
307846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern long3 __attribute__((const, overloadable))convert_long3(long3 v);
307929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
308029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3081aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
308229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
308346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from long4 to long4
308429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3085aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
308629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
308746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern long4 __attribute__((const, overloadable))convert_long4(long4 v);
308829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
308929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3090aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
309129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
309246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from ulong2 to long2
309329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3094aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
309529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
309646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern long2 __attribute__((const, overloadable))convert_long2(ulong2 v);
309729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
309829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3099aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
310029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
310146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from ulong3 to long3
310229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3103aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
310429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
310546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern long3 __attribute__((const, overloadable))convert_long3(ulong3 v);
310629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
310729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3108aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
310929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
311046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from ulong4 to long4
311129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3112aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
311329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
311446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern long4 __attribute__((const, overloadable))convert_long4(ulong4 v);
311546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
311646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3117aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
311846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
311946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from double2 to ulong2
312046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3121aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
312246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
312346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))convert_ulong2(double2 v);
312446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
312546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3126aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
312746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
312846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from double3 to ulong3
312946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3130aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
313146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
313246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))convert_ulong3(double3 v);
313346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
313446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3135aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
313646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
313746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from double4 to ulong4
313846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3139aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
314046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
314146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))convert_ulong4(double4 v);
314246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
314346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3144aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
314546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
314646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from long2 to ulong2
314746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3148aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
314946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
315046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))convert_ulong2(long2 v);
315146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
315246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3153aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
315446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
315546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from long3 to ulong3
315646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3157aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
315846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
315946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))convert_ulong3(long3 v);
316046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
316146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3162aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
316346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
316446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from long4 to ulong4
316546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3166aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
316746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
316846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))convert_ulong4(long4 v);
316946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
317046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3171aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
317246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
317346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from ulong2 to ulong2
317446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3175aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
317646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
317746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))convert_ulong2(ulong2 v);
317846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
317946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3180aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
318146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
318246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from ulong3 to ulong3
318346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3184aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
318546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
318646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))convert_ulong3(ulong3 v);
318746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
318846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3189aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
319046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
319146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from ulong4 to ulong4
319246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3193aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
319446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
319546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))convert_ulong4(ulong4 v);
319646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
319746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3198aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
319946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
320046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from double2 to float2
320146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3202aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
320346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
320446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern float2 __attribute__((const, overloadable))convert_float2(double2 v);
320546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
320646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3207aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
320846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
320946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from double3 to float3
321046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3211aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
321246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
321346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern float3 __attribute__((const, overloadable))convert_float3(double3 v);
321446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
321546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3216aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
321746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
321846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from double4 to float4
321946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3220aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
322146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
322246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern float4 __attribute__((const, overloadable))convert_float4(double4 v);
322346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
322446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3225aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
322646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
322746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from long2 to float2
322846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3229aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
323046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
323146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern float2 __attribute__((const, overloadable))convert_float2(long2 v);
323246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
323346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3234aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
323546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
323646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from long3 to float3
323746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3238aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
323946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
324046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern float3 __attribute__((const, overloadable))convert_float3(long3 v);
324146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
324246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3243aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
324446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
324546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from long4 to float4
324646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3247aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
324846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
324946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern float4 __attribute__((const, overloadable))convert_float4(long4 v);
325046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
325146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3252aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
325346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
325446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from ulong2 to float2
325546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3256aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
325746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
325846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern float2 __attribute__((const, overloadable))convert_float2(ulong2 v);
325946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
326046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3261aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
326246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
326346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from ulong3 to float3
326446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3265aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
326646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
326746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern float3 __attribute__((const, overloadable))convert_float3(ulong3 v);
326846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet#endif
326946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet
3270aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
327146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet/*
327246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from ulong4 to float4
327346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet *
3274aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
327546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet */
327646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern float4 __attribute__((const, overloadable))convert_float4(ulong4 v);
327729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
327829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3279aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
328029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3281564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double2 to char2
328229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3283aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
328429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3285564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char2 __attribute__((const, overloadable))convert_char2(double2 v);
328629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
328729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3288aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
328929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3290564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double3 to char3
329129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3292aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
329329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3294564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char3 __attribute__((const, overloadable))convert_char3(double3 v);
329529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
329629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3297aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
329829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3299564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double4 to char4
330029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3301aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
330229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3303564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char4 __attribute__((const, overloadable))convert_char4(double4 v);
330429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
330529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3306aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
330729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3308564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long2 to char2
330929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3310aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
331129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3312564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char2 __attribute__((const, overloadable))convert_char2(long2 v);
331329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
331429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3315aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
331629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3317564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long3 to char3
331829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3319aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
332029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3321564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char3 __attribute__((const, overloadable))convert_char3(long3 v);
332229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
332329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3324aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
332529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3326564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long4 to char4
332729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3328aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
332929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3330564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char4 __attribute__((const, overloadable))convert_char4(long4 v);
333129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
333229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3333aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
333429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3335564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong2 to char2
333629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3337aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
333829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3339564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char2 __attribute__((const, overloadable))convert_char2(ulong2 v);
334029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
334129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3342aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
334329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3344564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong3 to char3
334529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3346aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
334729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3348564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char3 __attribute__((const, overloadable))convert_char3(ulong3 v);
334929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
335029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3351aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
335229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3353564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong4 to char4
335429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3355aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
335629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3357564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern char4 __attribute__((const, overloadable))convert_char4(ulong4 v);
335829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
335929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3360aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
336129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3362564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double2 to uchar2
336329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3364aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
336529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3366564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar2 __attribute__((const, overloadable))convert_uchar2(double2 v);
336729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
336829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3369aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
337029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3371564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double3 to uchar3
337229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3373aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
337429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3375564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar3 __attribute__((const, overloadable))convert_uchar3(double3 v);
337629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
337729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3378aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
337929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3380564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double4 to uchar4
338129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3382aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
338329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3384564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar4 __attribute__((const, overloadable))convert_uchar4(double4 v);
338529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
338629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3387aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
338829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3389564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long2 to uchar2
339029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3391aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
339229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3393564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar2 __attribute__((const, overloadable))convert_uchar2(long2 v);
339429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
339529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3396aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
339729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3398564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long3 to uchar3
339929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3400aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
340129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3402564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar3 __attribute__((const, overloadable))convert_uchar3(long3 v);
340329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
340429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3405aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
340629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3407564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long4 to uchar4
340829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3409aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
341029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3411564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar4 __attribute__((const, overloadable))convert_uchar4(long4 v);
341229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
341329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3414aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
341529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3416564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong2 to uchar2
341729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3418aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
341929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3420564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar2 __attribute__((const, overloadable))convert_uchar2(ulong2 v);
342129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
342229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3423aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
342429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3425564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong3 to uchar3
342629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3427aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
342829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3429564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar3 __attribute__((const, overloadable))convert_uchar3(ulong3 v);
343029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
343129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3432aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
343329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3434564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong4 to uchar4
343529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3436aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
343729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3438564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uchar4 __attribute__((const, overloadable))convert_uchar4(ulong4 v);
343929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
344029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3441aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
344229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3443564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double2 to short2
344429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3445aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
344629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3447564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short2 __attribute__((const, overloadable))convert_short2(double2 v);
344829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
344929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3450aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
345129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3452564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double3 to short3
345329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3454aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
345529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3456564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short3 __attribute__((const, overloadable))convert_short3(double3 v);
345729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
345829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3459aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
346029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3461564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double4 to short4
346229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3463aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
346429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3465564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short4 __attribute__((const, overloadable))convert_short4(double4 v);
346629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
346729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3468aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
346929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3470564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long2 to short2
347129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3472aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
347329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3474564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short2 __attribute__((const, overloadable))convert_short2(long2 v);
347529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
347629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3477aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
347829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3479564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long3 to short3
348029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3481aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
348229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3483564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short3 __attribute__((const, overloadable))convert_short3(long3 v);
348429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
348529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3486aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
348729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3488564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long4 to short4
348929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3490aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
349129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3492564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short4 __attribute__((const, overloadable))convert_short4(long4 v);
349329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
349429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3495aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
349629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3497564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong2 to short2
349829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3499aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
350029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3501564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short2 __attribute__((const, overloadable))convert_short2(ulong2 v);
350229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
350329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3504aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
350529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3506564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong3 to short3
350729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3508aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
350929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3510564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short3 __attribute__((const, overloadable))convert_short3(ulong3 v);
351129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
351229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3513aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
351429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3515564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong4 to short4
351629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3517aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
351829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3519564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern short4 __attribute__((const, overloadable))convert_short4(ulong4 v);
352029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
352129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3522aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
352329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3524564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double2 to ushort2
352529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3526aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
352729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3528564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort2 __attribute__((const, overloadable))convert_ushort2(double2 v);
352929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
353029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3531aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
353229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3533564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double3 to ushort3
353429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3535aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
353629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3537564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort3 __attribute__((const, overloadable))convert_ushort3(double3 v);
353829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
353929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3540aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
354129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3542564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double4 to ushort4
354329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3544aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
354529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3546564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort4 __attribute__((const, overloadable))convert_ushort4(double4 v);
354729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
354829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3549aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
355029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3551564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long2 to ushort2
355229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3553aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
355429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3555564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort2 __attribute__((const, overloadable))convert_ushort2(long2 v);
355629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
355729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3558aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
355929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3560564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long3 to ushort3
356129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3562aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
356329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3564564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort3 __attribute__((const, overloadable))convert_ushort3(long3 v);
356529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
356629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3567aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
356829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3569564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long4 to ushort4
357029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3571aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
357229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3573564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort4 __attribute__((const, overloadable))convert_ushort4(long4 v);
357429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
357529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3576aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
357729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3578564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong2 to ushort2
357929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3580aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
358129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3582564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort2 __attribute__((const, overloadable))convert_ushort2(ulong2 v);
358329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
358429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3585aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
358629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3587564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong3 to ushort3
358829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3589aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
359029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3591564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort3 __attribute__((const, overloadable))convert_ushort3(ulong3 v);
359229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
359329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3594aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
359529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3596564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong4 to ushort4
359729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3598aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
359929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3600564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern ushort4 __attribute__((const, overloadable))convert_ushort4(ulong4 v);
360129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
360229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3603aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
3604564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams/*
3605564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double2 to int2
3606564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams *
3607aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
3608564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams */
3609564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int2 __attribute__((const, overloadable))convert_int2(double2 v);
3610564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams#endif
3611564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams
3612aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
3613564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams/*
3614564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double3 to int3
3615564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams *
3616aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
3617564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams */
3618564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int3 __attribute__((const, overloadable))convert_int3(double3 v);
3619564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams#endif
3620564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams
3621aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
3622564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams/*
3623564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double4 to int4
3624564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams *
3625aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
3626564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams */
3627564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern int4 __attribute__((const, overloadable))convert_int4(double4 v);
3628564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams#endif
3629564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams
3630aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
363129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3632963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from long2 to int2
363329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3634aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
363529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3636bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))convert_int2(long2 v);
363729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
363829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3639aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
364029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3641963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from long3 to int3
364229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3643aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
364429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3645bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))convert_int3(long3 v);
364629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
364729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3648aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
364929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3650963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from long4 to int4
365129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3652aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
365329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3654bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))convert_int4(long4 v);
365529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
365629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3657aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
365829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3659963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from ulong2 to int2
366029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3661aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
366229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3663bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))convert_int2(ulong2 v);
366429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
366529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3666aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
366729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3668963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from ulong3 to int3
366929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3670aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
367129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3672bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))convert_int3(ulong3 v);
367329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
367429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3675aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
367629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3677963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from ulong4 to int4
367829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3679aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
368029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3681bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))convert_int4(ulong4 v);
368229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
368329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3684aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
368529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3686564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double2 to uint2
368729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3688aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
368929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3690564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint2 __attribute__((const, overloadable))convert_uint2(double2 v);
369129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
369229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3693aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
369429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3695564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double3 to uint3
369629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3697aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
369829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3699564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint3 __attribute__((const, overloadable))convert_uint3(double3 v);
370029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
370129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3702aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
370329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3704564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from double4 to uint4
370529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3706aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
370729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3708564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint4 __attribute__((const, overloadable))convert_uint4(double4 v);
370929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
371029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3711aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
371229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3713564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long2 to uint2
371429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3715aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
371629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3717564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint2 __attribute__((const, overloadable))convert_uint2(long2 v);
371829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
371929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3720aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
372129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3722564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long3 to uint3
372329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3724aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
372529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3726564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint3 __attribute__((const, overloadable))convert_uint3(long3 v);
372729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
372829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3729aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
373029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3731564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from long4 to uint4
373229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3733aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
373429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3735564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint4 __attribute__((const, overloadable))convert_uint4(long4 v);
373629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
373729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3738aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
373929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3740564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong2 to uint2
374129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3742aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
374329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3744564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint2 __attribute__((const, overloadable))convert_uint2(ulong2 v);
374529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
374629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3747aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
374829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3749564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong3 to uint3
3750564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams *
3751aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
3752564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams */
3753564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint3 __attribute__((const, overloadable))convert_uint3(ulong3 v);
3754564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams#endif
3755564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams
3756aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
3757564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams/*
3758564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ulong4 to uint4
3759564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams *
3760aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
3761564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams */
3762564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern uint4 __attribute__((const, overloadable))convert_uint4(ulong4 v);
3763564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams#endif
3764564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams
3765aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
3766564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams/*
376746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from float2 to double2
3768564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams *
3769aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
3770564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams */
377146ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double2 __attribute__((const, overloadable))convert_double2(float2 v);
3772564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams#endif
3773564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams
3774aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
3775564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams/*
377646ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from float3 to double3
3777564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams *
3778aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
3779564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams */
378046ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double3 __attribute__((const, overloadable))convert_double3(float3 v);
3781564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams#endif
3782564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams
3783aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
3784564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams/*
378546ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from float4 to double4
3786564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams *
3787aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
3788564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams */
378946ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double4 __attribute__((const, overloadable))convert_double4(float4 v);
3790564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams#endif
3791564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams
3792aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
3793564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams/*
379446ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from char2 to double2
3795564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams *
3796aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
3797564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams */
379846ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double2 __attribute__((const, overloadable))convert_double2(char2 v);
3799564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams#endif
3800564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams
3801aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
3802564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams/*
380346ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from char3 to double3
3804564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams *
3805aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
3806564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams */
380746ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouilletextern double3 __attribute__((const, overloadable))convert_double3(char3 v);
3808564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams#endif
3809564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams
3810aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
3811564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams/*
381246ebc97e1ba04766f23296574ebde52102fbd4beJean-Luc Brouillet * Component wise conversion from char4 to double4
381329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3814aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
381529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3816564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double4 __attribute__((const, overloadable))convert_double4(char4 v);
381729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
381829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3819aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
382029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3821564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar2 to double2
382229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3823aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
382429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3825564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double2 __attribute__((const, overloadable))convert_double2(uchar2 v);
382629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
382729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3828aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
382929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3830564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar3 to double3
383129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3832aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
383329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3834564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double3 __attribute__((const, overloadable))convert_double3(uchar3 v);
383529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
383629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3837aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
383829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3839564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uchar4 to double4
384029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3841aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
384229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3843564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double4 __attribute__((const, overloadable))convert_double4(uchar4 v);
384429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
384529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3846aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
384729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3848564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short2 to double2
384929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3850aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
385129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3852564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double2 __attribute__((const, overloadable))convert_double2(short2 v);
385329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
385429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3855aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
385629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3857564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short3 to double3
385829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3859aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
386029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3861564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double3 __attribute__((const, overloadable))convert_double3(short3 v);
386229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
386329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3864aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
386529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3866564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from short4 to double4
386729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3868aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
386929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3870564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double4 __attribute__((const, overloadable))convert_double4(short4 v);
387129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
387229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3873aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
387429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3875564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort2 to double2
387629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3877aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
387829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3879564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double2 __attribute__((const, overloadable))convert_double2(ushort2 v);
388029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
388129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3882aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
388329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3884564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort3 to double3
388529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3886aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
388729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3888564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double3 __attribute__((const, overloadable))convert_double3(ushort3 v);
388929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
389029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3891aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
389229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3893564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from ushort4 to double4
389429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3895aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
389629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3897564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double4 __attribute__((const, overloadable))convert_double4(ushort4 v);
389829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
389929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3900aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
390129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3902564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int2 to double2
390329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3904aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
390529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3906564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double2 __attribute__((const, overloadable))convert_double2(int2 v);
390729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
390829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3909aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
391029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3911564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int3 to double3
391229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3913aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
391429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3915564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double3 __attribute__((const, overloadable))convert_double3(int3 v);
391629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
391729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3918aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
391929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3920564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from int4 to double4
392129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3922aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
392329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3924564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double4 __attribute__((const, overloadable))convert_double4(int4 v);
392529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
392629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3927aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
392829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3929564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint2 to double2
393029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3931aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
393229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3933564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double2 __attribute__((const, overloadable))convert_double2(uint2 v);
393429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
393529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3936aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
393729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3938564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint3 to double3
393929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3940aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
394129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3942564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double3 __attribute__((const, overloadable))convert_double3(uint3 v);
394329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
394429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3945aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
394629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3947564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Sams * Component wise conversion from uint4 to double4
394829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3949aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
395029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3951564a4004e6db0f4477ac4657b9bdf13b1205c953Jason Samsextern double4 __attribute__((const, overloadable))convert_double4(uint4 v);
395229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
395329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3954aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
395529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3956963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from float2 to long2
395729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3958aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
395929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3960bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))convert_long2(float2 v);
396129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
396229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3963aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
396429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3965963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from float3 to long3
396629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3967aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
396829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3969bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))convert_long3(float3 v);
397029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
397129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3972aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
397329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3974963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from float4 to long4
397529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3976aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
397729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3978bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))convert_long4(float4 v);
397929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
398029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3981aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
398229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3983963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from char2 to long2
398429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3985aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
398629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3987bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))convert_long2(char2 v);
398829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
398929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3990aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
399129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
3992963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from char3 to long3
399329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
3994aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
399529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
3996bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))convert_long3(char3 v);
399729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
399829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
3999aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
400029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4001963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from char4 to long4
400229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4003aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
400429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4005bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))convert_long4(char4 v);
400629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
400729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4008aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
400929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4010963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uchar2 to long2
401129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4012aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
401329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4014bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))convert_long2(uchar2 v);
401529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
401629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4017aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
401829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4019963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uchar3 to long3
402029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4021aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
402229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4023bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))convert_long3(uchar3 v);
402429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
402529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4026aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
402729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4028963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uchar4 to long4
402929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4030aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
403129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4032bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))convert_long4(uchar4 v);
403329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
403429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4035aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
403629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4037963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from short2 to long2
403829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4039aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
404029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4041bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))convert_long2(short2 v);
404229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
404329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4044aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
404529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4046963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from short3 to long3
404729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4048aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
404929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4050bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))convert_long3(short3 v);
405129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
405229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4053aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
405429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4055963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from short4 to long4
405629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4057aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
405829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4059bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))convert_long4(short4 v);
406029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
406129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4062aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
406329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4064963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from ushort2 to long2
406529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4066aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
406729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4068bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))convert_long2(ushort2 v);
406929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
407029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4071aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
407229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4073963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from ushort3 to long3
407429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4075aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
407629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4077bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))convert_long3(ushort3 v);
407829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
407929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4080aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
408129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4082963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from ushort4 to long4
408329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4084aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
408529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4086bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))convert_long4(ushort4 v);
408729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
408829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4089aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
409029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4091963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from int2 to long2
409229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4093aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
409429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4095bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))convert_long2(int2 v);
409629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
409729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4098aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
409929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4100963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from int3 to long3
410129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4102aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
410329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4104bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))convert_long3(int3 v);
410529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
410629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4107aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
410829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4109963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from int4 to long4
411029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4111aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
411229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4113bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))convert_long4(int4 v);
411429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
411529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4116aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
411729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4118963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uint2 to long2
411929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4120aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
412129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4122bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))convert_long2(uint2 v);
412329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
412429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4125aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
412629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4127963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uint3 to long3
412829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4129aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
413029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4131bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))convert_long3(uint3 v);
413229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
413329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4134aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
413529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4136963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uint4 to long4
413729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4138aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
413929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4140bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))convert_long4(uint4 v);
414129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
414229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4143aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
414429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4145963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from float2 to ulong2
414629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4147aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
414829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4149bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))convert_ulong2(float2 v);
415029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
415129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4152aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
415329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4154963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from float3 to ulong3
415529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4156aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
415729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4158bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))convert_ulong3(float3 v);
415929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
416029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4161aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
416229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4163963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from float4 to ulong4
416429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4165aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
416629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4167bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))convert_ulong4(float4 v);
416829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
416929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4170aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
417129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4172963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from char2 to ulong2
417329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4174aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
417529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4176bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))convert_ulong2(char2 v);
417729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
417829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4179aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
418029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4181963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from char3 to ulong3
418229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4183aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
418429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4185bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))convert_ulong3(char3 v);
418629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
418729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4188aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
418929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4190963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from char4 to ulong4
419129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4192aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
419329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4194bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))convert_ulong4(char4 v);
419529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
419629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4197aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
419829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4199963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uchar2 to ulong2
420029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4201aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
420229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4203bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))convert_ulong2(uchar2 v);
420429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
420529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4206aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
420729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4208963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uchar3 to ulong3
420929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4210aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
421129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4212bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))convert_ulong3(uchar3 v);
421329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
421429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4215aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
421629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4217963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uchar4 to ulong4
421829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4219aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
422029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4221bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))convert_ulong4(uchar4 v);
422229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
422329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4224aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
422529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4226963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from short2 to ulong2
422729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4228aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
422929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4230bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))convert_ulong2(short2 v);
423129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
423229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4233aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
423429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4235963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from short3 to ulong3
423629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4237aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
423829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4239bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))convert_ulong3(short3 v);
424029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
424129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4242aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
424329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4244963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from short4 to ulong4
424529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4246aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
424729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4248bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))convert_ulong4(short4 v);
424929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
425029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4251aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
425229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4253963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from ushort2 to ulong2
425429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4255aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
425629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4257bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))convert_ulong2(ushort2 v);
425829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
425929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4260aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
426129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4262963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from ushort3 to ulong3
426329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4264aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
426529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4266bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))convert_ulong3(ushort3 v);
426729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
426829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4269aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
427029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4271963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from ushort4 to ulong4
427229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4273aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
427429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4275bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))convert_ulong4(ushort4 v);
427629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
427729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4278aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
427929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4280963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from int2 to ulong2
428129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4282aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
428329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4284bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))convert_ulong2(int2 v);
428529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
428629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4287aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
428829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4289963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from int3 to ulong3
429029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4291aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
429229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4293bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))convert_ulong3(int3 v);
429429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
429529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4296aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
429729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4298963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from int4 to ulong4
429929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4300aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
430129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4302bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))convert_ulong4(int4 v);
430329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
430429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4305aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
430629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4307963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uint2 to ulong2
430829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4309aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
431029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4311bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))convert_ulong2(uint2 v);
431229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
431329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4314aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
431529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4316963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uint3 to ulong3
431729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4318aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
431929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4320bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))convert_ulong3(uint3 v);
432129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
432229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4323aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
432429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4325963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Component wise conversion from uint4 to ulong4
432629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4327aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
432829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4329bcd5b9af756d10317faf54fa3742f89dfacef152Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))convert_ulong4(uint4 v);
433029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
433129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
433229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
433329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4334963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Copy the sign bit from y to x.
433529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
433629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
433729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4338963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))copysign(float x, float y);
433929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
434029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
434129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
434229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4343963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Copy the sign bit from y to x.
434429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
434529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
434629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4347963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))copysign(float2 x, float2 y);
434829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
434929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
435029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
435129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4352963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Copy the sign bit from y to x.
435329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
435429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
435529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4356963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))copysign(float3 x, float3 y);
435729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
435829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
435929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
436029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4361963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Copy the sign bit from y to x.
436229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
436329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
436429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4365963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))copysign(float4 x, float4 y);
436629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
436729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
436829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
436929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4370963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the cosine.
437129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
437229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
437329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4374963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))cos(float);
437529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
437629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
437729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
437829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4379963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the cosine.
438029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
438129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
438229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4383963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))cos(float2);
438429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
438529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
438629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
438729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4388963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the cosine.
438929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
439029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
439129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4392963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))cos(float3);
439329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
439429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
439529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
439629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4397963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the cosine.
439829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
439929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
440029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4401963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))cos(float4);
440229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
440329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
440429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
440529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4406963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the hypebolic cosine.
440729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
440829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
440929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4410963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))cosh(float);
441129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
441229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
441329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
441429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4415963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the hypebolic cosine.
441629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
441729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
441829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4419963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))cosh(float2);
442029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
442129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
442229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
442329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4424963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the hypebolic cosine.
442529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
442629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
442729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4428963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))cosh(float3);
442929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
443029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
443129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
443229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4433963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the hypebolic cosine.
443429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
443529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
443629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4437963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))cosh(float4);
443829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
443929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
444029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
444129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4442963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the cosine of the value * PI.
444329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
444429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
444529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4446963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))cospi(float);
444729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
444829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
444929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
445029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4451963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the cosine of the value * PI.
445229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
445329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
445429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4455963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))cospi(float2);
445629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
445729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
445829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
445929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4460963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the cosine of the value * PI.
446129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
446229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
446329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4464963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))cospi(float3);
446529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
446629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
446729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
446829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4469963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the cosine of the value * PI.
447029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
447129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
447229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4473963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))cospi(float4);
447429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
447529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
447629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
447729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4478963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the cross product of two vectors.
447929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
448029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
448129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4482963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))cross(float3 lhs, float3 rhs);
448329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
448429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
448529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
448629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4487963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the cross product of two vectors.
448829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
448929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
449029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4491963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))cross(float4 lhs, float4 rhs);
449229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
449329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
449429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
449529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4496963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Convert from radians to degrees.
449729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
449829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
449929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4500963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))degrees(float value);
450129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
450229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
450329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
450429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4505963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Convert from radians to degrees.
450629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
450729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
450829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4509963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))degrees(float2 value);
451029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
451129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
451229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
451329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4514963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Convert from radians to degrees.
451529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
451629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
451729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4518963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))degrees(float3 value);
451929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
452029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
452129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
452229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4523963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Convert from radians to degrees.
452429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
452529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
452629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4527963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))degrees(float4 value);
452829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
452929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
453029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
453129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4532963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the distance between two points.
453329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
453429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
453529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4536963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))distance(float lhs, float rhs);
453729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
453829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
453929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
454029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4541963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the distance between two points.
454229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
454329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
454429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4545963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))distance(float2 lhs, float2 rhs);
454629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
454729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
454829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
454929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4550963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the distance between two points.
455129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
455229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
455329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4554963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))distance(float3 lhs, float3 rhs);
455529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
455629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
455729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
455829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4559963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the distance between two points.
456029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
456129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
456229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4563963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))distance(float4 lhs, float4 rhs);
456429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
456529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
456629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
456729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4568963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the dot product of two vectors.
456929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
457029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
457129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4572963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))dot(float lhs, float rhs);
457329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
457429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
457529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
457629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4577963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the dot product of two vectors.
457829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
457929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
458029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4581963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))dot(float2 lhs, float2 rhs);
458229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
458329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
458429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
458529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4586963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the dot product of two vectors.
458729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
458829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
458929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4590963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))dot(float3 lhs, float3 rhs);
459129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
459229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
459329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
459429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4595963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the dot product of two vectors.
459629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
459729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
459829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4599963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))dot(float4 lhs, float4 rhs);
460029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
460129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
460229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
460329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4604963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the error function.
460529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
460629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
460729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4608963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))erf(float);
460929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
461029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
461129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
461229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4613963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the error function.
461429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
461529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
461629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4617963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))erf(float2);
461829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
461929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
462029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
462129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4622963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the error function.
462329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
462429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
462529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4626963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))erf(float3);
462729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
462829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
462929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
463029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4631963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the error function.
463229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
463329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
463429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4635963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))erf(float4);
463629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
463729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
463829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
463929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4640963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the complementary error function.
464129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
464229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
464329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4644963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))erfc(float);
464529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
464629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
464729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
464829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4649963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the complementary error function.
465029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
465129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
465229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4653963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))erfc(float2);
465429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
465529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
465629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
465729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4658963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the complementary error function.
465929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
466029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
466129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4662963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))erfc(float3);
466329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
466429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
466529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
466629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4667963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the complementary error function.
466829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
466929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
467029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4671963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))erfc(float4);
467229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
467329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
467429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
467529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4676963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return e ^ value.
467729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
467829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
467929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4680963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))exp(float);
468129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
468229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
468329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
468429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4685963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return e ^ value.
468629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
468729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
468829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4689963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))exp(float2);
469029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
469129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
469229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
469329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4694963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return e ^ value.
469529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
469629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
469729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4698963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))exp(float3);
469929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
470029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
470129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
470229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4703963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return e ^ value.
470429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
470529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
470629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4707963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))exp(float4);
470829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
470929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
471029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
471129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4712963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return 10 ^ value.
471329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
471429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
471529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4716963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))exp10(float);
471729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
471829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
471929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
472029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4721963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return 10 ^ value.
472229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
472329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
472429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4725963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))exp10(float2);
472629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
472729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
472829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
472929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4730963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return 10 ^ value.
473129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
473229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
473329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4734963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))exp10(float3);
473529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
473629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
473729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
473829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4739963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return 10 ^ value.
474029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
474129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
474229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4743963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))exp10(float4);
474429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
474529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
474629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
474729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4748963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return 2 ^ value.
474929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
475029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
475129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4752963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))exp2(float);
475329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
475429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
475529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
475629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4757963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return 2 ^ value.
475829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
475929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
476029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4761963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))exp2(float2);
476229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
476329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
476429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
476529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4766963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return 2 ^ value.
476729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
476829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
476929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4770963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))exp2(float3);
477129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
477229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
477329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
477429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4775963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return 2 ^ value.
477629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
477729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
477829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4779963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))exp2(float4);
478029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
478129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
478229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
478329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4784963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (e ^ value) - 1.
478529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
478629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
478729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4788963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))expm1(float);
478929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
479029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
479129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
479229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4793963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (e ^ value) - 1.
479429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
479529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
479629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4797963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))expm1(float2);
479829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
479929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
480029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
480129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4802963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (e ^ value) - 1.
480329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
480429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
480529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4806963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))expm1(float3);
480729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
480829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
480929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
481029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4811963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (e ^ value) - 1.
481229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
481329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
481429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4815963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))expm1(float4);
481629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
481729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
481829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
481929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4820963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
482129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
482229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
482329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4824963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fabs(float);
482529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
482629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
482729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
482829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4829963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
483029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
483129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
483229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4833963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))fabs(float2);
483429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
483529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
483629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
483729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4838963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
483929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
484029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
484129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4842963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))fabs(float3);
484329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
484429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
484529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
484629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4847963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the absolute value of a value.
484829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
484929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
485029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4851963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))fabs(float4);
485229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
485329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4854963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
485529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4856963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the approximate distance between two points.
485729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4858963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
485929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4860963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fast_distance(float lhs, float rhs);
486129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
486229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4863963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
486429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4865963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the approximate distance between two points.
486629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4867963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
486829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4869963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fast_distance(float2 lhs, float2 rhs);
487029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
487129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4872963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
487329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4874963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the approximate distance between two points.
487529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4876963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
487729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4878963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fast_distance(float3 lhs, float3 rhs);
487929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
488029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4881963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
488229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4883963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the approximate distance between two points.
488429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4885963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
488629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4887963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fast_distance(float4 lhs, float4 rhs);
488829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
488929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4890963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
489129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4892963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the approximate length of a vector.
489329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4894963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
489529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4896963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fast_length(float v);
489729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
489829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4899963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
490029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4901963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the approximate length of a vector.
490229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4903963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
490429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4905963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fast_length(float2 v);
490629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
490729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4908963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
490929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4910963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the approximate length of a vector.
491129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4912963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
491329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4914963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fast_length(float3 v);
491529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
491629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4917963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
491829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4919963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the approximate length of a vector.
492029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4921963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
492229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4923963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fast_length(float4 v);
492429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
492529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4926963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
492729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4928963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Approximately normalize a vector.
492929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4930963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
493129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4932963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fast_normalize(float v);
493329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
493429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4935963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
493629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4937963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Approximately normalize a vector.
493829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4939963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
494029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4941963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))fast_normalize(float2 v);
494229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
494329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4944963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
494529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4946963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Approximately normalize a vector.
494729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4948963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
494929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4950963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))fast_normalize(float3 v);
495129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
495229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
4953963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
495429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4955963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Approximately normalize a vector.
495629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
4957963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
495829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4959963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))fast_normalize(float4 v);
496029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
496129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
496229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
496329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4964963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the positive difference between two values.
496529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
496629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
496729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4968963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fdim(float a, float b);
496929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
497029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
497129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
497229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4973963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the positive difference between two values.
497429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
497529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
497629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4977963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))fdim(float2 a, float2 b);
497829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
497929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
498029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
498129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4982963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the positive difference between two values.
498329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
498429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
498529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4986963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))fdim(float3 a, float3 b);
498729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
498829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
498929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
499029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
4991963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the positive difference between two values.
499229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
499329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
499429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
4995963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))fdim(float4 a, float4 b);
499629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
499729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
499829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
499929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5000963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the smallest integer not greater than a value.
500129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
500229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
500329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5004963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))floor(float);
500529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
500629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
500729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
500829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5009963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the smallest integer not greater than a value.
501029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
501129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
501229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5013963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))floor(float2);
501429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
501529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
501629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
501729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5018963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the smallest integer not greater than a value.
501929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
502029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
502129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5022963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))floor(float3);
502329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
502429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
502529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
502629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5027963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the smallest integer not greater than a value.
502829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
502929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
503029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5031963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))floor(float4);
503229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
503329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
503429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
503529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5036963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (a * b) + c.
503729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
503829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
503929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5040963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fma(float a, float b, float c);
504129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
504229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
504329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
504429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5045963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (a * b) + c.
504629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
504729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
504829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5049963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))fma(float2 a, float2 b, float2 c);
505029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
505129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
505229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
505329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5054963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (a * b) + c.
505529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
505629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
505729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5058963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))fma(float3 a, float3 b, float3 c);
505929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
506029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
506129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
506229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5063963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (a * b) + c.
506429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
506529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
506629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5067963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))fma(float4 a, float4 b, float4 c);
506829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
506929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
507029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
507129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5072963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x < y ? y : x)
507329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
507429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
507529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5076963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fmax(float x, float y);
507729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
507829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
507929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
508029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5081963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x < y ? y : x)
508229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
508329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
508429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5085963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))fmax(float2 x, float2 y);
508629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
508729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
508829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
508929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5090963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x < y ? y : x)
509129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
509229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
509329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5094963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))fmax(float3 x, float3 y);
509529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
509629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
509729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
509829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5099963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x < y ? y : x)
510029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
510129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
510229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5103963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))fmax(float4 x, float4 y);
510429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
510529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
510629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
510729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5108963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x < y ? y : x)
510929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
511029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
511129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5112963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))fmax(float2 x, float y);
511329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
511429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
511529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
511629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5117963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x < y ? y : x)
511829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
511929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
512029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5121963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))fmax(float3 x, float y);
512229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
512329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
512429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
512529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5126963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x < y ? y : x)
512729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
512829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
512929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5130963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))fmax(float4 x, float y);
513129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
513229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
513329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
513429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5135963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x > y ? y : x)
513629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
513729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
513829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5139963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fmin(float x, float y);
514029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
514129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
514229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
514329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5144963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x > y ? y : x)
514529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
514629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
514729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5148963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))fmin(float2 x, float2 y);
514929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
515029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
515129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
515229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5153963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x > y ? y : x)
515429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
515529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
515629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5157963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))fmin(float3 x, float3 y);
515829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
515929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
516029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
516129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5162963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x > y ? y : x)
516329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
516429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
516529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5166963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))fmin(float4 x, float4 y);
516729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
516829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
516929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
517029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5171963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x > y ? y : x)
517229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
517329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
517429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5175963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))fmin(float2 x, float y);
517629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
517729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
517829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
517929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5180963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x > y ? y : x)
518129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
518229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
518329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5184963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))fmin(float3 x, float y);
518529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
518629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
518729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
518829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5189963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x > y ? y : x)
519029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
519129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
519229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5193963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))fmin(float4 x, float y);
519429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
519529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
519629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
519729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5198963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the remainder from x / y
519929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
520029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
520129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5202963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))fmod(float x, float y);
520329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
520429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
520529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
520629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5207963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the remainder from x / y
520829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
520929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
521029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5211963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))fmod(float2 x, float2 y);
521229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
521329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
521429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
521529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5216963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the remainder from x / y
521729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
521829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
521929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5220963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))fmod(float3 x, float3 y);
522129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
522229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
522329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
522429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5225963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the remainder from x / y
522629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
522729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
522829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5229963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))fmod(float4 x, float4 y);
523029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
523129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
523229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
523329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5234963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return fractional part of v
5235963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5236963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param floor  floor[0] will be set to the floor of the input value.
523729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
523829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
523929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
524046341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float __attribute__((overloadable))fract(float v, float* floor);
524129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
524229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
524329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
524429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5245963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return fractional part of v
5246963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5247963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param floor  floor[0] will be set to the floor of the input value.
524829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
524929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
525029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
525146341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float2 __attribute__((overloadable))fract(float2 v, float2* floor);
525229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
525329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
525429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
525529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5256963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return fractional part of v
5257963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5258963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param floor  floor[0] will be set to the floor of the input value.
525929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
526029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
526129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
526246341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float3 __attribute__((overloadable))fract(float3 v, float3* floor);
526329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
526429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
526529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
526629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5267963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return fractional part of v
5268963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5269963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param floor  floor[0] will be set to the floor of the input value.
527029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
527129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
527229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
527346341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float4 __attribute__((overloadable))fract(float4 v, float4* floor);
527429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
527529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
527629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
527729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5278963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return fractional part of v
527929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
528029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
528129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5282963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic float __attribute__((const, overloadable))fract(float v) {
5283963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet float unused;
5284963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return fract(v, &unused);
5285963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
528629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
528729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
528829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
528929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5290963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return fractional part of v
529129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
529229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
529329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5294963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic float2 __attribute__((const, overloadable))fract(float2 v) {
5295963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet float2 unused;
5296963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return fract(v, &unused);
5297963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
529829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
529929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
530029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
530129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5302963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return fractional part of v
530329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
530429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
530529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5306963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic float3 __attribute__((const, overloadable))fract(float3 v) {
5307963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet float3 unused;
5308963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return fract(v, &unused);
5309963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
531029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
531129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
531229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
531329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5314963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return fractional part of v
531529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
531629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
531729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5318963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic float4 __attribute__((const, overloadable))fract(float4 v) {
5319963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet float4 unused;
5320963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return fract(v, &unused);
5321963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
532229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
532329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
532429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
532529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5326963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the mantissa and place the exponent into iptr[0]
5327963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5328963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param v Supports float, float2, float3, float4.
532929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
533029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
533129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
533246341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float __attribute__((overloadable))frexp(float v, int* iptr);
533329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
533429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
533529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
533629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5337963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the mantissa and place the exponent into iptr[0]
5338963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5339963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param v Supports float, float2, float3, float4.
534029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
534129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
534229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
534346341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float2 __attribute__((overloadable))frexp(float2 v, int2* iptr);
534429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
534529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
534629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
534729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5348963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the mantissa and place the exponent into iptr[0]
5349963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5350963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param v Supports float, float2, float3, float4.
535129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
535229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
535329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
535446341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float3 __attribute__((overloadable))frexp(float3 v, int3* iptr);
535529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
535629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
535729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
535829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5359963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the mantissa and place the exponent into iptr[0]
5360963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5361963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param v Supports float, float2, float3, float4.
536229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
536329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
536429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
536546341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float4 __attribute__((overloadable))frexp(float4 v, int4* iptr);
536629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
536729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5368963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
536929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5370963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the approximate reciprocal of a value.
537129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5372963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
537329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5374963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))half_recip(float v);
537529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
537629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5377963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
537829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5379963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the approximate reciprocal of a value.
538029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5381963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
538229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5383963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))half_recip(float2 v);
538429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
538529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5386963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
538729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5388963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the approximate reciprocal of a value.
538929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5390963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
539129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5392963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))half_recip(float3 v);
539329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
539429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5395963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
539629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5397963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the approximate reciprocal of a value.
539829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5399963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
540029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5401963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))half_recip(float4 v);
540229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
540329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5404963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
540529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5406963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the approximate value of (1.f / sqrt(value)).
540729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5408963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
540929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5410963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))half_rsqrt(float v);
541129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
541229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5413963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
541429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5415963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the approximate value of (1.f / sqrt(value)).
541629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5417963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
541829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5419963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))half_rsqrt(float2 v);
542029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
542129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5422963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
542329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5424963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the approximate value of (1.f / sqrt(value)).
542529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5426963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
542729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5428963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))half_rsqrt(float3 v);
542929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
543029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5431963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
543229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5433963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the approximate value of (1.f / sqrt(value)).
543429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5435963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
543629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5437963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))half_rsqrt(float4 v);
543829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
543929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5440963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
544129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5442963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the approximate square root of a value.
544329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5444963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
544529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5446963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))half_sqrt(float v);
544729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
544829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5449963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
545029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5451963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the approximate square root of a value.
545229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5453963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
545429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5455963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))half_sqrt(float2 v);
545629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
545729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5458963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
545929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5460963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the approximate square root of a value.
546129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5462963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
546329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5464963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))half_sqrt(float3 v);
546529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
546629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5467963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17))
546829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5469963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the approximate square root of a value.
547029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5471963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 17 and newer.
547229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5473963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))half_sqrt(float4 v);
547429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
547529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
547629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
547729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5478963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return sqrt(x*x + y*y)
547929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
548029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
548129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5482963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))hypot(float x, float y);
548329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
548429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
548529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
548629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5487963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return sqrt(x*x + y*y)
548829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
548929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
549029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5491963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))hypot(float2 x, float2 y);
549229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
549329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
549429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
549529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5496963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return sqrt(x*x + y*y)
549729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
549829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
549929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5500963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))hypot(float3 x, float3 y);
550129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
550229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
550329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
550429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5505963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return sqrt(x*x + y*y)
550629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
550729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
550829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5509963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))hypot(float4 x, float4 y);
551029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
551129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
551229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
551329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5514963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the integer exponent of a value
551529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
551629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
551729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5518963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int __attribute__((const, overloadable))ilogb(float);
551929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
552029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
552129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
552229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5523963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the integer exponent of a value
552429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
552529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
552629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5527963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))ilogb(float2);
552829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
552929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
553029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
553129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5532963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the integer exponent of a value
553329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
553429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
553529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5536963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))ilogb(float3);
553729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
553829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
553929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
554029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5541963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the integer exponent of a value
554229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
554329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
554429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5545963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))ilogb(float4);
554629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
554729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
554829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
554929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5550963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x * 2^y)
5551963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5552963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param x Supports 1,2,3,4 components
5553963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param y Supports single component or matching vector.
555429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
555529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
555629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5557963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))ldexp(float x, int y);
555829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
555929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
556029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
556129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5562963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x * 2^y)
5563963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5564963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param x Supports 1,2,3,4 components
5565963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param y Supports single component or matching vector.
556629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
556729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
556829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5569963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))ldexp(float2 x, int2 y);
557029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
557129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
557229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
557329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5574963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x * 2^y)
5575963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5576963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param x Supports 1,2,3,4 components
5577963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param y Supports single component or matching vector.
557829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
557929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
558029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5581963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))ldexp(float3 x, int3 y);
558229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
558329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
558429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
558529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5586963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x * 2^y)
5587963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5588963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param x Supports 1,2,3,4 components
5589963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param y Supports single component or matching vector.
559029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
559129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
559229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5593963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))ldexp(float4 x, int4 y);
559429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
559529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
559629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
559729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5598963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x * 2^y)
5599963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5600963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param x Supports 1,2,3,4 components
5601963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param y Supports single component or matching vector.
560229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
560329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
560429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5605963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))ldexp(float2 x, int y);
560629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
560729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
560829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
560929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5610963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x * 2^y)
5611963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5612963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param x Supports 1,2,3,4 components
5613963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param y Supports single component or matching vector.
561429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
561529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
561629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5617963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))ldexp(float3 x, int y);
561829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
561929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
562029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
562129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5622963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (x * 2^y)
5623963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
5624963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param x Supports 1,2,3,4 components
5625963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param y Supports single component or matching vector.
562629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
562729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
562829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5629963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))ldexp(float4 x, int y);
563029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
563129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
563229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
563329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5634963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the length of a vector.
563529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
563629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
563729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5638963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))length(float v);
563929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
564029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
564129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
564229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5643963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the length of a vector.
564429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
564529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
564629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5647963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))length(float2 v);
564829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
564929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
565029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
565129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5652963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the length of a vector.
565329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
565429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
565529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5656963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))length(float3 v);
565729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
565829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
565929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
566029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5661963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the length of a vector.
566229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
566329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
566429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5665963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))length(float4 v);
566629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
566729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
566829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
566929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5670631b9e32336e9d3bb8a586330498f7e09c76c4f7Jean-Luc Brouillet * Return the log gamma
567129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
567229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
567329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5674963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))lgamma(float);
567529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
567629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
567729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
567829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5679631b9e32336e9d3bb8a586330498f7e09c76c4f7Jean-Luc Brouillet * Return the log gamma
568029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
568129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
568229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5683963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))lgamma(float2);
568429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
568529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
568629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
568729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5688631b9e32336e9d3bb8a586330498f7e09c76c4f7Jean-Luc Brouillet * Return the log gamma
568929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
569029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
569129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5692963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))lgamma(float3);
569329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
569429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
569529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
569629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5697631b9e32336e9d3bb8a586330498f7e09c76c4f7Jean-Luc Brouillet * Return the log gamma
569829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
569929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
570029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5701963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))lgamma(float4);
570229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
570329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
570429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
570529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5706963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the log gamma and sign
570729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
570829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
570929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
571046341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float __attribute__((overloadable))lgamma(float x, int* y);
571129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
571229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
571329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
571429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5715963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the log gamma and sign
571629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
571729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
571829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
571946341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float2 __attribute__((overloadable))lgamma(float2 x, int2* y);
572029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
572129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
572229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
572329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5724963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the log gamma and sign
572529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
572629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
572729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
572846341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float3 __attribute__((overloadable))lgamma(float3 x, int3* y);
572929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
573029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
573129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
573229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5733963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the log gamma and sign
573429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
573529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
573629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
573746341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float4 __attribute__((overloadable))lgamma(float4 x, int4* y);
573829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
573929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
574029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
574129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5742963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the natural logarithm.
574329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
574429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
574529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5746963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))log(float);
574729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
574829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
574929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
575029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5751963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the natural logarithm.
575229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
575329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
575429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5755963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))log(float2);
575629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
575729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
575829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
575929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5760963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the natural logarithm.
576129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
576229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
576329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5764963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))log(float3);
576529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
576629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
576729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
576829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5769963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the natural logarithm.
577029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
577129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
577229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5773963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))log(float4);
577429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
577529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
577629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
577729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5778963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the base 10 logarithm.
577929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
578029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
578129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5782963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))log10(float);
578329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
578429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
578529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
578629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5787963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the base 10 logarithm.
578829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
578929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
579029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5791963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))log10(float2);
579229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
579329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
579429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
579529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5796963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the base 10 logarithm.
579729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
579829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
579929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5800963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))log10(float3);
580129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
580229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5803963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
580429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5805963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the base 10 logarithm.
580629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5807963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
580829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5809963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))log10(float4);
581029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
581129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5812963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
581329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5814963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the natural logarithm of (v + 1.0f)
581529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5816963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
581729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5818963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))log1p(float);
581929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
582029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5821963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
582229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5823963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the natural logarithm of (v + 1.0f)
582429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5825963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
582629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5827963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))log1p(float2);
582829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
582929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5830963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
583129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5832963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the natural logarithm of (v + 1.0f)
583329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5834963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
583529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5836963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))log1p(float3);
583729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
583829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5839963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
584029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5841963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the natural logarithm of (v + 1.0f)
584229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5843963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
584429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5845963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))log1p(float4);
584629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
584729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5848963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
584929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5850963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the base 2 logarithm.
585129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5852963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
585329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5854963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))log2(float);
585529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
585629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5857963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
585829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5859963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the base 2 logarithm.
586029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5861963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
586229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5863963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))log2(float2);
586429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
586529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5866963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
586729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5868963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the base 2 logarithm.
586929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5870963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
587129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5872963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))log2(float3);
587329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
587429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5875963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
587629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5877963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the base 2 logarithm.
587829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5879963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
588029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5881963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))log2(float4);
588229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
588329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5884963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
588529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5886963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the exponent of the value.
588729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5888963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
588929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5890963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))logb(float);
589129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
589229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5893963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
589429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5895963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the exponent of the value.
589629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5897963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
589829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5899963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))logb(float2);
590029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
590129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5902963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
590329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5904963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the exponent of the value.
590529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5906963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
590729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5908963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))logb(float3);
590929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
591029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5911963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
591229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5913963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the exponent of the value.
591429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5915963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
591629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5917963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))logb(float4);
591829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
591929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5920963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
592129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5922963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute (a * b) + c
592329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5924963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
592529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5926963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))mad(float a, float b, float c);
592729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
592829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5929963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
593029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5931963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute (a * b) + c
593229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5933963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
593429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5935963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))mad(float2 a, float2 b, float2 c);
593629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
593729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5938963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
593929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5940963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute (a * b) + c
594129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5942963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
594329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5944963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))mad(float3 a, float3 b, float3 c);
594529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
594629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5947963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
594829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5949963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute (a * b) + c
595029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5951963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
595229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5953963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))mad(float4 a, float4 b, float4 c);
595429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
595529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5956963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
595729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5958963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
595929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5960963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
596129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5962963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))max(float, float);
596329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
596429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5965963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
596629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5967963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
596829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5969963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
597029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5971963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))max(float2, float2);
597229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
597329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5974963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
597529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5976963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
597729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5978963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
597929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5980963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))max(float3, float3);
598129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
598229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
5983963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
598429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5985963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
598629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
5987963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
598829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5989963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))max(float4, float4);
599029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
599129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
599229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
599329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
5994963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
599529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
599629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Suppored by API versions 9 - 19
599729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
5998963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic char __attribute__((const, overloadable))max(char v1, char v2) {
5999963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return (v1 > v2 ? v1 : v2);
600029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams}
600129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
600229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
600329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
600429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6005963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
600629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
600729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Suppored by API versions 9 - 19
600829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6009963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uchar __attribute__((const, overloadable))max(uchar v1, uchar v2) {
6010963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return (v1 > v2 ? v1 : v2);
601129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams}
601229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
601329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
601429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
601529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6016963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
601729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
601829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Suppored by API versions 9 - 19
601929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6020963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic short __attribute__((const, overloadable))max(short v1, short v2) {
6021963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return (v1 > v2 ? v1 : v2);
602229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams}
602329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
602429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6025963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
602629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6027963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
602829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6029963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
603029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6031963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic ushort __attribute__((const, overloadable))max(ushort v1, ushort v2) {
6032963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return (v1 > v2 ? v1 : v2);
6033963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
603429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
603529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6036963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
603729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6038963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
603929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6040963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
604129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6042963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic int __attribute__((const, overloadable))max(int v1, int v2) {
6043963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return (v1 > v2 ? v1 : v2);
6044963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
604529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
604629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6047963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
604829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6049963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
605029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6051963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
605229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6053963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uint __attribute__((const, overloadable))max(uint v1, uint v2) {
6054963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return (v1 > v2 ? v1 : v2);
6055963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
605629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
605729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6058963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
605929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6060963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
606129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6062963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
606329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6064963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic char2 __attribute__((const, overloadable))max(char2 v1, char2 v2) {
6065963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet char2 tmp;
6066963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6067963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6068963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6069963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
607029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
607129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6072963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
607329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6074963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
607529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6076963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
607729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6078963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uchar2 __attribute__((const, overloadable))max(uchar2 v1, uchar2 v2) {
6079963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet uchar2 tmp;
6080963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6081963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6082963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6083963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
608429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
608529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6086963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
608729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6088963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
608929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6090963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
609129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6092963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic short2 __attribute__((const, overloadable))max(short2 v1, short2 v2) {
6093963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet short2 tmp;
6094963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6095963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6096963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6097963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
609829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
609929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6100963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
610129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6102963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
610329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6104963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
610529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6106963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic ushort2 __attribute__((const, overloadable))max(ushort2 v1, ushort2 v2) {
6107963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet ushort2 tmp;
6108963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6109963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6110963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6111963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
611229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
611329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6114963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
611529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6116963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
611729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6118963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
611929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6120963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic int2 __attribute__((const, overloadable))max(int2 v1, int2 v2) {
6121963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet int2 tmp;
6122963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6123963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6124963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6125963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
612629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
612729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6128963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
612929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6130963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
613129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6132963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
613329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6134963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uint2 __attribute__((const, overloadable))max(uint2 v1, uint2 v2) {
6135963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet uint2 tmp;
6136963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6137963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6138963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6139963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
614029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
614129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6142963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
614329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6144963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
614529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6146963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
614729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6148963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic char3 __attribute__((const, overloadable))max(char3 v1, char3 v2) {
6149963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet char3 tmp;
6150963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6151963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6152963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6153963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6154963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
615529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
615629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6157963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
615829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6159963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
616029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6161963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
616229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6163963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uchar3 __attribute__((const, overloadable))max(uchar3 v1, uchar3 v2) {
6164963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet uchar3 tmp;
6165963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6166963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6167963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6168963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6169963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
617029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
617129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6172963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
617329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6174963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
617529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6176963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
617729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6178963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic short3 __attribute__((const, overloadable))max(short3 v1, short3 v2) {
6179963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet short3 tmp;
6180963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6181963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6182963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6183963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6184963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
618529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
618629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6187963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
618829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6189963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
619029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6191963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
619229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6193963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic ushort3 __attribute__((const, overloadable))max(ushort3 v1, ushort3 v2) {
6194963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet ushort3 tmp;
6195963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6196963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6197963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6198963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6199963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
620029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
620129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6202963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
620329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6204963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
620529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6206963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
620729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6208963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic int3 __attribute__((const, overloadable))max(int3 v1, int3 v2) {
6209963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet int3 tmp;
6210963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6211963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6212963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6213963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6214963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
621529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
621629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6217963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
621829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6219963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
622029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6221963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
622229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6223963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uint3 __attribute__((const, overloadable))max(uint3 v1, uint3 v2) {
6224963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet uint3 tmp;
6225963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6226963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6227963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6228963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6229963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
623029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
623129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6232963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
623329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6234963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
623529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6236963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
623729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6238963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic char4 __attribute__((const, overloadable))max(char4 v1, char4 v2) {
6239963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet char4 tmp;
6240963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6241963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6242963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6243963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.w = (v1.w > v2.w ? v1.w : v2.w);
6244963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6245963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
624629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
624729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6248963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
624929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6250963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
625129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6252963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
625329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6254963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uchar4 __attribute__((const, overloadable))max(uchar4 v1, uchar4 v2) {
6255963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet uchar4 tmp;
6256963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6257963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6258963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6259963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.w = (v1.w > v2.w ? v1.w : v2.w);
6260963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6261963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
626229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
626329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6264963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
626529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6266963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
626729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6268963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
626929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6270963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic short4 __attribute__((const, overloadable))max(short4 v1, short4 v2) {
6271963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet short4 tmp;
6272963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6273963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6274963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6275963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.w = (v1.w > v2.w ? v1.w : v2.w);
6276963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6277963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
6278963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#endif
6279963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet
6280963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6281963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet/*
6282963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
628329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6284963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
628529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6286963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic ushort4 __attribute__((const, overloadable))max(ushort4 v1, ushort4 v2) {
6287963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet ushort4 tmp;
6288963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6289963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6290963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6291963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.w = (v1.w > v2.w ? v1.w : v2.w);
6292963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6293963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
629429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
629529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6296963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
629729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6298963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
629929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6300963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
630129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6302963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic int4 __attribute__((const, overloadable))max(int4 v1, int4 v2) {
6303963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet int4 tmp;
6304963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6305963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6306963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6307963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.w = (v1.w > v2.w ? v1.w : v2.w);
6308963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6309963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
6310963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#endif
6311963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet
6312963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
6313963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet/*
6314963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
6315963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
6316963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
6317963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet */
6318963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uint4 __attribute__((const, overloadable))max(uint4 v1, uint4 v2) {
6319963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet uint4 tmp;
6320963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x > v2.x ? v1.x : v2.x);
6321963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y > v2.y ? v1.y : v2.y);
6322963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z > v2.z ? v1.z : v2.z);
6323963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.w = (v1.w > v2.w ? v1.w : v2.w);
6324963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6325963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
632629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
632729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6328aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
632929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6330963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
633129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6332aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
633329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6334963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char __attribute__((const, overloadable))max(char v1, char v2);
633529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
633629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6337aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
633829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6339963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
634029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6341aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
634229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6343963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))max(char2 v1, char2 v2);
634429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
634529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6346aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
634729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6348963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
634929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6350aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
635129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6352963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))max(char3 v1, char3 v2);
635329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
635429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6355aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
635629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6357963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
635829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6359aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
636029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6361963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))max(char4 v1, char4 v2);
636229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
636329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6364aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
636529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6366963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
636729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6368aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
636929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6370963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar __attribute__((const, overloadable))max(uchar v1, uchar v2);
637129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
637229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6373aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
637429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6375963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
637629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6377aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
637829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6379963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))max(uchar2 v1, uchar2 v2);
638029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
638129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6382aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
638329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6384963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
638529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6386aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
638729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6388963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))max(uchar3 v1, uchar3 v2);
638929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
639029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6391aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
639229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6393963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
639429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6395aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
639629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6397963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))max(uchar4 v1, uchar4 v2);
639829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
639929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6400aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
640129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6402963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
640329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6404aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
640529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6406963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short __attribute__((const, overloadable))max(short v1, short v2);
640729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
640829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6409aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
641029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6411963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
641229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6413aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
641429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6415963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))max(short2 v1, short2 v2);
641629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
641729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6418aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
641929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6420963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
642129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6422aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
642329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6424963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))max(short3 v1, short3 v2);
642529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
642629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6427aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
642829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6429963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the maximum value from two arguments
643029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6431aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
643229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6433963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))max(short4 v1, short4 v2);
643429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
643529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6436aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
643729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
643829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
643929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6440aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
644129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6442963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort __attribute__((const, overloadable))max(ushort v1, ushort v2);
644329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
644429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6445aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
644629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
644729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
644829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6449aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
645029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6451963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))max(ushort2 v1, ushort2 v2);
645229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
645329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6454aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
645529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
645629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
645729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6458aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
645929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6460963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))max(ushort3 v1, ushort3 v2);
646129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
646229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6463aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
646429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
646529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
646629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6467aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
646829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6469963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))max(ushort4 v1, ushort4 v2);
647029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
647129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6472aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
647329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
647429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
647529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6476aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
647729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6478963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int __attribute__((const, overloadable))max(int v1, int v2);
647929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
648029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6481aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
648229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
648329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
648429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6485aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
648629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6487963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))max(int2 v1, int2 v2);
648829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
648929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6490aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
649129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
649229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
649329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6494aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
649529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6496963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))max(int3 v1, int3 v2);
649729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
649829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6499aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
650029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
650129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
650229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6503aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
650429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6505963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))max(int4 v1, int4 v2);
650629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
650729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6508aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
650929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
651029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
651129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6512aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
651329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6514963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint __attribute__((const, overloadable))max(uint v1, uint v2);
651529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
651629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6517aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
651829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
651929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
652029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6521aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
652229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6523963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))max(uint2 v1, uint2 v2);
652429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
652529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6526aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
652729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
652829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
652929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6530aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
653129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6532963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))max(uint3 v1, uint3 v2);
653329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
653429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6535aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
653629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
653729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
653829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6539aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
654029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6541963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))max(uint4 v1, uint4 v2);
654229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
654329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6544aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
654529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
654629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
654729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6548aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
654929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6550963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long __attribute__((const, overloadable))max(long v1, long v2);
655129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
655229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6553aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
655429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
655529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
655629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6557aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
655829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6559963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))max(long2 v1, long2 v2);
656029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
656129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6562aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
656329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
656429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
656529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6566aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
656729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6568963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))max(long3 v1, long3 v2);
656929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
657029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6571aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
657229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
657329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
657429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6575aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
657629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6577963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))max(long4 v1, long4 v2);
657829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
657929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6580aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
658129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
658229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
658329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6584aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
658529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6586963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong __attribute__((const, overloadable))max(ulong v1, ulong v2);
658729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
658829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6589aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
659029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
659129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
659229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6593aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
659429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6595963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))max(ulong2 v1, ulong2 v2);
659629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
659729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6598aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
659929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
660029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
660129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6602aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
660329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6604963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))max(ulong3 v1, ulong3 v2);
660529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
660629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6607aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
660829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
660929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Return the maximum value from two arguments
661029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6611aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
661229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6613963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))max(ulong4 v1, ulong4 v2);
6614963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#endif
6615963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet
6616963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
6617963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet/*
6618963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
6619963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
6620963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
6621963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet */
6622963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))min(float, float);
6623963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#endif
6624963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet
6625963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
6626963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet/*
6627963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
6628963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
6629963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
6630963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet */
6631963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))min(float2, float2);
6632963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#endif
6633963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet
6634963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
6635963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet/*
6636963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
6637963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
6638963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
6639963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet */
6640963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))min(float3, float3);
6641963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#endif
6642963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet
6643963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
6644963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet/*
6645963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
6646963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
6647963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
6648963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet */
6649963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))min(float4, float4);
665029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
665129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
665229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
665329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6654963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
665529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
665629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Suppored by API versions 9 - 19
665729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6658963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic char __attribute__((const, overloadable))min(char v1, char v2) {
6659963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return (v1 < v2 ? v1 : v2);
666029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams}
666129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
666229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
666329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
666429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6665963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
666629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
666729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Suppored by API versions 9 - 19
666829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6669963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uchar __attribute__((const, overloadable))min(uchar v1, uchar v2) {
6670963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return (v1 < v2 ? v1 : v2);
667129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams}
667229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
667329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
667429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
667529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6676963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
667729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
667829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Suppored by API versions 9 - 19
667929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6680963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic short __attribute__((const, overloadable))min(short v1, short v2) {
6681963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return (v1 < v2 ? v1 : v2);
668229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams}
668329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
668429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
668529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
668629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6687963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
668829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
668929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Suppored by API versions 9 - 19
669029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6691963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic ushort __attribute__((const, overloadable))min(ushort v1, ushort v2) {
6692963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return (v1 < v2 ? v1 : v2);
669329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams}
669429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
669529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
669629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
669729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6698963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
669929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
670029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Suppored by API versions 9 - 19
670129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6702963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic int __attribute__((const, overloadable))min(int v1, int v2) {
6703963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return (v1 < v2 ? v1 : v2);
670429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams}
670529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
670629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
670729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
670829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6709963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
671029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
671129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Suppored by API versions 9 - 19
671229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6713963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uint __attribute__((const, overloadable))min(uint v1, uint v2) {
6714963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return (v1 < v2 ? v1 : v2);
671529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams}
671629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
671729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
671829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
671929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6720963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
672129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
672229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Suppored by API versions 9 - 19
672329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6724963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic char2 __attribute__((const, overloadable))min(char2 v1, char2 v2) {
6725963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet char2 tmp;
6726963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6727963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
672829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams return tmp;
672929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams}
673029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
673129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
673229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
673329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6734963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
673529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
673629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Suppored by API versions 9 - 19
673729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6738963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uchar2 __attribute__((const, overloadable))min(uchar2 v1, uchar2 v2) {
6739963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet uchar2 tmp;
6740963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6741963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
674229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams return tmp;
674329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams}
674429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
674529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6746963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
674729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6748963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
674929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6750963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
675129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6752963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic short2 __attribute__((const, overloadable))min(short2 v1, short2 v2) {
6753963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet short2 tmp;
6754963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6755963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6756963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6757963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
675829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
675929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6760963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
676129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6762963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
676329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6764963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
676529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6766963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic ushort2 __attribute__((const, overloadable))min(ushort2 v1, ushort2 v2) {
6767963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet ushort2 tmp;
6768963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6769963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6770963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6771963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
677229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
677329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6774963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
677529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6776963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
677729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6778963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
677929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6780963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic int2 __attribute__((const, overloadable))min(int2 v1, int2 v2) {
6781963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet int2 tmp;
6782963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6783963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6784963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6785963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
678629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
678729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6788963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
678929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6790963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
679129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6792963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
679329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6794963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uint2 __attribute__((const, overloadable))min(uint2 v1, uint2 v2) {
6795963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet uint2 tmp;
6796963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6797963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6798963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6799963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
680029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
680129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6802963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
680329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6804963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
680529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6806963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
680729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6808963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic char3 __attribute__((const, overloadable))min(char3 v1, char3 v2) {
6809963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet char3 tmp;
6810963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6811963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6812963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z < v2.z ? v1.z : v2.z);
6813963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6814963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
681529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
681629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6817963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
681829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6819963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
682029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6821963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
682229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6823963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uchar3 __attribute__((const, overloadable))min(uchar3 v1, uchar3 v2) {
6824963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet uchar3 tmp;
6825963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6826963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6827963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z < v2.z ? v1.z : v2.z);
6828963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6829963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
683029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
683129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6832963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
683329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6834963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
683529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6836963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
683729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6838963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic short3 __attribute__((const, overloadable))min(short3 v1, short3 v2) {
6839963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet short3 tmp;
6840963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6841963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6842963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z < v2.z ? v1.z : v2.z);
6843963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6844963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
684529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
684629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6847963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
684829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6849963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
685029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6851963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
685229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6853963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic ushort3 __attribute__((const, overloadable))min(ushort3 v1, ushort3 v2) {
6854963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet ushort3 tmp;
6855963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6856963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6857963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z < v2.z ? v1.z : v2.z);
6858963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6859963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
686029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
686129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6862963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
686329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6864963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
686529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6866963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
686729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6868963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic int3 __attribute__((const, overloadable))min(int3 v1, int3 v2) {
6869963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet int3 tmp;
6870963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6871963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6872963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z < v2.z ? v1.z : v2.z);
6873963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6874963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
687529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
687629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6877963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
687829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6879963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
688029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6881963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
688229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6883963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uint3 __attribute__((const, overloadable))min(uint3 v1, uint3 v2) {
6884963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet uint3 tmp;
6885963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6886963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6887963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z < v2.z ? v1.z : v2.z);
6888963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6889963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
689029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
689129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6892963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
689329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6894963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
689529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6896963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
689729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6898963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic char4 __attribute__((const, overloadable))min(char4 v1, char4 v2) {
6899963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet char4 tmp;
6900963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6901963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6902963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z < v2.z ? v1.z : v2.z);
6903963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.w = (v1.w < v2.w ? v1.w : v2.w);
6904963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6905963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
690629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
690729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6908963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
690929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6910963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
691129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6912963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
691329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6914963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uchar4 __attribute__((const, overloadable))min(uchar4 v1, uchar4 v2) {
6915963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet uchar4 tmp;
6916963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6917963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6918963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z < v2.z ? v1.z : v2.z);
6919963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.w = (v1.w < v2.w ? v1.w : v2.w);
6920963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6921963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
692229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
692329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6924963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
692529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6926963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
692729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6928963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
692929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6930963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic short4 __attribute__((const, overloadable))min(short4 v1, short4 v2) {
6931963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet short4 tmp;
6932963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6933963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6934963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z < v2.z ? v1.z : v2.z);
6935963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.w = (v1.w < v2.w ? v1.w : v2.w);
6936963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6937963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
693829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
693929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6940963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
694129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6942963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
694329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6944963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
694529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6946963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic ushort4 __attribute__((const, overloadable))min(ushort4 v1, ushort4 v2) {
6947963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet ushort4 tmp;
6948963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6949963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6950963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z < v2.z ? v1.z : v2.z);
6951963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.w = (v1.w < v2.w ? v1.w : v2.w);
6952963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6953963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
695429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
695529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6956963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
695729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6958963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
695929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6960963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
696129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6962963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic int4 __attribute__((const, overloadable))min(int4 v1, int4 v2) {
6963963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet int4 tmp;
6964963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6965963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6966963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z < v2.z ? v1.z : v2.z);
6967963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.w = (v1.w < v2.w ? v1.w : v2.w);
6968963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6969963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
697029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
697129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6972963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
697329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6974963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
697529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6976963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Suppored by API versions 9 - 19
697729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6978963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletstatic uint4 __attribute__((const, overloadable))min(uint4 v1, uint4 v2) {
6979963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet uint4 tmp;
6980963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.x = (v1.x < v2.x ? v1.x : v2.x);
6981963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.y = (v1.y < v2.y ? v1.y : v2.y);
6982963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.z = (v1.z < v2.z ? v1.z : v2.z);
6983963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet tmp.w = (v1.w < v2.w ? v1.w : v2.w);
6984963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet return tmp;
6985963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet}
698629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
698729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6988aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
698929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6990963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
699129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
6992aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
699329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
6994963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char __attribute__((const, overloadable))min(char v1, char v2);
699529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
699629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
6997aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
699829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
6999963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
700029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7001aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
700229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7003963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char2 __attribute__((const, overloadable))min(char2 v1, char2 v2);
700429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
700529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7006aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
700729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7008963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
700929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7010aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
701129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7012963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char3 __attribute__((const, overloadable))min(char3 v1, char3 v2);
701329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
701429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7015aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
701629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7017963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
701829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7019aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
702029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7021963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern char4 __attribute__((const, overloadable))min(char4 v1, char4 v2);
702229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
702329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7024aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
702529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7026963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
702729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7028aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
702929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7030963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar __attribute__((const, overloadable))min(uchar v1, uchar v2);
703129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
703229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7033aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
703429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7035963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
703629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7037aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
703829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7039963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable))min(uchar2 v1, uchar2 v2);
704029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
704129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7042aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
704329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7044963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
704529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7046aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
704729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7048963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable))min(uchar3 v1, uchar3 v2);
704929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
705029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7051aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
705229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7053963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
705429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7055aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
705629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7057963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable))min(uchar4 v1, uchar4 v2);
705829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
705929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7060aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
706129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7062963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
706329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7064aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
706529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7066963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short __attribute__((const, overloadable))min(short v1, short v2);
706729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
706829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7069aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
707029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7071963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
707229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7073aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
707429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7075963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short2 __attribute__((const, overloadable))min(short2 v1, short2 v2);
707629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
707729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7078aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
707929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7080963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
708129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7082aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
708329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7084963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short3 __attribute__((const, overloadable))min(short3 v1, short3 v2);
708529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
708629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7087aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
708829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7089963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
709029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7091aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
709229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7093963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern short4 __attribute__((const, overloadable))min(short4 v1, short4 v2);
709429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
709529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7096aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
709729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7098963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
709929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7100aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
710129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7102963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort __attribute__((const, overloadable))min(ushort v1, ushort v2);
710329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
710429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7105aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
710629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7107963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
710829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7109aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
711029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7111963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable))min(ushort2 v1, ushort2 v2);
711229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
711329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7114aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
711529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7116963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
711729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7118aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
711929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7120963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable))min(ushort3 v1, ushort3 v2);
712129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
712229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7123aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
712429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7125963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
712629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7127aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
712829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7129963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable))min(ushort4 v1, ushort4 v2);
713029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
713129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7132aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
713329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7134963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
713529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7136aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
713729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7138963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int __attribute__((const, overloadable))min(int v1, int v2);
713929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
714029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7141aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
714229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7143963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
714429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7145aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
714629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7147963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int2 __attribute__((const, overloadable))min(int2 v1, int2 v2);
714829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
714929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7150aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
715129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7152963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
715329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7154aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
715529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7156963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int3 __attribute__((const, overloadable))min(int3 v1, int3 v2);
715729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
715829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7159aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
716029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7161963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
716229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7163aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
716429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7165963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern int4 __attribute__((const, overloadable))min(int4 v1, int4 v2);
716629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
716729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7168aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
716929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7170963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
717129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7172aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
717329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7174963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint __attribute__((const, overloadable))min(uint v1, uint v2);
717529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
717629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7177aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
717829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7179963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
718029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7181aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
718229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7183963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable))min(uint2 v1, uint2 v2);
718429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
718529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7186aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
718729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7188963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
718929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7190aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
719129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7192963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable))min(uint3 v1, uint3 v2);
719329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
719429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7195aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
719629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7197963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
719829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7199aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
720029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7201963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable))min(uint4 v1, uint4 v2);
720229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
720329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7204aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
720529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7206963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
720729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7208aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
720929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7210963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long __attribute__((const, overloadable))min(long v1, long v2);
721129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
721229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7213aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
721429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7215963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
721629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7217aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
721829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7219963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long2 __attribute__((const, overloadable))min(long2 v1, long2 v2);
722029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
722129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7222aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
722329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7224963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
722529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7226aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
722729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7228963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long3 __attribute__((const, overloadable))min(long3 v1, long3 v2);
722929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
723029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7231aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
723229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7233963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
723429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7235aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
723629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7237963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern long4 __attribute__((const, overloadable))min(long4 v1, long4 v2);
723829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
723929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7240aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
724129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7242963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
724329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7244aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
724529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7246963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong __attribute__((const, overloadable))min(ulong v1, ulong v2);
724729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
724829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7249aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
725029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7251963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
725229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7253aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
725429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7255963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable))min(ulong2 v1, ulong2 v2);
725629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
725729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7258aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
725929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7260963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
726129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7262aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
726329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7264963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable))min(ulong3 v1, ulong3 v2);
726529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
726629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7267aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
726829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7269963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the minimum value from two arguments
727029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7271aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
727229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7273963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable))min(ulong4 v1, ulong4 v2);
727429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
727529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7276963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
727729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7278963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return start + ((stop - start) * amount)
727929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7280963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
728129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7282963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))mix(float start, float stop, float amount);
728329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
728429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7285963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
728629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7287963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return start + ((stop - start) * amount)
728829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7289963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
729029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7291963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))mix(float2 start, float2 stop, float2 amount);
729229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
729329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7294963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
729529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7296963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return start + ((stop - start) * amount)
729729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7298963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
729929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7300963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))mix(float3 start, float3 stop, float3 amount);
730129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
730229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7303963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
730429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7305963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return start + ((stop - start) * amount)
730629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7307963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
730829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7309963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))mix(float4 start, float4 stop, float4 amount);
731029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
731129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7312963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
731329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7314963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return start + ((stop - start) * amount)
731529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7316963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
731729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7318963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))mix(float2 start, float2 stop, float amount);
731929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
732029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7321963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
732229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7323963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return start + ((stop - start) * amount)
732429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7325963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
732629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7327963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))mix(float3 start, float3 stop, float amount);
732829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
732929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7330963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
733129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7332963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return start + ((stop - start) * amount)
733329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7334963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
733529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7336963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))mix(float4 start, float4 stop, float amount);
733729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
733829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7339963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
734029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7341963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the integral and fractional components of a number.
734229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7343963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param x Source value
7344963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param iret iret[0] will be set to the integral portion of the number.
7345963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @return The floating point portion of the value.
734629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7347963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
734829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
734946341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float __attribute__((overloadable))modf(float x, float* iret);
735029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
735129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7352963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
735329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7354963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the integral and fractional components of a number.
735529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7356963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param x Source value
7357963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param iret iret[0] will be set to the integral portion of the number.
7358963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @return The floating point portion of the value.
735929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7360963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
736129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
736246341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float2 __attribute__((overloadable))modf(float2 x, float2* iret);
736329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
736429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7365963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
736629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7367963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the integral and fractional components of a number.
736829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7369963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param x Source value
7370963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param iret iret[0] will be set to the integral portion of the number.
7371963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @return The floating point portion of the value.
737229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7373963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
737429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
737546341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float3 __attribute__((overloadable))modf(float3 x, float3* iret);
737629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
737729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7378963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
737929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7380963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the integral and fractional components of a number.
738129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7382963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param x Source value
7383963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param iret iret[0] will be set to the integral portion of the number.
7384963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @return The floating point portion of the value.
738529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7386963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
738729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
738846341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float4 __attribute__((overloadable))modf(float4 x, float4* iret);
738929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
739029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7391963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
739229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
7393963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * generate a nan
739429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
7395963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
739629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
7397963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))nan(uint);
739829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
739929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
7400d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7401d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7402d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * acos
7403d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7404d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7405d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7406d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_acos(float v);
7407d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7408d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7409d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7410d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7411d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * acos
7412d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7413d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7414d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7415d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_acos(float2 v);
7416d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7417d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7418d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7419d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7420d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * acos
7421d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7422d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7423d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7424d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_acos(float3 v);
7425d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7426d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7427d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7428d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7429d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * acos
7430d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7431d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7432d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7433d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_acos(float4 v);
7434d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7435d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7436d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7437d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7438d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * acosh
7439d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7440d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7441d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7442d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_acosh(float);
7443d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7444d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7445d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7446d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7447d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * acosh
7448d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7449d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7450d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7451d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_acosh(float2);
7452d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7453d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7454d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7455d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7456d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * acosh
7457d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7458d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7459d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7460d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_acosh(float3);
7461d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7462d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7463d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7464d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7465d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * acosh
7466d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7467d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7468d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7469d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_acosh(float4);
7470d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7471d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7472d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7473d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7474d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * acospi
7475d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7476d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7477d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7478d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_acospi(float v);
7479d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7480d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7481d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7482d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7483d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * acospi
7484d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7485d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7486d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7487d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_acospi(float2 v);
7488d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7489d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7490d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7491d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7492d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * acospi
7493d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7494d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7495d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7496d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_acospi(float3 v);
7497d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7498d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7499d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7500d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7501d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * acospi
7502d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7503d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7504d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7505d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_acospi(float4 v);
7506d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7507d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7508d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7509d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7510d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * asin
7511d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7512d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7513d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7514d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_asin(float v);
7515d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7516d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7517d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7518d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7519d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * asin
7520d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7521d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7522d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7523d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_asin(float2 v);
7524d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7525d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7526d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7527d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7528d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * asin
7529d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7530d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7531d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7532d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_asin(float3 v);
7533d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7534d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7535d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7536d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7537d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * asin
7538d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7539d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7540d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7541d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_asin(float4 v);
7542d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7543d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7544d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7545d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7546d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * asinh
7547d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7548d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7549d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7550d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_asinh(float);
7551d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7552d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7553d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7554d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7555d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * asinh
7556d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7557d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7558d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7559d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_asinh(float2);
7560d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7561d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7562d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7563d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7564d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * asinh
7565d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7566d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7567d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7568d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_asinh(float3);
7569d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7570d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7571d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7572d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7573d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * asinh
7574d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7575d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7576d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7577d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_asinh(float4);
7578d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7579d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7580d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7581d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7582d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse sine divided by PI.
7583d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7584d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7585d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7586d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_asinpi(float v);
7587d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7588d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7589d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7590d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7591d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse sine divided by PI.
7592d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7593d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7594d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7595d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_asinpi(float2 v);
7596d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7597d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7598d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7599d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7600d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse sine divided by PI.
7601d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7602d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7603d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7604d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_asinpi(float3 v);
7605d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7606d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7607d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7608d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7609d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse sine divided by PI.
7610d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7611d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7612d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7613d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_asinpi(float4 v);
7614d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7615d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7616d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7617d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7618d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent.
7619d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7620d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7621d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7622d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_atan(float v);
7623d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7624d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7625d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7626d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7627d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent.
7628d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7629d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7630d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7631d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_atan(float2 v);
7632d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7633d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7634d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7635d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7636d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent.
7637d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7638d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7639d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7640d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_atan(float3 v);
7641d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7642d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7643d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7644d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7645d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent.
7646d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7647d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7648d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7649d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_atan(float4 v);
7650d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7651d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7652d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7653d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7654d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent of y / x.
7655d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7656d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7657d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7658d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_atan2(float y, float x);
7659d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7660d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7661d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7662d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7663d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent of y / x.
7664d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7665d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7666d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7667d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_atan2(float2 y, float2 x);
7668d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7669d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7670d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7671d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7672d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent of y / x.
7673d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7674d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7675d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7676d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_atan2(float3 y, float3 x);
7677d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7678d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7679d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7680d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7681d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent of y / x.
7682d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7683d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7684d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7685d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_atan2(float4 y, float4 x);
7686d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7687d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7688d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7689d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7690d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent of y / x, divided by PI.
7691d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7692d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7693d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7694d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_atan2pi(float y, float x);
7695d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7696d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7697d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7698d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7699d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent of y / x, divided by PI.
7700d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7701d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7702d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7703d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_atan2pi(float2 y, float2 x);
7704d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7705d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7706d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7707d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7708d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent of y / x, divided by PI.
7709d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7710d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7711d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7712d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_atan2pi(float3 y, float3 x);
7713d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7714d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7715d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7716d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7717d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent of y / x, divided by PI.
7718d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7719d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7720d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7721d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_atan2pi(float4 y, float4 x);
7722d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7723d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7724d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7725d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7726d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse hyperbolic tangent.
7727d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7728d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7729d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
773032c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouilletextern float __attribute__((const, overloadable))native_atanh(float in);
7731d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7732d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7733d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7734d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7735d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse hyperbolic tangent.
7736d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7737d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7738d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
773932c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))native_atanh(float2 in);
7740d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7741d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7742d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7743d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7744d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse hyperbolic tangent.
7745d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7746d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7747d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
774832c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))native_atanh(float3 in);
7749d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7750d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7751d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7752d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7753d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse hyperbolic tangent.
7754d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7755d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7756d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
775732c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))native_atanh(float4 in);
7758d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7759d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7760d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7761d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7762d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent divided by PI.
7763d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7764d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7765d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7766d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_atanpi(float v);
7767d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7768d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7769d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7770d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7771d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent divided by PI.
7772d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7773d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7774d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7775d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_atanpi(float2 v);
7776d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7777d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7778d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7779d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7780d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent divided by PI.
7781d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7782d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7783d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7784d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_atanpi(float3 v);
7785d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7786d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7787d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7788d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7789d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the inverse tangent divided by PI.
7790d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7791d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7792d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7793d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_atanpi(float4 v);
7794d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7795d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7796d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7797d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7798d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the cube root.
7799d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7800d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7801d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7802d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_cbrt(float);
7803d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7804d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7805d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7806d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7807d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the cube root.
7808d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7809d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7810d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7811d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_cbrt(float2);
7812d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7813d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7814d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7815d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7816d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the cube root.
7817d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7818d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7819d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7820d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_cbrt(float3);
7821d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7822d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7823d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7824d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7825d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the cube root.
7826d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7827d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7828d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7829d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_cbrt(float4);
7830d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7831d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7832d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7833d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7834d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the cosine.
7835d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7836d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7837d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7838d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_cos(float);
7839d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7840d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7841d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7842d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7843d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the cosine.
7844d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7845d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7846d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7847d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_cos(float2);
7848d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7849d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7850d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7851d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7852d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the cosine.
7853d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7854d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7855d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7856d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_cos(float3);
7857d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7858d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7859d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7860d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7861d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the cosine.
7862d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7863d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7864d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7865d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_cos(float4);
7866d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7867d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7868d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7869d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7870d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the hypebolic cosine.
7871d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7872d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7873d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7874d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_cosh(float);
7875d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7876d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7877d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7878d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7879d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the hypebolic cosine.
7880d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7881d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7882d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7883d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_cosh(float2);
7884d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7885d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7886d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7887d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7888d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the hypebolic cosine.
7889d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7890d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7891d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7892d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_cosh(float3);
7893d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7894d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7895d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7896d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7897d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the hypebolic cosine.
7898d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7899d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7900d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7901d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_cosh(float4);
7902d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7903d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7904d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7905d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7906d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the cosine of the value * PI.
7907d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7908d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7909d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7910d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_cospi(float);
7911d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7912d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7913d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7914d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7915d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the cosine of the value * PI.
7916d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7917d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7918d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7919d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_cospi(float2);
7920d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7921d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7922d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7923d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7924d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the cosine of the value * PI.
7925d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7926d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7927d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7928d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_cospi(float3);
7929d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7930d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7931d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7932d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7933d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the cosine of the value * PI.
7934d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7935d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7936d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7937d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_cospi(float4);
7938d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7939d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7940d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7941d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7942d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the approximate distance between two points.
7943d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7944d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7945d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7946d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_distance(float lhs, float rhs);
7947d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7948d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7949d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7950d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7951d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the approximate distance between two points.
7952d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7953d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7954d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7955d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_distance(float2 lhs, float2 rhs);
7956d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7957d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7958d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7959d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7960d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the approximate distance between two points.
7961d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7962d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7963d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7964d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_distance(float3 lhs, float3 rhs);
7965d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7966d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7967d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7968d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7969d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the approximate distance between two points.
7970d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7971d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7972d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7973d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_distance(float4 lhs, float4 rhs);
7974d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7975d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7976d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7977d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7978d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the approximate division result of two values.
7979d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7980d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7981d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7982d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_divide(float lhs, float rhs);
7983d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7984d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7985d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7986d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7987d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the approximate division result of two values.
7988d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7989d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7990d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
7991d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_divide(float2 lhs, float2 rhs);
7992d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
7993d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
7994d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
7995d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
7996d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the approximate division result of two values.
7997d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
7998d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
7999d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8000d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_divide(float3 lhs, float3 rhs);
8001d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8002d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8003d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8004d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8005d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the approximate division result of two values.
8006d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8007d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8008d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8009d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_divide(float4 lhs, float4 rhs);
8010d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8011d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8012d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8013d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8014d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate exp
8015d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * valid for inputs -86.f to 86.f
8016d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Max 8192 ulps of error
8017d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8018d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8019d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8020d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_exp(float v);
8021d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8022d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8023d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8024d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8025d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate exp
8026d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * valid for inputs -86.f to 86.f
8027d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Max 8192 ulps of error
8028d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8029d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8030d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8031d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_exp(float2 v);
8032d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8033d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8034d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8035d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8036d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate exp
8037d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * valid for inputs -86.f to 86.f
8038d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Max 8192 ulps of error
8039d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8040d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8041d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8042d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_exp(float3 v);
8043d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8044d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8045d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8046d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8047d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate exp
8048d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * valid for inputs -86.f to 86.f
8049d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Max 8192 ulps of error
8050d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8051d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8052d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8053d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_exp(float4 v);
8054d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8055d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8056d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8057d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8058d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate exp10
8059d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * valid for inputs -37.f to 37.f
8060d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Max 8192 ulps of error
8061d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8062d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8063d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8064d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_exp10(float v);
8065d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8066d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8067d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8068d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8069d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate exp10
8070d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * valid for inputs -37.f to 37.f
8071d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Max 8192 ulps of error
8072d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8073d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8074d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8075d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_exp10(float2 v);
8076d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8077d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8078d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8079d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8080d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate exp10
8081d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * valid for inputs -37.f to 37.f
8082d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Max 8192 ulps of error
8083d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8084d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8085d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8086d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_exp10(float3 v);
8087d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8088d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8089d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8090d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8091d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate exp10
8092d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * valid for inputs -37.f to 37.f
8093d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Max 8192 ulps of error
8094d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8095d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8096d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8097d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_exp10(float4 v);
8098d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8099d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8100d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8101d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8102d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate exp2
8103d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * valid for inputs -125.f to 125.f
8104d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Max 8192 ulps of error
8105d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8106d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8107d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8108d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_exp2(float v);
8109d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8110d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8111d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8112d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8113d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate exp2
8114d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * valid for inputs -125.f to 125.f
8115d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Max 8192 ulps of error
8116d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8117d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8118d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8119d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_exp2(float2 v);
8120d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8121d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8122d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8123d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8124d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate exp2
8125d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * valid for inputs -125.f to 125.f
8126d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Max 8192 ulps of error
8127d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8128d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8129d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8130d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_exp2(float3 v);
8131d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8132d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8133d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8134d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8135d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate exp2
8136d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * valid for inputs -125.f to 125.f
8137d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Max 8192 ulps of error
8138d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8139d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8140d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8141d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_exp2(float4 v);
8142d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8143d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8144d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8145d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8146d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return (e ^ value) - 1.
8147d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8148d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8149d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8150d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_expm1(float);
8151d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8152d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8153d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8154d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8155d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return (e ^ value) - 1.
8156d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8157d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8158d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8159d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_expm1(float2);
8160d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8161d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8162d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8163d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8164d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return (e ^ value) - 1.
8165d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8166d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8167d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8168d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_expm1(float3);
8169d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8170d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8171d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8172d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8173d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return (e ^ value) - 1.
8174d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8175d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8176d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8177d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_expm1(float4);
8178d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8179d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8180d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8181d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8182d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return native_sqrt(x*x + y*y)
8183d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8184d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8185d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8186d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_hypot(float x, float y);
8187d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8188d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8189d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8190d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8191d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return native_sqrt(x*x + y*y)
8192d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8193d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8194d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8195d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_hypot(float2 x, float2 y);
8196d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8197d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8198d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8199d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8200d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return native_sqrt(x*x + y*y)
8201d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8202d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8203d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8204d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_hypot(float3 x, float3 y);
8205d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8206d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8207d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8208d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8209d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return native_sqrt(x*x + y*y)
8210d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8211d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8212d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8213d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_hypot(float4 x, float4 y);
8214d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8215d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8216d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8217d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8218d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the approximate length of a vector.
8219d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8220d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8221d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8222d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_length(float v);
8223d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8224d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8225d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8226d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8227d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the approximate length of a vector.
8228d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8229d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8230d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8231d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_length(float2 v);
8232d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8233d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8234d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8235d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8236d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the approximate length of a vector.
8237d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8238d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8239d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8240d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_length(float3 v);
8241d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8242d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8243d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8244d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8245d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the approximate length of a vector.
8246d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8247d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8248d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8249d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_length(float4 v);
8250d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8251d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8252963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18))
825329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8254d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate log
825532c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values very close to zero.
8256d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8257d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8258d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8259d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_log(float v);
8260d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8261d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8262d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8263d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8264d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate log
826532c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values very close to zero.
8266d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8267d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8268d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8269d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_log(float2 v);
8270d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8271d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8272d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8273d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8274d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate log
827532c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values very close to zero.
8276d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8277d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8278d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8279d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_log(float3 v);
8280d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8281d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8282d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8283d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8284d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate log
828532c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values very close to zero.
8286d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8287d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8288d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8289d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_log(float4 v);
8290d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8291d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8292d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8293d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8294d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate log10
829532c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values very close to zero.
8296d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8297d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8298d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8299d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_log10(float v);
8300d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8301d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8302d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8303d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8304d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate log10
830532c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values very close to zero.
8306d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8307d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8308d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8309d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_log10(float2 v);
8310d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8311d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8312d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8313d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8314d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate log10
831532c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values very close to zero.
8316d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8317d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8318d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8319d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_log10(float3 v);
8320d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8321d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8322d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8323d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8324d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate log10
832532c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values very close to zero.
8326d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8327d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8328d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8329d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_log10(float4 v);
8330d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8331d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8332d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8333d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8334d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the natural logarithm of (v + 1.0f)
8335d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8336d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8337d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8338d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_log1p(float);
8339d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8340d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8341d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8342d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8343d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the natural logarithm of (v + 1.0f)
8344d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8345d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8346d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8347d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_log1p(float2);
8348d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8349d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8350d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8351d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8352d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the natural logarithm of (v + 1.0f)
8353d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8354d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8355d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8356d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_log1p(float3);
8357d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8358d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8359d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8360d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8361d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the natural logarithm of (v + 1.0f)
8362d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8363d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8364d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8365d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_log1p(float4);
8366d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8367d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8368d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8369d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8370d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate log2
837132c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values very close to zero.
8372d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8373d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8374d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8375d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_log2(float v);
8376d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8377d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8378d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8379d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8380d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate log2
838132c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values very close to zero.
8382d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8383d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8384d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8385d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_log2(float2 v);
8386d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8387d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8388d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8389d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8390d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate log2
839132c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values very close to zero.
8392d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8393d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8394d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8395d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_log2(float3 v);
8396d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8397d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8398d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8399d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8400d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate log2
840132c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values very close to zero.
8402d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8403d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8404d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8405d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_log2(float4 v);
8406d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8407d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8408d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8409d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8410d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Normalize a vector.
8411d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8412d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8413d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8414d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_normalize(float v);
8415d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8416d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8417d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8418d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8419d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Normalize a vector.
8420d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8421d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8422d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8423d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_normalize(float2 v);
8424d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8425d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8426d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8427d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8428d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Normalize a vector.
8429d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8430d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8431d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8432d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_normalize(float3 v);
8433d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8434d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8435d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8436d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8437d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Normalize a vector.
8438d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8439d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8440d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8441d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_normalize(float4 v);
8442d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8443d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8444d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8445d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8446d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate v ^ y
8447d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * v must be between 0.f and 256.f
8448d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * y must be between -15.f and 15.f
844932c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values of v very close to zero.
8450d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8451d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8452d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8453d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_powr(float v, float y);
8454d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8455d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8456d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8457d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8458d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate v ^ y
8459d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * v must be between 0.f and 256.f
8460d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * y must be between -15.f and 15.f
846132c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values of v very close to zero.
8462d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8463d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8464d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8465d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_powr(float2 v, float2 y);
8466d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8467d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8468d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8469d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8470d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate v ^ y
8471d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * v must be between 0.f and 256.f
8472d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * y must be between -15.f and 15.f
847332c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values of v very close to zero.
8474d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8475d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 18 and newer.
8476d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8477d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_powr(float3 v, float3 y);
8478d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8479d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8480d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 18))
8481d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8482d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Fast approximate v ^ y
8483d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * v must be between 0.f and 256.f
8484d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * y must be between -15.f and 15.f
848532c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * It is not accurate for values of v very close to zero.
848629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8487963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 18 and newer.
848829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8489d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_powr(float4 v, float4 y);
849029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
849129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8492d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
849329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8494d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the approximate reciprocal of a value.
849529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8496d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
849729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8498d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_recip(float v);
849929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
850029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8501d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
850229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8503d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the approximate reciprocal of a value.
850429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8505d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
850629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8507d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_recip(float2 v);
850829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
850929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8510d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
851129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8512d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the approximate reciprocal of a value.
851329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8514d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
851529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8516d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_recip(float3 v);
851729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
851829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8519d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
852029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8521d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the approximate reciprocal of a value.
852229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8523d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
852429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8525d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_recip(float4 v);
852629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
852729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8528d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
852929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8530d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the Nth root of a value.
853129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8532d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
853329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8534d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_rootn(float v, int n);
853529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
853629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8537d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
853829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8539d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the Nth root of a value.
854029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8541d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
854229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8543d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_rootn(float2 v, int2 n);
854429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
854529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8546d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
854729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8548d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the Nth root of a value.
854929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8550d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
855129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8552d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_rootn(float3 v, int3 n);
855329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
855429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8555d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8556963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet/*
8557d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Compute the Nth root of a value.
855829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8559d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
856029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8561d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_rootn(float4 v, int4 n);
856229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
856329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8564d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
856529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8566d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return (1 / sqrt(value)).
856729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8568d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
856929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8570d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_rsqrt(float);
857129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
857229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8573d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
857429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8575d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return (1 / sqrt(value)).
857629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8577d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
857829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8579d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_rsqrt(float2);
858029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
858129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8582d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
858329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8584d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return (1 / sqrt(value)).
858529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8586d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
858729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8588d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_rsqrt(float3);
858929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
859029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8591d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
859229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8593d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return (1 / sqrt(value)).
859429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8595d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
859629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8597d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_rsqrt(float4);
859829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
859929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8600d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
860129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8602d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the sine of a value specified in radians.
860329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8604d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
860529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8606d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_sin(float);
860729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
860829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8609d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
861029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8611d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the sine of a value specified in radians.
861229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8613d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
861429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8615d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_sin(float2);
861629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
861729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8618d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
861929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8620d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the sine of a value specified in radians.
862129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8622d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
862329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8624d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_sin(float3);
862529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
862629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8627d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
862829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8629d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the sine of a value specified in radians.
863029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8631d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
863229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8633d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_sin(float4);
863429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
863529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8636d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
863729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8638d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the sine and cosine of a value.
863929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8640d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * @return sine
8641d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * @param v The incoming value in radians
8642d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * @param *cosptr cosptr[0] will be set to the cosine value.
8643d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8644d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
864529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8646d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((overloadable))native_sincos(float v, float* cosptr);
864729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
864829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8649d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
865029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8651d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the sine and cosine of a value.
865229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8653d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * @return sine
8654d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * @param v The incoming value in radians
8655d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * @param *cosptr cosptr[0] will be set to the cosine value.
8656d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8657d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
865829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8659d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((overloadable))native_sincos(float2 v, float2* cosptr);
866029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
866129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8662d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
866329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8664d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the sine and cosine of a value.
866529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8666d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * @return sine
8667d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * @param v The incoming value in radians
8668d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * @param *cosptr cosptr[0] will be set to the cosine value.
8669d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8670d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
867129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8672d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((overloadable))native_sincos(float3 v, float3* cosptr);
867329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
867429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8675d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
867629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8677d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the sine and cosine of a value.
867829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8679d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * @return sine
8680d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * @param v The incoming value in radians
8681d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * @param *cosptr cosptr[0] will be set to the cosine value.
8682d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8683d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
868429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8685d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((overloadable))native_sincos(float4 v, float4* cosptr);
868629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
868729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8688d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
868929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8690d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the hyperbolic sine of a value specified in radians.
869129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8692d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
869329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8694d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_sinh(float);
869529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
869629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8697d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
869829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8699d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the hyperbolic sine of a value specified in radians.
870029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8701d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
870229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8703d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_sinh(float2);
870429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
870529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8706d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
870729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8708d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the hyperbolic sine of a value specified in radians.
870929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8710d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
871129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8712d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_sinh(float3);
871329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
871429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8715d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
871629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8717d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the hyperbolic sine of a value specified in radians.
871829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8719d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
872029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8721d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_sinh(float4);
872229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
872329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8724d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
872529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8726d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the sin(v * PI).
872729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8728d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
872929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8730d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_sinpi(float);
873129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
873229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8733d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
873429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8735d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the sin(v * PI).
873629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8737d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
873829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8739d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_sinpi(float2);
874029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
874129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8742d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
874329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8744d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the sin(v * PI).
874529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8746d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
874729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8748d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_sinpi(float3);
8749d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8750d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8751d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8752d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8753d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the sin(v * PI).
8754d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8755d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8756d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8757d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_sinpi(float4);
8758d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8759d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8760d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8761d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8762d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the aproximate sqrt(v).
8763d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8764d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8765d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8766d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_sqrt(float);
8767d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8768d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8769d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8770d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8771d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the aproximate sqrt(v).
8772d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8773d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8774d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8775d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_sqrt(float2);
8776d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8777d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8778d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8779d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8780d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the aproximate sqrt(v).
8781d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8782d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8783d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8784d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_sqrt(float3);
8785d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8786d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8787d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8788d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8789d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the aproximate sqrt(v).
8790d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8791d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8792d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8793d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_sqrt(float4);
8794d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8795d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8796d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8797d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8798d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the tangent of a value.
8799d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8800d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8801d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8802d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_tan(float);
8803d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8804d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8805d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8806d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8807d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the tangent of a value.
8808d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8809d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8810d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8811d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_tan(float2);
8812d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8813d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8814d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8815d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8816d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the tangent of a value.
8817d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8818d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8819d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8820d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_tan(float3);
8821d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8822d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8823d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8824d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8825d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the tangent of a value.
8826d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8827d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8828d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8829d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_tan(float4);
8830d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8831d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8832d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8833d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8834d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the hyperbolic tangent of a value.
8835d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8836d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8837d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8838d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_tanh(float);
8839d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8840d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8841d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8842d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8843d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the hyperbolic tangent of a value.
8844d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8845d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8846d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8847d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_tanh(float2);
8848d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8849d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8850d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8851d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8852d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the hyperbolic tangent of a value.
8853d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8854d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8855d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8856d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_tanh(float3);
8857d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8858d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8859d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8860d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8861d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return the hyperbolic tangent of a value.
8862d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8863d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8864d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8865d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_tanh(float4);
8866d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8867d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8868d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8869d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8870d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return tan(v * PI)
8871d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8872d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8873d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8874d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float __attribute__((const, overloadable))native_tanpi(float);
8875d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8876d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8877d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8878d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8879d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return tan(v * PI)
8880d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8881d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8882d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8883d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float2 __attribute__((const, overloadable))native_tanpi(float2);
8884d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8885d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8886d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8887d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8888d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return tan(v * PI)
8889d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8890d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8891d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8892d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float3 __attribute__((const, overloadable))native_tanpi(float3);
8893d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#endif
8894d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams
8895d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
8896d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams/*
8897d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Return tan(v * PI)
8898d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams *
8899d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams * Supported by API versions 21 and newer.
8900d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Sams */
8901d2d7c18c6ec3752ea19ca44157198f4a85d72464Jason Samsextern float4 __attribute__((const, overloadable))native_tanpi(float4);
890229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
890329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8904963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
890529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8906963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the next floating point number from x towards y.
890729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8908963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
890929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8910963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))nextafter(float x, float y);
891129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
891229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8913963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
891429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8915963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the next floating point number from x towards y.
891629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8917963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
891829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8919963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))nextafter(float2 x, float2 y);
892029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
892129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
8922963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
892329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8924963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the next floating point number from x towards y.
892529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
8926963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
892729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8928963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))nextafter(float3 x, float3 y);
892929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
893029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
893129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
893229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8933963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the next floating point number from x towards y.
893429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
893529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
893629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8937963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))nextafter(float4 x, float4 y);
893829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
893929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
894029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
894129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8942963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Normalize a vector.
894329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
894429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
894529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8946963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))normalize(float v);
894729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
894829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
894929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
895029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8951963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Normalize a vector.
895229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
895329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
895429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8955963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))normalize(float2 v);
895629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
895729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
895829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
895929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8960963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Normalize a vector.
896129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
896229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
896329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8964963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))normalize(float3 v);
896529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
896629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
896729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
896829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8969963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Normalize a vector.
897029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
897129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
897229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8973963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))normalize(float4 v);
897429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
897529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
897629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
897729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8978963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return x ^ y.
897929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
898029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
898129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8982963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))pow(float x, float y);
898329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
898429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
898529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
898629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8987963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return x ^ y.
898829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
898929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
899029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
8991963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))pow(float2 x, float2 y);
899229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
899329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
899429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
899529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
8996963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return x ^ y.
899729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
899829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
899929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9000963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))pow(float3 x, float3 y);
900129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
900229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
900329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
900429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9005963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return x ^ y.
900629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
900729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
900829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9009963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))pow(float4 x, float4 y);
901029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
901129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
901229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
901329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9014963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return x ^ y.
901529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
901629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
901729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9018963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))pown(float x, int y);
901929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
902029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
902129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
902229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9023963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return x ^ y.
902429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
902529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
902629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9027963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))pown(float2 x, int2 y);
902829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
902929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
903029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
903129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9032963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return x ^ y.
903329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
903429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
903529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9036963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))pown(float3 x, int3 y);
903729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
903829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
903929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
904029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9041963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return x ^ y.
904229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
904329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
904429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9045963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))pown(float4 x, int4 y);
904629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
904729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
904829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
904929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9050963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return x ^ y.
905146341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouillet * x must be >= 0
905229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
905329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
905429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9055963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))powr(float x, float y);
905629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
905729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
905829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
905929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9060963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return x ^ y.
906146341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouillet * x must be >= 0
906229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
906329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
906429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9065963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))powr(float2 x, float2 y);
906629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
906729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
906829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
906929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9070963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return x ^ y.
907146341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouillet * x must be >= 0
907229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
907329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
907429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9075963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))powr(float3 x, float3 y);
907629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
907729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
907829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
907929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9080963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return x ^ y.
908146341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouillet * x must be >= 0
908229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
908329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
908429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9085963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))powr(float4 x, float4 y);
908629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
908729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
908829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
908929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9090963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Convert from degrees to radians.
909129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
909229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
909329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9094963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))radians(float value);
909529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
909629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
909729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
909829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9099963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Convert from degrees to radians.
910029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
910129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
910229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9103963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))radians(float2 value);
910429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
910529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
910629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
910729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9108963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Convert from degrees to radians.
910929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
911029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
911129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9112963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))radians(float3 value);
911329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
911429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
911529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
911629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9117963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Convert from degrees to radians.
911829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
911929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
912029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9121963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))radians(float4 value);
912229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
912329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
912429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
912529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
912646341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouillet * Return round x/y to the nearest integer then compute the remainder.
912729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
912829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
912929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9130963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))remainder(float x, float y);
913129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
913229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9133963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
91340ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet/*
913546341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouillet * Return round x/y to the nearest integer then compute the remainder.
91360ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet *
9137963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
91380ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet */
9139963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))remainder(float2 x, float2 y);
91400ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet#endif
91410ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet
9142963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
91430ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet/*
914446341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouillet * Return round x/y to the nearest integer then compute the remainder.
91450ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet *
9146963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
91470ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet */
9148963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))remainder(float3 x, float3 y);
91490ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet#endif
91500ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet
9151963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
91520ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet/*
915346341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouillet * Return round x/y to the nearest integer then compute the remainder.
91540ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet *
9155963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
91560ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet */
9157963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))remainder(float4 x, float4 y);
91580ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet#endif
91590ec1635641a2075c9d2349219632650401f88881Jean-Luc Brouillet
916029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
916129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
916232c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * Return the quotient and the remainder of b/c.  Only the sign and lowest three bits of the quotient are guaranteed to be accurate.
916329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
916429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
916529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
916646341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float __attribute__((overloadable))remquo(float b, float c, int* d);
916729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
916829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
916929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
917029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
917132c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * Return the quotient and the remainder of b/c.  Only the sign and lowest three bits of the quotient are guaranteed to be accurate.
917229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
917329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
917429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
917546341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float2 __attribute__((overloadable))remquo(float2 b, float2 c, int2* d);
917629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
917729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
917829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
917929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
918032c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * Return the quotient and the remainder of b/c.  Only the sign and lowest three bits of the quotient are guaranteed to be accurate.
918129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
918229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
918329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
918446341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float3 __attribute__((overloadable))remquo(float3 b, float3 c, int3* d);
918529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
918629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
918729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
918829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
918932c18186ad37029056f09b4041e62b09270ea0e6Jean-Luc Brouillet * Return the quotient and the remainder of b/c.  Only the sign and lowest three bits of the quotient are guaranteed to be accurate.
919029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
919129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
919229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
919346341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float4 __attribute__((overloadable))remquo(float4 b, float4 c, int4* d);
919429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
919529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
919629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
919729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9198963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Round to the nearest integral value.
919929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
920029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
920129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9202963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))rint(float);
920329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
920429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
920529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
920629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9207963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Round to the nearest integral value.
920829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
920929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
921029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9211963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))rint(float2);
921229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
921329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
921429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
921529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9216963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Round to the nearest integral value.
921729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
921829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
921929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9220963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))rint(float3);
922129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
922229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
922329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
922429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9225963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Round to the nearest integral value.
922629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
922729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
922829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9229963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))rint(float4);
923029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
923129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
923229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
923329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9234963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the Nth root of a value.
923529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
923629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
923729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9238963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))rootn(float v, int n);
923929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
924029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
924129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
924229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9243963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the Nth root of a value.
924429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
924529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
924629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9247963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))rootn(float2 v, int2 n);
924829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
924929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
925029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
925129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9252963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the Nth root of a value.
925329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
925429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
925529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9256963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))rootn(float3 v, int3 n);
925729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
925829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
925929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
926029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9261963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the Nth root of a value.
926229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
926329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
926429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9265963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))rootn(float4 v, int4 n);
926629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
926729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
926829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
926929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9270963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Round to the nearest integral value.  Half values are rounded away from zero.
927129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
927229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
927329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9274963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))round(float);
927529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
927629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
927729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
927829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9279963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Round to the nearest integral value.  Half values are rounded away from zero.
928029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
928129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
928229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9283963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))round(float2);
928429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
928529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
928629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
928729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9288963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Round to the nearest integral value.  Half values are rounded away from zero.
928929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
929029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
929129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9292963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))round(float3);
929329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
929429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
929529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
929629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9297963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Round to the nearest integral value.  Half values are rounded away from zero.
929829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
929929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
930029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9301963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))round(float4);
930229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
930329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
930429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
930529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9306963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (1 / sqrt(value)).
930729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
930829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
930929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9310963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))rsqrt(float);
931129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
931229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
931329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
931429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9315963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (1 / sqrt(value)).
931629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
931729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
931829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9319963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))rsqrt(float2);
932029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
932129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
932229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
932329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9324963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (1 / sqrt(value)).
932529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
932629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
932729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9328963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))rsqrt(float3);
932929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
933029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
933129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
933229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9333963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return (1 / sqrt(value)).
933429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
933529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
933629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9337963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))rsqrt(float4);
933829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
933929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
934029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
934129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9342963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sign of a value.
9343963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
9344963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < 0) return -1.f;
9345963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else if (v > 0) return 1.f;
9346963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else return 0.f;
934729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
934829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
934929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9350963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))sign(float v);
935129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
935229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
935329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 9))
935429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9355963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sign of a value.
9356963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
9357963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < 0) return -1.f;
9358963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else if (v > 0) return 1.f;
9359963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else return 0.f;
936029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
936129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams * Supported by API versions 9 and newer.
936229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9363963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))sign(float2 v);
936429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
936529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9366963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
936729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9368963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sign of a value.
936929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9370963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < 0) return -1.f;
9371963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else if (v > 0) return 1.f;
9372963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else return 0.f;
9373963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
9374963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
937529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9376963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))sign(float3 v);
937729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
937829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9379963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
938029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9381963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sign of a value.
938229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9383963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < 0) return -1.f;
9384963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else if (v > 0) return 1.f;
9385963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else return 0.f;
9386963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
9387963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
938829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9389963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))sign(float4 v);
939029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
939129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9392963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
939329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9394963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sine of a value specified in radians.
939529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9396963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
939729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9398963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))sin(float);
939929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
940029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9401963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
940229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9403963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sine of a value specified in radians.
940429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9405963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
940629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9407963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))sin(float2);
940829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
940929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9410963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
941129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9412963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sine of a value specified in radians.
941329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9414963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
941529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9416963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))sin(float3);
941729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
941829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9419963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
942029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9421963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sine of a value specified in radians.
942229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9423963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
942429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9425963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))sin(float4);
942629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
942729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9428963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
942929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9430963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sine and cosine of a value.
943129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9432963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @return sine
9433963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param v The incoming value in radians
9434963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param *cosptr cosptr[0] will be set to the cosine value.
9435963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
9436963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
943729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
943846341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float __attribute__((overloadable))sincos(float v, float* cosptr);
943929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
944029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9441963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
944229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9443963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sine and cosine of a value.
944429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9445963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @return sine
9446963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param v The incoming value in radians
9447963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param *cosptr cosptr[0] will be set to the cosine value.
9448963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
9449963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
945029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
945146341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float2 __attribute__((overloadable))sincos(float2 v, float2* cosptr);
945229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
945329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9454963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
945529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9456963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sine and cosine of a value.
945729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9458963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @return sine
9459963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param v The incoming value in radians
9460963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param *cosptr cosptr[0] will be set to the cosine value.
9461963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
9462963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
946329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
946446341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float3 __attribute__((overloadable))sincos(float3 v, float3* cosptr);
946529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
946629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9467963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
946829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9469963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sine and cosine of a value.
947029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9471963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @return sine
9472963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param v The incoming value in radians
9473963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * @param *cosptr cosptr[0] will be set to the cosine value.
9474963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet *
9475963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
947629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
947746341434b4a766d9dee33a93469564a1de8b0793Jean-Luc Brouilletextern float4 __attribute__((overloadable))sincos(float4 v, float4* cosptr);
947829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
947929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9480963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
948129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9482963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the hyperbolic sine of a value specified in radians.
948329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9484963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
948529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9486963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))sinh(float);
948729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
948829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9489963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
949029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9491963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the hyperbolic sine of a value specified in radians.
949229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9493963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
949429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9495963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))sinh(float2);
949629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
949729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9498963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
949929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9500963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the hyperbolic sine of a value specified in radians.
950129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9502963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
950329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9504963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))sinh(float3);
950529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
950629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9507963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
950829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9509963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the hyperbolic sine of a value specified in radians.
951029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9511963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
951229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9513963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))sinh(float4);
951429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
951529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9516963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
951729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9518963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sin(v * PI).
951929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9520963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
952129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9522963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))sinpi(float);
952329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
952429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9525963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
952629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9527963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sin(v * PI).
952829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9529963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
953029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9531963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))sinpi(float2);
953229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
953329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9534963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
953529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9536963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sin(v * PI).
953729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9538963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
953929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9540963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))sinpi(float3);
954129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
954229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9543963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
954429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9545963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the sin(v * PI).
954629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9547963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
954829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9549963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))sinpi(float4);
955029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
955129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9552963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
955329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9554963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the square root of a value.
955529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9556963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
955729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9558963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))sqrt(float);
955929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
956029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9561963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
956229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9563963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the square root of a value.
956429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9565963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
956629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9567963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))sqrt(float2);
956829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
956929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9570963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
957129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9572963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the square root of a value.
957329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9574963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
957529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9576963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))sqrt(float3);
957729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
957829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9579963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
958029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9581963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the square root of a value.
958229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9583963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
958429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9585963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))sqrt(float4);
958629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
958729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9588963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
958929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9590963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < edge)
9591963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 0.f;
9592963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else
9593963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 1.f;
959429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9595963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
959629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9597963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))step(float edge, float v);
959829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
959929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9600963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
960129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9602963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < edge)
9603963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 0.f;
9604963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else
9605963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 1.f;
960629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9607963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
960829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9609963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))step(float2 edge, float2 v);
961029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
961129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9612963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
961329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9614963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < edge)
9615963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 0.f;
9616963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else
9617963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 1.f;
961829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9619963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
962029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9621963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))step(float3 edge, float3 v);
962229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
962329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9624963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
9625963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet/*
9626963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < edge)
9627963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 0.f;
9628963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else
9629963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 1.f;
963029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9631963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
963229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9633963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))step(float4 edge, float4 v);
963429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
963529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9636963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
963729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9638963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < edge)
9639963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 0.f;
9640963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else
9641963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 1.f;
964229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9643963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
964429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9645963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))step(float2 edge, float v);
964629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
964729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9648963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
964929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9650963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < edge)
9651963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 0.f;
9652963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else
9653963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 1.f;
965429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9655963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
965629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9657963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))step(float3 edge, float v);
965829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
965929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9660963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
966129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9662963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < edge)
9663963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 0.f;
9664963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else
9665963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 1.f;
966629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9667963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
966829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9669963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))step(float4 edge, float v);
967029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
967129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9672aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
967329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9674963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < edge)
9675963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 0.f;
9676963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else
9677963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 1.f;
967829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9679aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
968029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9681963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))step(float edge, float2 v);
968229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
968329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9684aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
968529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9686963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < edge)
9687963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 0.f;
9688963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else
9689963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 1.f;
969029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9691aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
969229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9693963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))step(float edge, float3 v);
969429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
969529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9696aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams#if (defined(RS_VERSION) && (RS_VERSION >= 21))
969729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9698963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * if (v < edge)
9699963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 0.f;
9700963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * else
9701963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * return 1.f;
970229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9703aa456939abefb51c59e2c7496038fe4360dfe43eJason Sams * Supported by API versions 21 and newer.
970429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9705963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))step(float edge, float4 v);
970629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
970729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9708963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
970929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9710963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the tangent of a value.
971129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9712963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
971329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9714963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))tan(float);
971529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
971629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9717963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
971829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9719963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the tangent of a value.
972029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9721963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
972229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9723963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))tan(float2);
972429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
972529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9726963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
972729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9728963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the tangent of a value.
972929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9730963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
973129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9732963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))tan(float3);
973329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
973429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9735963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
973629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9737963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the tangent of a value.
973829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9739963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
974029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9741963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))tan(float4);
974229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
974329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9744963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
974529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9746963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the hyperbolic tangent of a value.
974729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9748963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
974929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9750963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))tanh(float);
975129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
975229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9753963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
975429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9755963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the hyperbolic tangent of a value.
975629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9757963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
975829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9759963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))tanh(float2);
976029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
976129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9762963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
976329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9764963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the hyperbolic tangent of a value.
976529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9766963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
976729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9768963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))tanh(float3);
976929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
977029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9771963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
977229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9773963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return the hyperbolic tangent of a value.
977429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9775963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
977629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9777963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))tanh(float4);
977829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
977929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9780963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
978129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9782963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return tan(v * PI)
978329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9784963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
978529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9786963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))tanpi(float);
978729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
978829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9789963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
979029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9791963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return tan(v * PI)
979229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9793963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
979429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9795963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))tanpi(float2);
979629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
979729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9798963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
979929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9800963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return tan(v * PI)
980129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9802963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
980329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9804963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))tanpi(float3);
980529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
980629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9807963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
980829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9809963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Return tan(v * PI)
981029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9811963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
981229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9813963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))tanpi(float4);
981429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
981529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9816963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
981729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9818963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the gamma function of a value.
981929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9820963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
982129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9822963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))tgamma(float);
982329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
982429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9825963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
982629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9827963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the gamma function of a value.
982829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9829963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
983029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9831963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))tgamma(float2);
983229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
983329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9834963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
983529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9836963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the gamma function of a value.
983729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9838963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
983929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9840963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))tgamma(float3);
984129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
984229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9843963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
984429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9845963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Compute the gamma function of a value.
984629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9847963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
984829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9849963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))tgamma(float4);
985029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
985129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9852963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
985329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9854963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * ound to integral using truncation.
985529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9856963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
985729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9858963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float __attribute__((const, overloadable))trunc(float);
985929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
986029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9861963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
986229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9863963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * ound to integral using truncation.
986429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9865963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
986629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9867963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float2 __attribute__((const, overloadable))trunc(float2);
986829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
986929087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9870963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
987129087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9872963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * ound to integral using truncation.
987329087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9874963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
987529087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9876963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float3 __attribute__((const, overloadable))trunc(float3);
987729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
987829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
9879963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 9))
988029087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams/*
9881963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * ound to integral using truncation.
988229087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams *
9883963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouillet * Supported by API versions 9 and newer.
988429087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams */
9885963c367450cd54403f4e54064da63c35aa7e0178Jean-Luc Brouilletextern float4 __attribute__((const, overloadable))trunc(float4);
988629087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif
988729087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams
988829087fa1e022a58ff3e59219914ba95f1ad228c5Jason Sams#endif // __rs_core_math_rsh__
9889