1044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams/* 2291330fbaf7486a1cea33de7dd26c18e57c71391Stephen Hines * Copyright (C) 2016 The Android Open Source Project 39df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 4044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * you may not use this file except in compliance with the License. 6044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * You may obtain a copy of the License at 709aeb8ac1b0b976c2de40dd00da0c6841e4e882aJason Sams * 8044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 99df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams * 10044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * Unless required by applicable law or agreed to in writing, software 11044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * See the License for the specific language governing permissions and 14044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams * limitations under the License. 159df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 169df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams 174a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet// Don't edit this file! It is auto-generated by frameworks/rs/api/generate.sh. 1822fa371bf64b8aae786acfe5d711af21afb13a93Jason Sams 19c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet/* 2020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * rs_math.rsh: Mathematical Constants and Functions 21c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet * 226386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * The mathematical functions below can be applied to scalars and vectors. When applied 236386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * to vectors, the returned value is a vector of the function applied to each entry of the input. 24be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 25be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For example: 26be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * float3 a, b; 27be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * // The following call sets 28be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * // a.x to sin(b.x), 29be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * // a.y to sin(b.y), and 30be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * // a.z to sin(b.z). 31be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * a = sin(b); 32be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 33be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 346386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * See Vector Math Functions for functions like distance() and length() that interpret 356386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * instead the input as a single vector in n-dimensional space. 36be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 376386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * The precision of the mathematical operations on 32 bit floats is affected by the pragmas 386386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * rs_fp_relaxed and rs_fp_full. Under rs_fp_relaxed, subnormal values may be flushed to zero and 396386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * rounding may be done towards zero. In comparison, rs_fp_full requires correct handling of 406386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * subnormal values, i.e. smaller than 1.17549435e-38f. rs_fp_rull also requires round to nearest 416386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * with ties to even. 42be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 436386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * Different precision/speed tradeoffs can be achieved by using variants of the common math 446386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * functions. Functions with a name starting with 456386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * - native_: May have custom hardware implementations with weaker precision. Additionally, 466386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * subnormal values may be flushed to zero, rounding towards zero may be used, and NaN and 476386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * infinity input may not be handled correctly. 486386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * - half_: May perform internal computations using 16 bit floats. Additionally, subnormal 496386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * values may be flushed to zero, and rounding towards zero may be used. 50be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 51be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 524a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet 53be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#ifndef RENDERSCRIPT_RS_MATH_RSH 54be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define RENDERSCRIPT_RS_MATH_RSH 55be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 56be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 57be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * M_1_PI: 1 / pi, as a 32 bit float 58be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 59be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The inverse of pi, as a 32 bit float. 60be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 61be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_1_PI 0.318309886183790671537767526745028724f 62be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 63be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 64be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * M_2_PI: 2 / pi, as a 32 bit float 65be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 66be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2 divided by pi, as a 32 bit float. 67be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 68be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_2_PI 0.636619772367581343075535053490057448f 69be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 70be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 7120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * M_2_PIl: 2 / pi, as a 32 bit float 72be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 7320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * DEPRECATED. Do not use. 7420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * 7520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * 2 divided by pi, as a 32 bit float. 76be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 77be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_2_PIl 0.636619772367581343075535053490057448f 78be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 79be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 80be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * M_2_SQRTPI: 2 / sqrt(pi), as a 32 bit float 81be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 82be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2 divided by the square root of pi, as a 32 bit float. 83be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 84be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_2_SQRTPI 1.128379167095512573896158903121545172f 85be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 86be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 87be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * M_E: e, as a 32 bit float 88be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 89be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The number e, the base of the natural logarithm, as a 32 bit float. 90be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 91be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_E 2.718281828459045235360287471352662498f 92be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 93be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 94be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * M_LN10: log_e(10), as a 32 bit float 95be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 96be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The natural logarithm of 10, as a 32 bit float. 97be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 98be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_LN10 2.302585092994045684017991454684364208f 99be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 100be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 101be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * M_LN2: log_e(2), as a 32 bit float 102be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 103be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The natural logarithm of 2, as a 32 bit float. 104be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 105be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_LN2 0.693147180559945309417232121458176568f 106be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 107be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 108be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * M_LOG10E: log_10(e), as a 32 bit float 109be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 110be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The logarithm base 10 of e, as a 32 bit float. 111be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 112be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_LOG10E 0.434294481903251827651128918916605082f 113be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 114be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 115be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * M_LOG2E: log_2(e), as a 32 bit float 116be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 117be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The logarithm base 2 of e, as a 32 bit float. 118be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 119be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_LOG2E 1.442695040888963407359924681001892137f 120be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 121be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 122be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * M_PI: pi, as a 32 bit float 123be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 124be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The constant pi, as a 32 bit float. 125be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 126be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_PI 3.141592653589793238462643383279502884f 127be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 128be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 129be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * M_PI_2: pi / 2, as a 32 bit float 130be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 131be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Pi divided by 2, as a 32 bit float. 132be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 133be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_PI_2 1.570796326794896619231321691639751442f 134be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 135be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 136be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * M_PI_4: pi / 4, as a 32 bit float 137be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 138be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Pi divided by 4, as a 32 bit float. 139be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 140be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_PI_4 0.785398163397448309615660845819875721f 141be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 142be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 143be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * M_SQRT1_2: 1 / sqrt(2), as a 32 bit float 144be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 145be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The inverse of the square root of 2, as a 32 bit float. 146be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 147be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_SQRT1_2 0.707106781186547524400844362104849039f 148be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 149be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 150be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * M_SQRT2: sqrt(2), as a 32 bit float 151be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 152be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The square root of 2, as a 32 bit float. 153be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 154be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#define M_SQRT2 1.414213562373095048801688724209698079f 155be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 156be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 157be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * abs: Absolute value of an integer 158be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 159be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the absolute value of an integer. 160be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 161be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For floats, use fabs(). 162be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 163be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar __attribute__((const, overloadable)) 164be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet abs(char v); 165be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 166be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable)) 167be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet abs(char2 v); 168be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 169be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable)) 170be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet abs(char3 v); 171be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 172be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable)) 173be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet abs(char4 v); 174be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 175be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort __attribute__((const, overloadable)) 176be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet abs(short v); 177be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 178be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable)) 179be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet abs(short2 v); 180be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 181be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable)) 182be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet abs(short3 v); 183be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 184be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable)) 185be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet abs(short4 v); 186be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 187be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint __attribute__((const, overloadable)) 188be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet abs(int v); 189be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 190be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable)) 191be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet abs(int2 v); 192be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 193be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable)) 194be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet abs(int3 v); 195be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 196be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable)) 197be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet abs(int4 v); 198be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 199be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 200be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * acos: Inverse cosine 201be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 202be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the inverse cosine, in radians. 203be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 204be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_acos(). 205be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 206be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 207be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet acos(float v); 208be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 209be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 210be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet acos(float2 v); 211be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 212be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 213be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet acos(float3 v); 214be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 215be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 216be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet acos(float4 v); 217be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 218d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 219586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 220586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar acos(half v); 221586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 222586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 223d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 224586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 225586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar acos(half2 v); 226586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 227586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 228d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 229586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 230586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar acos(half3 v); 231586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 232586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 233d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 234586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 235586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar acos(half4 v); 236586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 237586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 238be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 239be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * acosh: Inverse hyperbolic cosine 240be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 241be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the inverse hyperbolic cosine, in radians. 242be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 243be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_acosh(). 244be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 245be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 246be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet acosh(float v); 247be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 248be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 249be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet acosh(float2 v); 250be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 251be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 252be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet acosh(float3 v); 253be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 254be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 255be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet acosh(float4 v); 256be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 257d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 258586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 259586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar acosh(half v); 260586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 261586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 262d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 263586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 264586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar acosh(half2 v); 265586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 266586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 267d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 268586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 269586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar acosh(half3 v); 270586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 271586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 272d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 273586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 274586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar acosh(half4 v); 275586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 276586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 277be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 278be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * acospi: Inverse cosine divided by pi 279be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 280be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the inverse cosine in radians, divided by pi. 281be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 282be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get an inverse cosine measured in degrees, use acospi(a) * 180.f. 283be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 284be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_acospi(). 285be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 286be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 287be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet acospi(float v); 288be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 289be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 290be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet acospi(float2 v); 291be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 292be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 293be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet acospi(float3 v); 294be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 295be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 296be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet acospi(float4 v); 297be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 298d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 299586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 300586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar acospi(half v); 301586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 302586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 303d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 304586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 305586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar acospi(half2 v); 306586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 307586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 308d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 309586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 310586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar acospi(half3 v); 311586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 312586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 313d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 314586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 315586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar acospi(half4 v); 316586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 317586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 318be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 319be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * asin: Inverse sine 320be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 321be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the inverse sine, in radians. 322be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 323be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_asin(). 324be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 325be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 326be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet asin(float v); 327be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 328be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 329be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet asin(float2 v); 330be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 331be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 332be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet asin(float3 v); 333be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 334be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 335be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet asin(float4 v); 336be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 337d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 338586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 339586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar asin(half v); 340586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 341586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 342d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 343586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 344586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar asin(half2 v); 345586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 346586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 347d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 348586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 349586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar asin(half3 v); 350586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 351586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 352d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 353586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 354586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar asin(half4 v); 355586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 356586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 357be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 358be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * asinh: Inverse hyperbolic sine 359be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 360be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the inverse hyperbolic sine, in radians. 361be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 362be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_asinh(). 363be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 364be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 365be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet asinh(float v); 366be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 367be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 368be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet asinh(float2 v); 369be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 370be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 371be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet asinh(float3 v); 372be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 373be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 374be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet asinh(float4 v); 375be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 376d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 377586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 378586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar asinh(half v); 379586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 380586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 381d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 382586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 383586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar asinh(half2 v); 384586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 385586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 386d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 387586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 388586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar asinh(half3 v); 389586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 390586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 391d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 392586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 393586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar asinh(half4 v); 394586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 395586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 396be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 397be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * asinpi: Inverse sine divided by pi 398be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 399be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the inverse sine in radians, divided by pi. 400be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 401be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get an inverse sine measured in degrees, use asinpi(a) * 180.f. 402be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 403be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_asinpi(). 404be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 405be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 406be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet asinpi(float v); 407be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 408be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 409be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet asinpi(float2 v); 410be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 411be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 412be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet asinpi(float3 v); 413be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 414be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 415be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet asinpi(float4 v); 416be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 417d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 418586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 419586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar asinpi(half v); 420586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 421586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 422d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 423586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 424586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar asinpi(half2 v); 425586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 426586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 427d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 428586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 429586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar asinpi(half3 v); 430586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 431586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 432d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 433586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 434586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar asinpi(half4 v); 435586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 436586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 437be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 438be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * atan: Inverse tangent 439be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 440be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the inverse tangent, in radians. 441be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 442be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_atan(). 443be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 444be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 445be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atan(float v); 446be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 447be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 448be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atan(float2 v); 449be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 450be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 451be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atan(float3 v); 452be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 453be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 454be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atan(float4 v); 455be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 456d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 457586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 458586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atan(half v); 459586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 460586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 461d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 462586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 463586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atan(half2 v); 464586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 465586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 466d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 467586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 468586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atan(half3 v); 469586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 470586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 471d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 472586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 473586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atan(half4 v); 474586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 475586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 476be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 477be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * atan2: Inverse tangent of a ratio 478be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 479be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the inverse tangent of (numerator / denominator), in radians. 480be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 481be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_atan2(). 482be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 483be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 4846386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * numerator: Numerator. 4856386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * denominator: Denominator. Can be 0. 486be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 487be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 488be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atan2(float numerator, float denominator); 489be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 490be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 491be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atan2(float2 numerator, float2 denominator); 492be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 493be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 494be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atan2(float3 numerator, float3 denominator); 495be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 496be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 497be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atan2(float4 numerator, float4 denominator); 498be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 499d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 500586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 501586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atan2(half numerator, half denominator); 502586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 503586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 504d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 505586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 506586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atan2(half2 numerator, half2 denominator); 507586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 508586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 509d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 510586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 511586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atan2(half3 numerator, half3 denominator); 512586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 513586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 514d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 515586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 516586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atan2(half4 numerator, half4 denominator); 517586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 518586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 519be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 520be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * atan2pi: Inverse tangent of a ratio, divided by pi 521be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 522be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the inverse tangent of (numerator / denominator), in radians, divided by pi. 523be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 524be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get an inverse tangent measured in degrees, use atan2pi(n, d) * 180.f. 525be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 526be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_atan2pi(). 527be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 528be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 5296386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * numerator: Numerator. 5306386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * denominator: Denominator. Can be 0. 531be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 532be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 533be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atan2pi(float numerator, float denominator); 534be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 535be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 536be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atan2pi(float2 numerator, float2 denominator); 537be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 538be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 539be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atan2pi(float3 numerator, float3 denominator); 540be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 541be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 542be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atan2pi(float4 numerator, float4 denominator); 543be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 544d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 545586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 546586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atan2pi(half numerator, half denominator); 547586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 548586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 549d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 550586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 551586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atan2pi(half2 numerator, half2 denominator); 552586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 553586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 554d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 555586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 556586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atan2pi(half3 numerator, half3 denominator); 557586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 558586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 559d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 560586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 561586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atan2pi(half4 numerator, half4 denominator); 562586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 563586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 564be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 565be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * atanh: Inverse hyperbolic tangent 566be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 567be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the inverse hyperbolic tangent, in radians. 568be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 569be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_atanh(). 570be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 571be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 572be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atanh(float v); 573be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 574be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 575be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atanh(float2 v); 576be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 577be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 578be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atanh(float3 v); 579be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 580be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 581be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atanh(float4 v); 582be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 583d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 584586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 585586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atanh(half v); 586586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 587586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 588d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 589586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 590586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atanh(half2 v); 591586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 592586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 593d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 594586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 595586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atanh(half3 v); 596586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 597586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 598d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 599586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 600586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atanh(half4 v); 601586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 602586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 603be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 604be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * atanpi: Inverse tangent divided by pi 605be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 606be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the inverse tangent in radians, divided by pi. 607be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 608be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get an inverse tangent measured in degrees, use atanpi(a) * 180.f. 609be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 610be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_atanpi(). 611be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 612be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 613be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atanpi(float v); 614be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 615be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 616be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atanpi(float2 v); 617be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 618be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 619be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atanpi(float3 v); 620be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 621be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 622be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet atanpi(float4 v); 623be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 624d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 625586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 626586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atanpi(half v); 627586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 628586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 629d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 630586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 631586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atanpi(half2 v); 632586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 633586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 634d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 635586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 636586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atanpi(half3 v); 637586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 638586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 639d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 640586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 641586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar atanpi(half4 v); 642586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 643586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 644be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 645be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * cbrt: Cube root 646be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 647be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the cube root. 648be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 649be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_cbrt(). 650be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 651be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 652be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cbrt(float v); 653be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 654be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 655be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cbrt(float2 v); 656be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 657be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 658be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cbrt(float3 v); 659be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 660be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 661be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cbrt(float4 v); 662be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 663d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 664586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 665586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cbrt(half v); 666586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 667586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 668d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 669586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 670586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cbrt(half2 v); 671586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 672586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 673d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 674586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 675586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cbrt(half3 v); 676586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 677586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 678d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 679586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 680586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cbrt(half4 v); 681586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 682586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 683be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 684be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * ceil: Smallest integer not less than a value 685be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 686be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the smallest integer not less than a value. 687be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 688be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For example, ceil(1.2f) returns 2.f, and ceil(-1.2f) returns -1.f. 689be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 690be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also floor(). 691be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 692be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 693be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ceil(float v); 694be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 695be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 696be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ceil(float2 v); 697be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 698be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 699be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ceil(float3 v); 700be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 701be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 702be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ceil(float4 v); 703be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 704d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 705586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 706586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar ceil(half v); 707586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 708586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 709d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 710586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 711586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar ceil(half2 v); 712586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 713586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 714d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 715586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 716586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar ceil(half3 v); 717586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 718586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 719d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 720586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 721586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar ceil(half4 v); 722586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 723586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 724be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 725be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * clamp: Restrain a value to a range 726be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 727be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Clamps a value to a specified high and low bound. clamp() returns min_value 728be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * if value < min_value, max_value if value > max_value, otherwise value. 729be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 730be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * There are two variants of clamp: one where the min and max are scalars applied 731be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * to all entries of the value, the other where the min and max are also vectors. 732be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 733be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * If min_value is greater than max_value, the results are undefined. 734be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 735be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 7364a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * value: Value to be clamped. 7374a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * min_value: Lower bound, a scalar or matching vector. 7384a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * max_value: High bound, must match the type of low. 739be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 740be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 741be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(float value, float min_value, float max_value); 742be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 743be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 744be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(float2 value, float2 min_value, float2 max_value); 745be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 746be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 747be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(float3 value, float3 min_value, float3 max_value); 748be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 749be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 750be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(float4 value, float4 min_value, float4 max_value); 751be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 752be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 753be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(float2 value, float min_value, float max_value); 754be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 755be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 756be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(float3 value, float min_value, float max_value); 757be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 758be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 759be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(float4 value, float min_value, float max_value); 760be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 761be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 762be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char __attribute__((const, overloadable)) 763be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(char value, char min_value, char max_value); 764be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 765be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 766be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 767be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable)) 768be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(char2 value, char2 min_value, char2 max_value); 769be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 770be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 771be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 772be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable)) 773be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(char3 value, char3 min_value, char3 max_value); 774be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 775be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 776be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 777be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable)) 778be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(char4 value, char4 min_value, char4 max_value); 779be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 780be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 781be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 782be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar __attribute__((const, overloadable)) 783be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uchar value, uchar min_value, uchar max_value); 784be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 785be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 786be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 787be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable)) 788be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uchar2 value, uchar2 min_value, uchar2 max_value); 789be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 790be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 791be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 792be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable)) 793be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uchar3 value, uchar3 min_value, uchar3 max_value); 794be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 795be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 796be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 797be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable)) 798be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uchar4 value, uchar4 min_value, uchar4 max_value); 799be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 800be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 801be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 802be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short __attribute__((const, overloadable)) 803be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(short value, short min_value, short max_value); 804be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 805be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 806be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 807be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable)) 808be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(short2 value, short2 min_value, short2 max_value); 809be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 810be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 811be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 812be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable)) 813be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(short3 value, short3 min_value, short3 max_value); 814be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 815be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 816be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 817be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable)) 818be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(short4 value, short4 min_value, short4 max_value); 819be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 820be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 821be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 822be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort __attribute__((const, overloadable)) 823be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ushort value, ushort min_value, ushort max_value); 824be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 825be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 826be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 827be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable)) 828be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ushort2 value, ushort2 min_value, ushort2 max_value); 829be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 830be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 831be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 832be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable)) 833be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ushort3 value, ushort3 min_value, ushort3 max_value); 834be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 835be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 836be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 837be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable)) 838be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ushort4 value, ushort4 min_value, ushort4 max_value); 839be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 840be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 841be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 842be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int __attribute__((const, overloadable)) 843be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(int value, int min_value, int max_value); 844be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 845be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 846be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 847be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable)) 848be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(int2 value, int2 min_value, int2 max_value); 849be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 850be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 851be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 852be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable)) 853be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(int3 value, int3 min_value, int3 max_value); 854be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 855be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 856be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 857be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable)) 858be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(int4 value, int4 min_value, int4 max_value); 859be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 860be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 861be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 862be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint __attribute__((const, overloadable)) 863be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uint value, uint min_value, uint max_value); 864be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 865be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 866be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 867be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable)) 868be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uint2 value, uint2 min_value, uint2 max_value); 869be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 870be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 871be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 872be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable)) 873be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uint3 value, uint3 min_value, uint3 max_value); 874be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 875be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 876be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 877be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable)) 878be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uint4 value, uint4 min_value, uint4 max_value); 879be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 880be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 881be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 882be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long __attribute__((const, overloadable)) 883be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(long value, long min_value, long max_value); 884be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 885be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 886be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 887be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable)) 888be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(long2 value, long2 min_value, long2 max_value); 889be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 890be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 891be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 892be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable)) 893be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(long3 value, long3 min_value, long3 max_value); 894be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 895be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 896be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 897be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable)) 898be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(long4 value, long4 min_value, long4 max_value); 899be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 900be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 901be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 902be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong __attribute__((const, overloadable)) 903be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ulong value, ulong min_value, ulong max_value); 904be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 905be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 906be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 907be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable)) 908be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ulong2 value, ulong2 min_value, ulong2 max_value); 909be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 910be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 911be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 912be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable)) 913be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ulong3 value, ulong3 min_value, ulong3 max_value); 914be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 915be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 916be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 917be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable)) 918be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ulong4 value, ulong4 min_value, ulong4 max_value); 919be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 920be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 921be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 922be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable)) 923be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(char2 value, char min_value, char max_value); 924be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 925be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 926be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 927be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable)) 928be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(char3 value, char min_value, char max_value); 929be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 930be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 931be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 932be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable)) 933be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(char4 value, char min_value, char max_value); 934be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 935be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 936be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 937be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable)) 938be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uchar2 value, uchar min_value, uchar max_value); 939be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 940be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 941be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 942be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable)) 943be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uchar3 value, uchar min_value, uchar max_value); 944be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 945be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 946be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 947be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable)) 948be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uchar4 value, uchar min_value, uchar max_value); 949be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 950be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 951be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 952be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable)) 953be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(short2 value, short min_value, short max_value); 954be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 955be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 956be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 957be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable)) 958be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(short3 value, short min_value, short max_value); 959be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 960be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 961be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 962be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable)) 963be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(short4 value, short min_value, short max_value); 964be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 965be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 966be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 967be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable)) 968be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ushort2 value, ushort min_value, ushort max_value); 969be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 970be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 971be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 972be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable)) 973be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ushort3 value, ushort min_value, ushort max_value); 974be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 975be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 976be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 977be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable)) 978be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ushort4 value, ushort min_value, ushort max_value); 979be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 980be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 981be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 982be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable)) 983be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(int2 value, int min_value, int max_value); 984be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 985be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 986be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 987be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable)) 988be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(int3 value, int min_value, int max_value); 989be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 990be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 991be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 992be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable)) 993be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(int4 value, int min_value, int max_value); 994be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 995be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 996be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 997be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable)) 998be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uint2 value, uint min_value, uint max_value); 999be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 1000be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1001be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 1002be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable)) 1003be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uint3 value, uint min_value, uint max_value); 1004be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 1005be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1006be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 1007be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable)) 1008be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(uint4 value, uint min_value, uint max_value); 1009be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 1010be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1011be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 1012be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable)) 1013be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(long2 value, long min_value, long max_value); 1014be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 1015be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1016be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 1017be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable)) 1018be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(long3 value, long min_value, long max_value); 1019be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 1020be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1021be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 1022be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable)) 1023be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(long4 value, long min_value, long max_value); 1024be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 1025be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1026be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 1027be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable)) 1028be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ulong2 value, ulong min_value, ulong max_value); 1029be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 1030be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1031be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 1032be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable)) 1033be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ulong3 value, ulong min_value, ulong max_value); 1034be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 1035be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1036be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 19)) 1037be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable)) 1038be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clamp(ulong4 value, ulong min_value, ulong max_value); 1039be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 1040be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1041d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1042586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1043586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar clamp(half value, half min_value, half max_value); 1044586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1045586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1046d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1047586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1048586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar clamp(half2 value, half2 min_value, half2 max_value); 1049586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1050586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1051d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1052586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1053586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar clamp(half3 value, half3 min_value, half3 max_value); 1054586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1055586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1056d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1057586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1058586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar clamp(half4 value, half4 min_value, half4 max_value); 1059586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1060586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1061d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1062586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1063586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar clamp(half2 value, half min_value, half max_value); 1064586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1065586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1066d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1067586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1068586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar clamp(half3 value, half min_value, half max_value); 1069586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1070586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1071d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1072586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1073586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar clamp(half4 value, half min_value, half max_value); 1074586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1075586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1076be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1077be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * clz: Number of leading 0 bits 1078be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1079be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the number of leading 0-bits in a value. 1080be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1081be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For example, clz((char)0x03) returns 6. 1082be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1083be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char __attribute__((const, overloadable)) 1084be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(char value); 1085be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1086be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable)) 1087be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(char2 value); 1088be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1089be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable)) 1090be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(char3 value); 1091be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1092be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable)) 1093be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(char4 value); 1094be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1095be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar __attribute__((const, overloadable)) 1096be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(uchar value); 1097be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1098be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable)) 1099be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(uchar2 value); 1100be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1101be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable)) 1102be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(uchar3 value); 1103be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1104be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable)) 1105be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(uchar4 value); 1106be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1107be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short __attribute__((const, overloadable)) 1108be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(short value); 1109be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1110be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable)) 1111be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(short2 value); 1112be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1113be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable)) 1114be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(short3 value); 1115be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1116be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable)) 1117be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(short4 value); 1118be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1119be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort __attribute__((const, overloadable)) 1120be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(ushort value); 1121be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1122be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable)) 1123be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(ushort2 value); 1124be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1125be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable)) 1126be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(ushort3 value); 1127be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1128be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable)) 1129be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(ushort4 value); 1130be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1131be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int __attribute__((const, overloadable)) 1132be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(int value); 1133be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1134be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable)) 1135be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(int2 value); 1136be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1137be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable)) 1138be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(int3 value); 1139be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1140be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable)) 1141be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(int4 value); 1142be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1143be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint __attribute__((const, overloadable)) 1144be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(uint value); 1145be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1146be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable)) 1147be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(uint2 value); 1148be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1149be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable)) 1150be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(uint3 value); 1151be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1152be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable)) 1153be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet clz(uint4 value); 1154be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1155be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1156be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * copysign: Copies the sign of a number to another 1157be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1158be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Copies the sign from sign_value to magnitude_value. 1159be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1160be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The value returned is either magnitude_value or -magnitude_value. 1161be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1162be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For example, copysign(4.0f, -2.7f) returns -4.0f and copysign(-4.0f, 2.7f) returns 4.0f. 1163be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1164be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1165be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet copysign(float magnitude_value, float sign_value); 1166be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1167be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1168be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet copysign(float2 magnitude_value, float2 sign_value); 1169be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1170be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1171be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet copysign(float3 magnitude_value, float3 sign_value); 1172be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1173be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1174be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet copysign(float4 magnitude_value, float4 sign_value); 1175be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1176d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1177f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1178f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar copysign(half magnitude_value, half sign_value); 1179f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar#endif 1180f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar 1181d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1182f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1183f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar copysign(half2 magnitude_value, half2 sign_value); 1184f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar#endif 1185f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar 1186d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1187f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1188f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar copysign(half3 magnitude_value, half3 sign_value); 1189f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar#endif 1190f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar 1191d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1192f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1193f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar copysign(half4 magnitude_value, half4 sign_value); 1194f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar#endif 1195f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar 1196be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1197be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * cos: Cosine 1198be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1199be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the cosine of an angle measured in radians. 1200be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1201be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_cos(). 1202be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1203be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1204be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cos(float v); 1205be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1206be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1207be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cos(float2 v); 1208be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1209be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1210be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cos(float3 v); 1211be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1212be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1213be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cos(float4 v); 1214be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1215d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1216586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1217586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cos(half v); 1218586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1219586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1220d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1221586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1222586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cos(half2 v); 1223586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1224586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1225d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1226586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1227586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cos(half3 v); 1228586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1229586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1230d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1231586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1232586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cos(half4 v); 1233586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1234586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1235be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1236be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * cosh: Hypebolic cosine 1237be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1238be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the hypebolic cosine of v, where v is measured in radians. 1239be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1240be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_cosh(). 1241be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1242be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1243be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cosh(float v); 1244be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1245be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1246be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cosh(float2 v); 1247be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1248be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1249be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cosh(float3 v); 1250be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1251be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1252be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cosh(float4 v); 1253be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1254d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1255586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1256586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cosh(half v); 1257586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1258586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1259d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1260586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1261586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cosh(half2 v); 1262586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1263586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1264d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1265586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1266586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cosh(half3 v); 1267586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1268586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1269d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1270586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1271586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cosh(half4 v); 1272586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1273586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1274be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1275be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * cospi: Cosine of a number multiplied by pi 1276be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1277be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the cosine of (v * pi), where (v * pi) is measured in radians. 1278be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1279be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get the cosine of a value measured in degrees, call cospi(v / 180.f). 1280be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1281be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_cospi(). 1282be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1283be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1284be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cospi(float v); 1285be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1286be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1287be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cospi(float2 v); 1288be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1289be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1290be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cospi(float3 v); 1291be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1292be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1293be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet cospi(float4 v); 1294be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1295d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1296586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1297586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cospi(half v); 1298586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1299586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1300d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1301586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1302586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cospi(half2 v); 1303586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1304586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1305d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1306586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1307586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cospi(half3 v); 1308586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1309586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1310d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1311586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1312586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar cospi(half4 v); 1313586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1314586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1315be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1316be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * degrees: Converts radians into degrees 1317be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1318be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Converts from radians to degrees. 1319be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1320be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1321be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet degrees(float v); 1322be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1323be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1324be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet degrees(float2 v); 1325be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1326be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1327be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet degrees(float3 v); 1328be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1329be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1330be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet degrees(float4 v); 1331be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1332d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1333586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1334586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar degrees(half v); 1335586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1336586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1337d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1338586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1339586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar degrees(half2 v); 1340586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1341586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1342d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1343586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1344586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar degrees(half3 v); 1345586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1346586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1347d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1348586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1349586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar degrees(half4 v); 1350586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1351586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1352be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1353be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * erf: Mathematical error function 1354be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1355be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the error function. 1356be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1357be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1358be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet erf(float v); 1359be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1360be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1361be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet erf(float2 v); 1362be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1363be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1364be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet erf(float3 v); 1365be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1366be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1367be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet erf(float4 v); 1368be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1369d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1370586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1371586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar erf(half v); 1372586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1373586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1374d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1375586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1376586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar erf(half2 v); 1377586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1378586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1379d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1380586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1381586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar erf(half3 v); 1382586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1383586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1384d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1385586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1386586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar erf(half4 v); 1387586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1388586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1389be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1390be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * erfc: Mathematical complementary error function 1391be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1392be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the complementary error function. 1393be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1394be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1395be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet erfc(float v); 1396be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1397be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1398be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet erfc(float2 v); 1399be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1400be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1401be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet erfc(float3 v); 1402be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1403be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1404be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet erfc(float4 v); 1405be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1406d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1407586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1408586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar erfc(half v); 1409586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1410586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1411d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1412586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1413586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar erfc(half2 v); 1414586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1415586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1416d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1417586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1418586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar erfc(half3 v); 1419586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1420586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1421d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1422586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1423586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar erfc(half4 v); 1424586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1425586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1426be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1427be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * exp: e raised to a number 1428be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1429be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns e raised to v, i.e. e ^ v. 1430be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1431be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_exp(). 1432be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1433be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1434be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet exp(float v); 1435be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1436be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1437be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet exp(float2 v); 1438be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1439be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1440be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet exp(float3 v); 1441be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1442be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1443be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet exp(float4 v); 1444be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1445d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1446586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1447586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar exp(half v); 1448586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1449586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1450d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1451586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1452586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar exp(half2 v); 1453586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1454586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1455d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1456586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1457586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar exp(half3 v); 1458586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1459586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1460d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1461586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1462586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar exp(half4 v); 1463586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1464586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1465be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1466be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * exp10: 10 raised to a number 1467be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1468be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns 10 raised to v, i.e. 10.f ^ v. 1469be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1470be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_exp10(). 1471be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1472be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1473be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet exp10(float v); 1474be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1475be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1476be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet exp10(float2 v); 1477be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1478be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1479be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet exp10(float3 v); 1480be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1481be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1482be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet exp10(float4 v); 1483be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1484d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1485586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1486586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar exp10(half v); 1487586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1488586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1489d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1490586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1491586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar exp10(half2 v); 1492586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1493586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1494d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1495586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1496586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar exp10(half3 v); 1497586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1498586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1499d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1500586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1501586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar exp10(half4 v); 1502586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1503586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1504be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1505be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * exp2: 2 raised to a number 1506be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1507be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns 2 raised to v, i.e. 2.f ^ v. 1508be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1509be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_exp2(). 1510be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1511be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1512be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet exp2(float v); 1513be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1514be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1515be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet exp2(float2 v); 1516be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1517be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1518be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet exp2(float3 v); 1519be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1520be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1521be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet exp2(float4 v); 1522be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1523d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1524586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1525586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar exp2(half v); 1526586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1527586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1528d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1529586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1530586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar exp2(half2 v); 1531586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1532586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1533d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1534586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1535586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar exp2(half3 v); 1536586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1537586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1538d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1539586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1540586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar exp2(half4 v); 1541586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1542586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1543be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1544be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * expm1: e raised to a number minus one 1545be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1546be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns e raised to v minus 1, i.e. (e ^ v) - 1. 1547be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1548be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_expm1(). 1549be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1550be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1551be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet expm1(float v); 1552be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1553be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1554be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet expm1(float2 v); 1555be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1556be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1557be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet expm1(float3 v); 1558be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1559be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1560be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet expm1(float4 v); 1561be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1562d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1563586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1564586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar expm1(half v); 1565586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1566586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1567d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1568586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1569586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar expm1(half2 v); 1570586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1571586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1572d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1573586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1574586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar expm1(half3 v); 1575586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1576586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1577d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1578586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1579586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar expm1(half4 v); 1580586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1581586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1582be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1583be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * fabs: Absolute value of a float 1584be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1585be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the absolute value of the float v. 1586be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1587be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For integers, use abs(). 1588be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1589be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1590be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fabs(float v); 1591be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1592be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1593be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fabs(float2 v); 1594be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1595be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1596be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fabs(float3 v); 1597be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1598be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1599be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fabs(float4 v); 1600be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1601d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1602586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1603586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fabs(half v); 1604586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1605586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1606d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1607586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1608586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fabs(half2 v); 1609586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1610586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1611d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1612586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1613586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fabs(half3 v); 1614586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1615586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1616d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1617586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1618586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fabs(half4 v); 1619586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1620586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1621be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1622be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * fdim: Positive difference between two values 1623be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1624be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the positive difference between two values. 1625be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1626be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * If a > b, returns (a - b) otherwise returns 0f. 1627be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1628be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1629be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fdim(float a, float b); 1630be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1631be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1632be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fdim(float2 a, float2 b); 1633be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1634be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1635be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fdim(float3 a, float3 b); 1636be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1637be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1638be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fdim(float4 a, float4 b); 1639be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1640d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1641586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1642586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fdim(half a, half b); 1643586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1644586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1645d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1646586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1647586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fdim(half2 a, half2 b); 1648586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1649586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1650d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1651586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1652586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fdim(half3 a, half3 b); 1653586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1654586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1655d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1656586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1657586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fdim(half4 a, half4 b); 1658586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1659586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1660be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1661be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * floor: Smallest integer not greater than a value 1662be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1663be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the smallest integer not greater than a value. 1664be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1665be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For example, floor(1.2f) returns 1.f, and floor(-1.2f) returns -2.f. 1666be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1667be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also ceil(). 1668be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1669be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1670be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet floor(float v); 1671be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1672be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1673be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet floor(float2 v); 1674be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1675be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1676be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet floor(float3 v); 1677be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1678be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1679be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet floor(float4 v); 1680be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1681d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1682586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1683586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar floor(half v); 1684586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1685586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1686d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1687586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1688586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar floor(half2 v); 1689586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1690586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1691d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1692586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1693586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar floor(half3 v); 1694586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1695586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1696d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1697586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1698586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar floor(half4 v); 1699586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1700586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1701be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1702be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * fma: Multiply and add 1703be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1704be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Multiply and add. Returns (multiplicand1 * multiplicand2) + offset. 1705be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 17066386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * This function is similar to mad(). fma() retains full precision of the multiplied result 17076386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * and rounds only after the addition. mad() rounds after the multiplication and the addition. 17086386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * This extra precision is not guaranteed in rs_fp_relaxed mode. 1709be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1710be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1711be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fma(float multiplicand1, float multiplicand2, float offset); 1712be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1713be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1714be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fma(float2 multiplicand1, float2 multiplicand2, float2 offset); 1715be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1716be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1717be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fma(float3 multiplicand1, float3 multiplicand2, float3 offset); 1718be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1719be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1720be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fma(float4 multiplicand1, float4 multiplicand2, float4 offset); 1721be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1722d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1723586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1724586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fma(half multiplicand1, half multiplicand2, half offset); 1725586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1726586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1727d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1728586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1729586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fma(half2 multiplicand1, half2 multiplicand2, half2 offset); 1730586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1731586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1732d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1733586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1734586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fma(half3 multiplicand1, half3 multiplicand2, half3 offset); 1735586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1736586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1737d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1738586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1739586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fma(half4 multiplicand1, half4 multiplicand2, half4 offset); 1740586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1741586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1742be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1743be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * fmax: Maximum of two floats 1744be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1745be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the maximum of a and b, i.e. (a < b ? b : a). 1746be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1747be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The max() function returns identical results but can be applied to more data types. 1748be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1749be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1750be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmax(float a, float b); 1751be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1752be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1753be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmax(float2 a, float2 b); 1754be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1755be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1756be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmax(float3 a, float3 b); 1757be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1758be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1759be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmax(float4 a, float4 b); 1760be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1761d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1762586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1763586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmax(half a, half b); 1764586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1765586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1766d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1767586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1768586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmax(half2 a, half2 b); 1769586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1770586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1771d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1772586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1773586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmax(half3 a, half3 b); 1774586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1775586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1776d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1777586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1778586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmax(half4 a, half4 b); 1779586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1780586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1781be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1782be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmax(float2 a, float b); 1783be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1784be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1785be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmax(float3 a, float b); 1786be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1787be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1788be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmax(float4 a, float b); 1789be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1790d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1791586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1792586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmax(half2 a, half b); 1793586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1794586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1795d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1796586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1797586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmax(half3 a, half b); 1798586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1799586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1800d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1801586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1802586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmax(half4 a, half b); 1803586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1804586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1805be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1806be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * fmin: Minimum of two floats 1807be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1808be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the minimum of a and b, i.e. (a > b ? b : a). 1809be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1810be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The min() function returns identical results but can be applied to more data types. 1811be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1812be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1813be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmin(float a, float b); 1814be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1815be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1816be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmin(float2 a, float2 b); 1817be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1818be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1819be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmin(float3 a, float3 b); 1820be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1821be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1822be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmin(float4 a, float4 b); 1823be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1824d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1825586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1826586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmin(half a, half b); 1827586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1828586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1829d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1830586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1831586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmin(half2 a, half2 b); 1832586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1833586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1834d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1835586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1836586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmin(half3 a, half3 b); 1837586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1838586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1839d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1840586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1841586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmin(half4 a, half4 b); 1842586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1843586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1844be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1845be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmin(float2 a, float b); 1846be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1847be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1848be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmin(float3 a, float b); 1849be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1850be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1851be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmin(float4 a, float b); 1852be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1853d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1854586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1855586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmin(half2 a, half b); 1856586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1857586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1858d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1859586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1860586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmin(half3 a, half b); 1861586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1862586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1863d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1864586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1865586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmin(half4 a, half b); 1866586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1867586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1868586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar/* 1869586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar * fmod: Modulo 1870586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar * 1871586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar * Returns the remainder of (numerator / denominator), where the quotient is rounded towards zero. 1872be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1873be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The function remainder() is similar but rounds toward the closest interger. 1874be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For example, fmod(-3.8f, 2.f) returns -1.8f (-3.8f - -1.f * 2.f) 1875be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * while remainder(-3.8f, 2.f) returns 0.2f (-3.8f - -2.f * 2.f). 1876be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1877be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 1878be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmod(float numerator, float denominator); 1879be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1880be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 1881be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmod(float2 numerator, float2 denominator); 1882be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1883be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 1884be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmod(float3 numerator, float3 denominator); 1885be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1886be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 1887be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fmod(float4 numerator, float4 denominator); 1888be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1889d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1890586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 1891586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmod(half numerator, half denominator); 1892586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1893586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1894d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1895586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 1896586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmod(half2 numerator, half2 denominator); 1897586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1898586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1899d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1900586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 1901586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmod(half3 numerator, half3 denominator); 1902586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1903586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1904d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 1905586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 1906586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar fmod(half4 numerator, half4 denominator); 1907586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 1908586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 1909be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 1910be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * fract: Positive fractional part 1911be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1912be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the positive fractional part of v, i.e. v - floor(v). 1913be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1914be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For example, fract(1.3f, &val) returns 0.3f and sets val to 1.f. 1915be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * fract(-1.3f, &val) returns 0.7f and sets val to -2.f. 1916be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1917be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 19184a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * v: Input value. 19194a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * floor: If floor is not null, *floor will be set to the floor of v. 1920be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 1921be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((overloadable)) 1922be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fract(float v, float* floor); 1923be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1924be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((overloadable)) 1925be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fract(float2 v, float2* floor); 1926be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1927be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((overloadable)) 1928be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fract(float3 v, float3* floor); 1929be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1930be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((overloadable)) 1931be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fract(float4 v, float4* floor); 1932be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 19339cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#if !defined(RS_VERSION) || (RS_VERSION <= 23) 1934be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline float __attribute__((const, overloadable)) 1935be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fract(float v) { 1936be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet float unused; 1937be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return fract(v, &unused); 1938be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 19399cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#endif 1940be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 19419cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#if !defined(RS_VERSION) || (RS_VERSION <= 23) 1942be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline float2 __attribute__((const, overloadable)) 1943be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fract(float2 v) { 1944be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet float2 unused; 1945be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return fract(v, &unused); 1946be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 19479cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#endif 1948be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 19499cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#if !defined(RS_VERSION) || (RS_VERSION <= 23) 1950be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline float3 __attribute__((const, overloadable)) 1951be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fract(float3 v) { 1952be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet float3 unused; 1953be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return fract(v, &unused); 1954be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 19559cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#endif 1956be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 19579cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#if !defined(RS_VERSION) || (RS_VERSION <= 23) 1958be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline float4 __attribute__((const, overloadable)) 1959be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet fract(float4 v) { 1960be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet float4 unused; 1961be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return fract(v, &unused); 1962be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 19639cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#endif 19649cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham 19659cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 19669cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckhamextern float __attribute__((overloadable)) 19679cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham fract(float v); 19689cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#endif 19699cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham 19709cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 19719cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckhamextern float2 __attribute__((overloadable)) 19729cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham fract(float2 v); 19739cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#endif 19749cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham 19759cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 19769cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckhamextern float3 __attribute__((overloadable)) 19779cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham fract(float3 v); 19789cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#endif 19799cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham 19809cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 19819cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckhamextern float4 __attribute__((overloadable)) 19829cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham fract(float4 v); 19839cbc99ba45126a6a30ba13fc6d4e75e51ca14ea7Verena Beckham#endif 1984be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 1985d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 19868b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half __attribute__((overloadable)) 19878b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar fract(half v, half* floor); 19888b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 19898b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 1990d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 19918b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half2 __attribute__((overloadable)) 19928b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar fract(half2 v, half2* floor); 19938b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 19948b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 1995d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 19968b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half3 __attribute__((overloadable)) 19978b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar fract(half3 v, half3* floor); 19988b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 19998b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 2000d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 20018b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half4 __attribute__((overloadable)) 20028b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar fract(half4 v, half4* floor); 20038b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 20048b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 2005d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 20068b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half __attribute__((overloadable)) 20078b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar fract(half v); 20088b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 20098b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 2010d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 20118b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half2 __attribute__((overloadable)) 20128b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar fract(half2 v); 20138b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 20148b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 2015d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 20168b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half3 __attribute__((overloadable)) 20178b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar fract(half3 v); 20188b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 20198b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 2020d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 20218b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half4 __attribute__((overloadable)) 20228b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar fract(half4 v); 20238b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 20248b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 2025be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2026be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * frexp: Binary mantissa and exponent 2027be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2028be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the binary mantissa and exponent of v, i.e. v == mantissa * 2 ^ exponent. 2029be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2030be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The mantissa is always between 0.5 (inclusive) and 1.0 (exclusive). 2031be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2032be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See ldexp() for the reverse operation. See also logb() and ilogb(). 2033be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2034be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 20354a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * v: Input value. 20364a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * exponent: If exponent is not null, *exponent will be set to the exponent of v. 2037be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2038be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((overloadable)) 2039be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet frexp(float v, int* exponent); 2040be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2041be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((overloadable)) 2042be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet frexp(float2 v, int2* exponent); 2043be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2044be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((overloadable)) 2045be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet frexp(float3 v, int3* exponent); 2046be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2047be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((overloadable)) 2048be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet frexp(float4 v, int4* exponent); 2049be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2050d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 20518b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half __attribute__((overloadable)) 20528b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar frexp(half v, int* exponent); 20538b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 20548b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 2055d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 20568b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half2 __attribute__((overloadable)) 20578b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar frexp(half2 v, int2* exponent); 20588b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 20598b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 2060d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 20618b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half3 __attribute__((overloadable)) 20628b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar frexp(half3 v, int3* exponent); 20638b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 20648b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 2065d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 20668b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half4 __attribute__((overloadable)) 20678b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar frexp(half4 v, int4* exponent); 20688b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 20698b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 2070be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2071be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * half_recip: Reciprocal computed to 16 bit precision 2072be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2073be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate reciprocal of a value. 2074be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2075be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The precision is that of a 16 bit floating point value. 2076be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2077be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_recip(). 2078be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2079be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17)) 2080be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 2081be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet half_recip(float v); 2082be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2083be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2084be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17)) 2085be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2086be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet half_recip(float2 v); 2087be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2088be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2089be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17)) 2090be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2091be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet half_recip(float3 v); 2092be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2093be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2094be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17)) 2095be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2096be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet half_recip(float4 v); 2097be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2098be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2099be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2100be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * half_rsqrt: Reciprocal of a square root computed to 16 bit precision 2101be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2102be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate value of (1.f / sqrt(value)). 2103be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2104be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The precision is that of a 16 bit floating point value. 2105be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2106be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also rsqrt(), native_rsqrt(). 2107be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2108be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17)) 2109be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 2110be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet half_rsqrt(float v); 2111be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2112be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2113be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17)) 2114be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2115be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet half_rsqrt(float2 v); 2116be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2117be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2118be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17)) 2119be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2120be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet half_rsqrt(float3 v); 2121be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2122be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2123be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17)) 2124be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2125be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet half_rsqrt(float4 v); 2126be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2127be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2128be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2129be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * half_sqrt: Square root computed to 16 bit precision 2130be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2131be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate square root of a value. 2132be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2133be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The precision is that of a 16 bit floating point value. 2134be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2135be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also sqrt(), native_sqrt(). 2136be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2137be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17)) 2138be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 2139be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet half_sqrt(float v); 2140be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2141be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2142be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17)) 2143be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2144be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet half_sqrt(float2 v); 2145be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2146be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2147be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17)) 2148be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2149be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet half_sqrt(float3 v); 2150be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2151be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2152be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 17)) 2153be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2154be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet half_sqrt(float4 v); 2155be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2156be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2157be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2158be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * hypot: Hypotenuse 2159be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2160be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the hypotenuse, i.e. sqrt(a * a + b * b). 2161be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2162be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_hypot(). 2163be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2164be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 2165be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet hypot(float a, float b); 2166be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2167be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2168be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet hypot(float2 a, float2 b); 2169be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2170be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2171be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet hypot(float3 a, float3 b); 2172be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2173be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2174be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet hypot(float4 a, float4 b); 2175be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2176d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2177586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 2178586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar hypot(half a, half b); 2179586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2180586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2181d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2182586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 2183586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar hypot(half2 a, half2 b); 2184586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2185586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2186d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2187586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 2188586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar hypot(half3 a, half3 b); 2189586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2190586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2191d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2192586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 2193586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar hypot(half4 a, half4 b); 2194586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2195586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2196be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2197be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * ilogb: Base two exponent 2198be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2199be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the base two exponent of a value, where the mantissa is between 2200be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1.f (inclusive) and 2.f (exclusive). 2201be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2202be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For example, ilogb(8.5f) returns 3. 2203be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 22046386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * Because of the difference in mantissa, this number is one less than is returned by frexp(). 2205be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2206be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * logb() is similar but returns a float. 2207be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2208be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int __attribute__((const, overloadable)) 2209be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ilogb(float v); 2210be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2211be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable)) 2212be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ilogb(float2 v); 2213be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2214be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable)) 2215be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ilogb(float3 v); 2216be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2217be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable)) 2218be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ilogb(float4 v); 2219be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2220d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2221f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainarextern int __attribute__((const, overloadable)) 2222f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar ilogb(half v); 2223f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar#endif 2224f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar 2225d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2226f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainarextern int2 __attribute__((const, overloadable)) 2227f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar ilogb(half2 v); 2228f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar#endif 2229f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar 2230d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2231f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainarextern int3 __attribute__((const, overloadable)) 2232f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar ilogb(half3 v); 2233f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar#endif 2234f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar 2235d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2236f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainarextern int4 __attribute__((const, overloadable)) 2237f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar ilogb(half4 v); 2238f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar#endif 2239f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar 2240be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2241be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * ldexp: Creates a floating point from mantissa and exponent 2242be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2243be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the floating point created from the mantissa and exponent, 2244be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * i.e. (mantissa * 2 ^ exponent). 2245be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2246be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See frexp() for the reverse operation. 2247be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2248be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 22496386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * mantissa: Mantissa. 22506386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * exponent: Exponent, a single component or matching vector. 2251be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2252be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 2253be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ldexp(float mantissa, int exponent); 2254be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2255be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2256be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ldexp(float2 mantissa, int2 exponent); 2257be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2258be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2259be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ldexp(float3 mantissa, int3 exponent); 2260be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2261be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2262be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ldexp(float4 mantissa, int4 exponent); 2263be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2264d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2265586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 2266586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar ldexp(half mantissa, int exponent); 2267586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2268586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2269d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2270586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 2271586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar ldexp(half2 mantissa, int2 exponent); 2272586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2273586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2274d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2275586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 2276586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar ldexp(half3 mantissa, int3 exponent); 2277586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2278586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2279d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2280586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 2281586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar ldexp(half4 mantissa, int4 exponent); 2282586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2283586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2284be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2285be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ldexp(float2 mantissa, int exponent); 2286be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2287be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2288be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ldexp(float3 mantissa, int exponent); 2289be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2290be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2291be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ldexp(float4 mantissa, int exponent); 2292be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2293d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2294586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 2295586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar ldexp(half2 mantissa, int exponent); 2296586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2297586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2298d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2299586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 2300586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar ldexp(half3 mantissa, int exponent); 2301586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2302586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2303d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2304586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 2305586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar ldexp(half4 mantissa, int exponent); 2306586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2307586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2308be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2309be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * lgamma: Natural logarithm of the gamma function 2310be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2311be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the natural logarithm of the absolute value of the gamma function, 2312be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * i.e. log(fabs(tgamma(v))). 2313be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2314be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also tgamma(). 2315be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2316be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 23174a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * sign_of_gamma: If sign_of_gamma is not null, *sign_of_gamma will be set to -1.f if the gamma of v is negative, otherwise to 1.f. 2318be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2319be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 2320be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet lgamma(float v); 2321be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2322be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2323be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet lgamma(float2 v); 2324be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2325be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2326be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet lgamma(float3 v); 2327be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2328be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2329be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet lgamma(float4 v); 2330be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2331d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2332586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 2333586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar lgamma(half v); 2334586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2335586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2336d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2337586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 2338586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar lgamma(half2 v); 2339586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2340586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2341d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2342586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 2343586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar lgamma(half3 v); 2344586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2345586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2346d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2347586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 2348586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar lgamma(half4 v); 2349586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2350586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2351be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((overloadable)) 2352be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet lgamma(float v, int* sign_of_gamma); 2353be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2354be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((overloadable)) 2355be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet lgamma(float2 v, int2* sign_of_gamma); 2356be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2357be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((overloadable)) 2358be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet lgamma(float3 v, int3* sign_of_gamma); 2359be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2360be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((overloadable)) 2361be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet lgamma(float4 v, int4* sign_of_gamma); 2362be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2363d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2364586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((overloadable)) 2365586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar lgamma(half v, int* sign_of_gamma); 2366586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2367586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2368d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2369586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((overloadable)) 2370586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar lgamma(half2 v, int2* sign_of_gamma); 2371586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2372586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2373d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2374586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((overloadable)) 2375586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar lgamma(half3 v, int3* sign_of_gamma); 2376586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2377586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2378d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2379586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((overloadable)) 2380586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar lgamma(half4 v, int4* sign_of_gamma); 2381586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2382586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2383be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2384be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * log: Natural logarithm 2385be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2386be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the natural logarithm. 2387be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2388be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_log(). 2389be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2390be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 2391be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log(float v); 2392be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2393be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2394be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log(float2 v); 2395be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2396be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2397be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log(float3 v); 2398be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2399be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2400be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log(float4 v); 2401be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2402d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2403586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 2404586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log(half v); 2405586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2406586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2407d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2408586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 2409586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log(half2 v); 2410586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2411586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2412d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2413586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 2414586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log(half3 v); 2415586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2416586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2417d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2418586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 2419586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log(half4 v); 2420586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2421586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2422be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2423be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * log10: Base 10 logarithm 2424be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2425be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the base 10 logarithm. 2426be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2427be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_log10(). 2428be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2429be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 2430be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log10(float v); 2431be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2432be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2433be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log10(float2 v); 2434be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2435be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2436be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log10(float3 v); 2437be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2438be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2439be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log10(float4 v); 2440be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2441d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2442586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 2443586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log10(half v); 2444586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2445586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2446d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2447586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 2448586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log10(half2 v); 2449586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2450586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2451d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2452586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 2453586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log10(half3 v); 2454586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2455586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2456d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2457586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 2458586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log10(half4 v); 2459586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2460586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2461be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2462be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * log1p: Natural logarithm of a value plus 1 2463be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2464be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the natural logarithm of (v + 1.f). 2465be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2466be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_log1p(). 2467be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2468be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 2469be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log1p(float v); 2470be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2471be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2472be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log1p(float2 v); 2473be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2474be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2475be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log1p(float3 v); 2476be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2477be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2478be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log1p(float4 v); 2479be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2480d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2481586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 2482586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log1p(half v); 2483586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2484586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2485d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2486586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 2487586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log1p(half2 v); 2488586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2489586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2490d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2491586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 2492586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log1p(half3 v); 2493586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2494586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2495d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2496586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 2497586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log1p(half4 v); 2498586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2499586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2500be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2501be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * log2: Base 2 logarithm 2502be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2503be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the base 2 logarithm. 2504be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2505be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_log2(). 2506be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2507be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 2508be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log2(float v); 2509be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2510be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2511be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log2(float2 v); 2512be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2513be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2514be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log2(float3 v); 2515be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2516be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2517be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet log2(float4 v); 2518be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2519d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2520586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 2521586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log2(half v); 2522586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2523586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2524d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2525586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 2526586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log2(half2 v); 2527586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2528586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2529d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2530586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 2531586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log2(half3 v); 2532586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2533586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2534d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2535586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 2536586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar log2(half4 v); 2537586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2538586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2539be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2540be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * logb: Base two exponent 2541be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2542be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the base two exponent of a value, where the mantissa is between 2543be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 1.f (inclusive) and 2.f (exclusive). 2544be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2545be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For example, logb(8.5f) returns 3.f. 2546be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 25476386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * Because of the difference in mantissa, this number is one less than is returned by frexp(). 2548be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2549be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * ilogb() is similar but returns an integer. 2550be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2551be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 2552be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet logb(float v); 2553be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2554be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2555be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet logb(float2 v); 2556be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2557be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2558be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet logb(float3 v); 2559be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2560be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2561be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet logb(float4 v); 2562be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2563d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2564586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 2565586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar logb(half v); 2566586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2567586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2568d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2569586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 2570586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar logb(half2 v); 2571586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2572586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2573d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2574586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 2575586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar logb(half3 v); 2576586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2577586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2578d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2579586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 2580586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar logb(half4 v); 2581586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2582586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2583be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2584be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * mad: Multiply and add 2585be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2586be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Multiply and add. Returns (multiplicand1 * multiplicand2) + offset. 2587be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 25886386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * This function is similar to fma(). fma() retains full precision of the multiplied result 25896386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * and rounds only after the addition. mad() rounds after the multiplication and the addition. 25906386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * In rs_fp_relaxed mode, mad() may not do the rounding after multiplicaiton. 2591be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2592be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 2593be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet mad(float multiplicand1, float multiplicand2, float offset); 2594be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2595be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2596be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet mad(float2 multiplicand1, float2 multiplicand2, float2 offset); 2597be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2598be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2599be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet mad(float3 multiplicand1, float3 multiplicand2, float3 offset); 2600be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2601be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2602be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet mad(float4 multiplicand1, float4 multiplicand2, float4 offset); 2603be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2604d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2605586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 2606586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar mad(half multiplicand1, half multiplicand2, half offset); 2607586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2608586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2609d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2610586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 2611586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar mad(half2 multiplicand1, half2 multiplicand2, half2 offset); 2612586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2613586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2614d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2615586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 2616586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar mad(half3 multiplicand1, half3 multiplicand2, half3 offset); 2617586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2618586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2619d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2620586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 2621586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar mad(half4 multiplicand1, half4 multiplicand2, half4 offset); 2622586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2623586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2624be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 2625be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * max: Maximum 2626be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 2627be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the maximum value of two arguments. 2628be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 2629be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 2630be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(float a, float b); 2631be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2632be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 2633be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(float2 a, float2 b); 2634be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2635be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 2636be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(float3 a, float3 b); 2637be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2638be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 2639be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(float4 a, float4 b); 2640be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2641d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2642586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 2643586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar max(half a, half b); 2644586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2645586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2646d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2647586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 2648586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar max(half2 a, half2 b); 2649586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2650586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2651d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2652586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 2653586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar max(half3 a, half3 b); 2654586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2655586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2656d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2657586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 2658586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar max(half4 a, half4 b); 2659586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2660586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 26617cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 26627cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouillet max(float2 a, float b); 26637cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouillet 26647cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 26657cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouillet max(float3 a, float b); 26667cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouillet 26677cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 26687cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouillet max(float4 a, float b); 26697cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouillet 2670d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2671586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 2672586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar max(half2 a, half b); 2673586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2674586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2675d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2676586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 2677586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar max(half3 a, half b); 2678586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2679586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2680d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 2681586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 2682586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar max(half4 a, half b); 2683586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 2684586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 2685be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2686be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline char __attribute__((const, overloadable)) 2687be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(char a, char b) { 2688be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return (a > b ? a : b); 2689be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2690be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2691be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2692be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2693be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uchar __attribute__((const, overloadable)) 2694be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uchar a, uchar b) { 2695be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return (a > b ? a : b); 2696be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2697be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2698be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2699be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2700be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline short __attribute__((const, overloadable)) 2701be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(short a, short b) { 2702be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return (a > b ? a : b); 2703be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2704be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2705be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2706be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2707be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline ushort __attribute__((const, overloadable)) 2708be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(ushort a, ushort b) { 2709be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return (a > b ? a : b); 2710be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2711be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2712be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2713be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2714be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline int __attribute__((const, overloadable)) 2715be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(int a, int b) { 2716be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return (a > b ? a : b); 2717be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2718be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2719be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2720be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2721be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uint __attribute__((const, overloadable)) 2722be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uint a, uint b) { 2723be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return (a > b ? a : b); 2724be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2725be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2726be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2727be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2728be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline char2 __attribute__((const, overloadable)) 2729be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(char2 a, char2 b) { 2730be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet char2 tmp; 2731be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2732be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2733be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2734be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2735be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2736be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2737be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2738be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uchar2 __attribute__((const, overloadable)) 2739be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uchar2 a, uchar2 b) { 2740be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet uchar2 tmp; 2741be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2742be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2743be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2744be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2745be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2746be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2747be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2748be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline short2 __attribute__((const, overloadable)) 2749be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(short2 a, short2 b) { 2750be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet short2 tmp; 2751be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2752be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2753be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2754be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2755be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2756be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2757be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2758be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline ushort2 __attribute__((const, overloadable)) 2759be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(ushort2 a, ushort2 b) { 2760be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ushort2 tmp; 2761be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2762be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2763be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2764be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2765be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2766be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2767be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2768be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline int2 __attribute__((const, overloadable)) 2769be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(int2 a, int2 b) { 2770be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet int2 tmp; 2771be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2772be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2773be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2774be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2775be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2776be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2777be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2778be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uint2 __attribute__((const, overloadable)) 2779be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uint2 a, uint2 b) { 2780be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet uint2 tmp; 2781be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2782be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2783be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2784be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2785be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2786be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2787be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2788be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline char3 __attribute__((const, overloadable)) 2789be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(char3 a, char3 b) { 2790be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet char3 tmp; 2791be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2792be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2793be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z > b.z ? a.z : b.z); 2794be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2795be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2796be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2797be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2798be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2799be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uchar3 __attribute__((const, overloadable)) 2800be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uchar3 a, uchar3 b) { 2801be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet uchar3 tmp; 2802be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2803be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2804be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z > b.z ? a.z : b.z); 2805be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2806be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2807be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2808be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2809be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2810be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline short3 __attribute__((const, overloadable)) 2811be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(short3 a, short3 b) { 2812be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet short3 tmp; 2813be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2814be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2815be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z > b.z ? a.z : b.z); 2816be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2817be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2818be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2819be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2820be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2821be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline ushort3 __attribute__((const, overloadable)) 2822be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(ushort3 a, ushort3 b) { 2823be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ushort3 tmp; 2824be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2825be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2826be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z > b.z ? a.z : b.z); 2827be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2828be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2829be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2830be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2831be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2832be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline int3 __attribute__((const, overloadable)) 2833be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(int3 a, int3 b) { 2834be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet int3 tmp; 2835be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2836be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2837be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z > b.z ? a.z : b.z); 2838be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2839be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2840be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2841be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2842be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2843be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uint3 __attribute__((const, overloadable)) 2844be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uint3 a, uint3 b) { 2845be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet uint3 tmp; 2846be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2847be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2848be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z > b.z ? a.z : b.z); 2849be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2850be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2851be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2852be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2853be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2854be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline char4 __attribute__((const, overloadable)) 2855be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(char4 a, char4 b) { 2856be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet char4 tmp; 2857be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2858be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2859be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z > b.z ? a.z : b.z); 2860be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.w = (a.w > b.w ? a.w : b.w); 2861be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2862be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2863be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2864be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2865be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2866be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uchar4 __attribute__((const, overloadable)) 2867be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uchar4 a, uchar4 b) { 2868be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet uchar4 tmp; 2869be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2870be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2871be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z > b.z ? a.z : b.z); 2872be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.w = (a.w > b.w ? a.w : b.w); 2873be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2874be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2875be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2876be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2877be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2878be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline short4 __attribute__((const, overloadable)) 2879be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(short4 a, short4 b) { 2880be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet short4 tmp; 2881be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2882be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2883be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z > b.z ? a.z : b.z); 2884be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.w = (a.w > b.w ? a.w : b.w); 2885be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2886be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2887be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2888be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2889be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2890be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline ushort4 __attribute__((const, overloadable)) 2891be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(ushort4 a, ushort4 b) { 2892be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ushort4 tmp; 2893be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2894be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2895be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z > b.z ? a.z : b.z); 2896be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.w = (a.w > b.w ? a.w : b.w); 2897be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2898be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2899be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2900be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2901be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2902be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline int4 __attribute__((const, overloadable)) 2903be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(int4 a, int4 b) { 2904be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet int4 tmp; 2905be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2906be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2907be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z > b.z ? a.z : b.z); 2908be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.w = (a.w > b.w ? a.w : b.w); 2909be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2910be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2911be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2912be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2913be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 2914be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uint4 __attribute__((const, overloadable)) 2915be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uint4 a, uint4 b) { 2916be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet uint4 tmp; 2917be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x > b.x ? a.x : b.x); 2918be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y > b.y ? a.y : b.y); 2919be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z > b.z ? a.z : b.z); 2920be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.w = (a.w > b.w ? a.w : b.w); 2921be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 2922be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 2923be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2924be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2925be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2926be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char __attribute__((const, overloadable)) 2927be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(char a, char b); 2928be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2929be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2930be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2931be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable)) 2932be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(char2 a, char2 b); 2933be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2934be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2935be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2936be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable)) 2937be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(char3 a, char3 b); 2938be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2939be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2940be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2941be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable)) 2942be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(char4 a, char4 b); 2943be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2944be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2945be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2946be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar __attribute__((const, overloadable)) 2947be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uchar a, uchar b); 2948be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2949be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2950be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2951be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable)) 2952be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uchar2 a, uchar2 b); 2953be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2954be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2955be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2956be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable)) 2957be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uchar3 a, uchar3 b); 2958be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2959be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2960be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2961be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable)) 2962be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uchar4 a, uchar4 b); 2963be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2964be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2965be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2966be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short __attribute__((const, overloadable)) 2967be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(short a, short b); 2968be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2969be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2970be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2971be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable)) 2972be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(short2 a, short2 b); 2973be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2974be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2975be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2976be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable)) 2977be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(short3 a, short3 b); 2978be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2979be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2980be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2981be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable)) 2982be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(short4 a, short4 b); 2983be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2984be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2985be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2986be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort __attribute__((const, overloadable)) 2987be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(ushort a, ushort b); 2988be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2989be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2990be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2991be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable)) 2992be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(ushort2 a, ushort2 b); 2993be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2994be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 2995be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 2996be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable)) 2997be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(ushort3 a, ushort3 b); 2998be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 2999be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3000be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3001be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable)) 3002be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(ushort4 a, ushort4 b); 3003be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3004be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3005be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3006be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int __attribute__((const, overloadable)) 3007be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(int a, int b); 3008be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3009be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3010be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3011be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable)) 3012be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(int2 a, int2 b); 3013be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3014be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3015be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3016be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable)) 3017be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(int3 a, int3 b); 3018be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3019be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3020be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3021be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable)) 3022be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(int4 a, int4 b); 3023be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3024be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3025be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3026be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint __attribute__((const, overloadable)) 3027be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uint a, uint b); 3028be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3029be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3030be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3031be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable)) 3032be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uint2 a, uint2 b); 3033be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3034be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3035be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3036be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable)) 3037be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uint3 a, uint3 b); 3038be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3039be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3040be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3041be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable)) 3042be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(uint4 a, uint4 b); 3043be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3044be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3045be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3046be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long __attribute__((const, overloadable)) 3047be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(long a, long b); 3048be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3049be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3050be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3051be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable)) 3052be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(long2 a, long2 b); 3053be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3054be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3055be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3056be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable)) 3057be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(long3 a, long3 b); 3058be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3059be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3060be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3061be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable)) 3062be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(long4 a, long4 b); 3063be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3064be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3065be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3066be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong __attribute__((const, overloadable)) 3067be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(ulong a, ulong b); 3068be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3069be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3070be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3071be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable)) 3072be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(ulong2 a, ulong2 b); 3073be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3074be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3075be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3076be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable)) 3077be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(ulong3 a, ulong3 b); 3078be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3079be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3080be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3081be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable)) 3082be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet max(ulong4 a, ulong4 b); 3083be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3084be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3085be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 3086be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * min: Minimum 3087be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3088be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the minimum value of two arguments. 3089be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 3090be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 3091be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(float a, float b); 3092be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3093be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 3094be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(float2 a, float2 b); 3095be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3096be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 3097be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(float3 a, float3 b); 3098be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3099be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 3100be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(float4 a, float4 b); 3101be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3102d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3103586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 3104586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar min(half a, half b); 3105586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3106586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3107d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3108586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 3109586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar min(half2 a, half2 b); 3110586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3111586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3112d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3113586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 3114586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar min(half3 a, half3 b); 3115586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3116586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3117d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3118586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 3119586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar min(half4 a, half4 b); 3120586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3121586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 31227cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 31237cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouillet min(float2 a, float b); 31247cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouillet 31257cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 31267cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouillet min(float3 a, float b); 31277cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouillet 31287cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 31297cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouillet min(float4 a, float b); 31307cf263d593c057af8da8d57025e7315c4ed21ea2Jean-Luc Brouillet 3131d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3132586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 3133586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar min(half2 a, half b); 3134586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3135586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3136d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3137586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 3138586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar min(half3 a, half b); 3139586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3140586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3141d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3142586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 3143586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar min(half4 a, half b); 3144586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3145586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3146be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3147be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline char __attribute__((const, overloadable)) 3148be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(char a, char b) { 3149be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return (a < b ? a : b); 3150be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3151be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3152be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3153be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3154be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uchar __attribute__((const, overloadable)) 3155be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uchar a, uchar b) { 3156be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return (a < b ? a : b); 3157be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3158be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3159be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3160be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3161be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline short __attribute__((const, overloadable)) 3162be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(short a, short b) { 3163be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return (a < b ? a : b); 3164be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3165be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3166be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3167be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3168be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline ushort __attribute__((const, overloadable)) 3169be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(ushort a, ushort b) { 3170be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return (a < b ? a : b); 3171be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3172be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3173be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3174be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3175be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline int __attribute__((const, overloadable)) 3176be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(int a, int b) { 3177be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return (a < b ? a : b); 3178be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3179be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3180be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3181be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3182be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uint __attribute__((const, overloadable)) 3183be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uint a, uint b) { 3184be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return (a < b ? a : b); 3185be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3186be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3187be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3188be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3189be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline char2 __attribute__((const, overloadable)) 3190be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(char2 a, char2 b) { 3191be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet char2 tmp; 3192be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3193be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3194be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3195be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3196be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3197be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3198be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3199be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uchar2 __attribute__((const, overloadable)) 3200be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uchar2 a, uchar2 b) { 3201be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet uchar2 tmp; 3202be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3203be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3204be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3205be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3206be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3207be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3208be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3209be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline short2 __attribute__((const, overloadable)) 3210be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(short2 a, short2 b) { 3211be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet short2 tmp; 3212be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3213be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3214be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3215be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3216be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3217be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3218be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3219be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline ushort2 __attribute__((const, overloadable)) 3220be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(ushort2 a, ushort2 b) { 3221be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ushort2 tmp; 3222be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3223be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3224be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3225be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3226be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3227be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3228be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3229be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline int2 __attribute__((const, overloadable)) 3230be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(int2 a, int2 b) { 3231be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet int2 tmp; 3232be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3233be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3234be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3235be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3236be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3237be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3238be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3239be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uint2 __attribute__((const, overloadable)) 3240be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uint2 a, uint2 b) { 3241be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet uint2 tmp; 3242be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3243be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3244be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3245be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3246be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3247be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3248be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3249be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline char3 __attribute__((const, overloadable)) 3250be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(char3 a, char3 b) { 3251be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet char3 tmp; 3252be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3253be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3254be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z < b.z ? a.z : b.z); 3255be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3256be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3257be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3258be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3259be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3260be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uchar3 __attribute__((const, overloadable)) 3261be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uchar3 a, uchar3 b) { 3262be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet uchar3 tmp; 3263be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3264be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3265be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z < b.z ? a.z : b.z); 3266be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3267be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3268be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3269be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3270be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3271be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline short3 __attribute__((const, overloadable)) 3272be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(short3 a, short3 b) { 3273be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet short3 tmp; 3274be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3275be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3276be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z < b.z ? a.z : b.z); 3277be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3278be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3279be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3280be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3281be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3282be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline ushort3 __attribute__((const, overloadable)) 3283be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(ushort3 a, ushort3 b) { 3284be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ushort3 tmp; 3285be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3286be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3287be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z < b.z ? a.z : b.z); 3288be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3289be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3290be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3291be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3292be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3293be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline int3 __attribute__((const, overloadable)) 3294be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(int3 a, int3 b) { 3295be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet int3 tmp; 3296be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3297be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3298be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z < b.z ? a.z : b.z); 3299be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3300be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3301be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3302be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3303be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3304be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uint3 __attribute__((const, overloadable)) 3305be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uint3 a, uint3 b) { 3306be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet uint3 tmp; 3307be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3308be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3309be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z < b.z ? a.z : b.z); 3310be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3311be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3312be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3313be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3314be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3315be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline char4 __attribute__((const, overloadable)) 3316be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(char4 a, char4 b) { 3317be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet char4 tmp; 3318be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3319be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3320be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z < b.z ? a.z : b.z); 3321be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.w = (a.w < b.w ? a.w : b.w); 3322be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3323be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3324be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3325be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3326be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3327be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uchar4 __attribute__((const, overloadable)) 3328be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uchar4 a, uchar4 b) { 3329be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet uchar4 tmp; 3330be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3331be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3332be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z < b.z ? a.z : b.z); 3333be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.w = (a.w < b.w ? a.w : b.w); 3334be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3335be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3336be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3337be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3338be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3339be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline short4 __attribute__((const, overloadable)) 3340be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(short4 a, short4 b) { 3341be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet short4 tmp; 3342be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3343be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3344be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z < b.z ? a.z : b.z); 3345be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.w = (a.w < b.w ? a.w : b.w); 3346be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3347be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3348be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3349be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3350be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3351be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline ushort4 __attribute__((const, overloadable)) 3352be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(ushort4 a, ushort4 b) { 3353be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet ushort4 tmp; 3354be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3355be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3356be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z < b.z ? a.z : b.z); 3357be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.w = (a.w < b.w ? a.w : b.w); 3358be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3359be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3360be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3361be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3362be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3363be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline int4 __attribute__((const, overloadable)) 3364be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(int4 a, int4 b) { 3365be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet int4 tmp; 3366be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3367be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3368be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z < b.z ? a.z : b.z); 3369be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.w = (a.w < b.w ? a.w : b.w); 3370be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3371be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3372be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3373be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3374be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if !defined(RS_VERSION) || (RS_VERSION <= 20) 3375be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletstatic inline uint4 __attribute__((const, overloadable)) 3376be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uint4 a, uint4 b) { 3377be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet uint4 tmp; 3378be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.x = (a.x < b.x ? a.x : b.x); 3379be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.y = (a.y < b.y ? a.y : b.y); 3380be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.z = (a.z < b.z ? a.z : b.z); 3381be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tmp.w = (a.w < b.w ? a.w : b.w); 3382be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet return tmp; 3383be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet} 3384be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3385be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3386be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3387be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char __attribute__((const, overloadable)) 3388be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(char a, char b); 3389be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3390be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3391be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3392be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char2 __attribute__((const, overloadable)) 3393be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(char2 a, char2 b); 3394be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3395be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3396be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3397be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char3 __attribute__((const, overloadable)) 3398be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(char3 a, char3 b); 3399be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3400be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3401be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3402be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern char4 __attribute__((const, overloadable)) 3403be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(char4 a, char4 b); 3404be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3405be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3406be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3407be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar __attribute__((const, overloadable)) 3408be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uchar a, uchar b); 3409be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3410be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3411be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3412be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar2 __attribute__((const, overloadable)) 3413be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uchar2 a, uchar2 b); 3414be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3415be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3416be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3417be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar3 __attribute__((const, overloadable)) 3418be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uchar3 a, uchar3 b); 3419be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3420be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3421be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3422be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uchar4 __attribute__((const, overloadable)) 3423be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uchar4 a, uchar4 b); 3424be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3425be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3426be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3427be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short __attribute__((const, overloadable)) 3428be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(short a, short b); 3429be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3430be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3431be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3432be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short2 __attribute__((const, overloadable)) 3433be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(short2 a, short2 b); 3434be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3435be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3436be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3437be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short3 __attribute__((const, overloadable)) 3438be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(short3 a, short3 b); 3439be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3440be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3441be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3442be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern short4 __attribute__((const, overloadable)) 3443be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(short4 a, short4 b); 3444be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3445be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3446be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3447be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort __attribute__((const, overloadable)) 3448be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(ushort a, ushort b); 3449be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3450be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3451be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3452be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort2 __attribute__((const, overloadable)) 3453be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(ushort2 a, ushort2 b); 3454be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3455be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3456be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3457be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort3 __attribute__((const, overloadable)) 3458be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(ushort3 a, ushort3 b); 3459be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3460be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3461be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3462be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ushort4 __attribute__((const, overloadable)) 3463be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(ushort4 a, ushort4 b); 3464be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3465be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3466be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3467be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int __attribute__((const, overloadable)) 3468be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(int a, int b); 3469be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3470be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3471be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3472be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int2 __attribute__((const, overloadable)) 3473be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(int2 a, int2 b); 3474be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3475be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3476be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3477be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int3 __attribute__((const, overloadable)) 3478be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(int3 a, int3 b); 3479be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3480be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3481be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3482be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern int4 __attribute__((const, overloadable)) 3483be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(int4 a, int4 b); 3484be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3485be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3486be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3487be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint __attribute__((const, overloadable)) 3488be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uint a, uint b); 3489be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3490be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3491be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3492be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint2 __attribute__((const, overloadable)) 3493be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uint2 a, uint2 b); 3494be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3495be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3496be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3497be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint3 __attribute__((const, overloadable)) 3498be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uint3 a, uint3 b); 3499be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3500be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3501be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3502be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern uint4 __attribute__((const, overloadable)) 3503be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(uint4 a, uint4 b); 3504be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3505be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3506be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3507be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long __attribute__((const, overloadable)) 3508be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(long a, long b); 3509be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3510be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3511be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3512be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long2 __attribute__((const, overloadable)) 3513be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(long2 a, long2 b); 3514be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3515be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3516be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3517be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long3 __attribute__((const, overloadable)) 3518be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(long3 a, long3 b); 3519be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3520be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3521be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3522be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern long4 __attribute__((const, overloadable)) 3523be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(long4 a, long4 b); 3524be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3525be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3526be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3527be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong __attribute__((const, overloadable)) 3528be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(ulong a, ulong b); 3529be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3530be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3531be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3532be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong2 __attribute__((const, overloadable)) 3533be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(ulong2 a, ulong2 b); 3534be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3535be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3536be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3537be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong3 __attribute__((const, overloadable)) 3538be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(ulong3 a, ulong3 b); 3539be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3540be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3541be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3542be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern ulong4 __attribute__((const, overloadable)) 3543be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet min(ulong4 a, ulong4 b); 3544be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3545be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3546be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 3547be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * mix: Mixes two values 3548be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3549be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns start + ((stop - start) * fraction). 3550be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 35516386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * This can be useful for mixing two values. For example, to create a new color that is 35526386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * 40% color1 and 60% color2, use mix(color1, color2, 0.6f). 3553be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 3554be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 3555be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet mix(float start, float stop, float fraction); 3556be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3557be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 3558be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet mix(float2 start, float2 stop, float2 fraction); 3559be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3560be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 3561be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet mix(float3 start, float3 stop, float3 fraction); 3562be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3563be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 3564be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet mix(float4 start, float4 stop, float4 fraction); 3565be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3566d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3567586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 3568586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar mix(half start, half stop, half fraction); 3569586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3570586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3571d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3572586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 3573586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar mix(half2 start, half2 stop, half2 fraction); 3574586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3575586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3576d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3577586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 3578586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar mix(half3 start, half3 stop, half3 fraction); 3579586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3580586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3581d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3582586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 3583586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar mix(half4 start, half4 stop, half4 fraction); 3584586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3585586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3586be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 3587be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet mix(float2 start, float2 stop, float fraction); 3588be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3589be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 3590be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet mix(float3 start, float3 stop, float fraction); 3591be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3592be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 3593be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet mix(float4 start, float4 stop, float fraction); 3594be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3595d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3596586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 3597586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar mix(half2 start, half2 stop, half fraction); 3598586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3599586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3600d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3601586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 3602586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar mix(half3 start, half3 stop, half fraction); 3603586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3604586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3605d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3606586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 3607586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar mix(half4 start, half4 stop, half fraction); 3608586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3609586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3610be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 3611be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * modf: Integral and fractional components 3612be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3613be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the integral and fractional components of a number. 3614be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 36156386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * Both components will have the same sign as x. For example, for an input of -3.72f, 3616e6128fff9f6b64ae5bebe0f01de2ea1bfaba8ef8Pirama Arumuga Nainar * *integral_part will be set to -3.f and .72f will be returned. 3617be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3618be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 36196386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * v: Source value. 36204a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * integral_part: *integral_part will be set to the integral portion of the number. 3621be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 36226386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * Returns: Floating point portion of the value. 3623be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 3624be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((overloadable)) 3625be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet modf(float v, float* integral_part); 3626be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3627be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((overloadable)) 3628be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet modf(float2 v, float2* integral_part); 3629be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3630be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((overloadable)) 3631be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet modf(float3 v, float3* integral_part); 3632be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3633be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((overloadable)) 3634be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet modf(float4 v, float4* integral_part); 3635be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3636d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 36378b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half __attribute__((overloadable)) 36388b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar modf(half v, half* integral_part); 36398b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 36408b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 3641d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 36428b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half2 __attribute__((overloadable)) 36438b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar modf(half2 v, half2* integral_part); 36448b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 36458b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 3646d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 36478b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half3 __attribute__((overloadable)) 36488b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar modf(half3 v, half3* integral_part); 36498b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 36508b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 3651d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 36528b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainarextern half4 __attribute__((overloadable)) 36538b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar modf(half4 v, half4* integral_part); 36548b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar#endif 36558b5b941b1123afe748c45be67d6c8b4e22de1df6Pirama Arumuga Nainar 3656be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 3657be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * nan: Not a Number 3658be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3659be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns a NaN value (Not a Number). 3660be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3661be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 36624a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * v: Not used. 3663be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 3664be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 3665be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet nan(uint v); 3666be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3667be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 3668586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar * nan_half: Not a Number 3669586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar * 3670586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar * Returns a half-precision floating point NaN value (Not a Number). 3671586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar */ 3672d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3673586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 3674586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar nan_half(void); 3675586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3676586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3677586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar/* 3678be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_acos: Approximate inverse cosine 3679be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3680be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate inverse cosine, in radians. 3681be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 36826386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * This function yields undefined results from input values less than -1 or greater than 1. 3683be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3684be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also acos(). 3685be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 3686be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3687be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 3688be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_acos(float v); 3689be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3690be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3691be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3692be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 3693be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_acos(float2 v); 3694be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3695be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3696be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3697be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 3698be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_acos(float3 v); 3699be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3700be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3701be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3702be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 3703be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_acos(float4 v); 3704be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3705be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3706d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3707586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 3708586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_acos(half v); 3709586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3710586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3711d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3712586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 3713586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_acos(half2 v); 3714586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3715586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3716d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3717586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 3718586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_acos(half3 v); 3719586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3720586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3721d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3722586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 3723586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_acos(half4 v); 3724586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3725586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3726be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 3727be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_acosh: Approximate inverse hyperbolic cosine 3728be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3729be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate inverse hyperbolic cosine, in radians. 3730be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3731be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also acosh(). 3732be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 3733be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3734be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 3735be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_acosh(float v); 3736be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3737be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3738be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3739be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 3740be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_acosh(float2 v); 3741be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3742be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3743be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3744be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 3745be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_acosh(float3 v); 3746be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3747be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3748be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3749be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 3750be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_acosh(float4 v); 3751be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3752be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3753d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3754586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 3755586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_acosh(half v); 3756586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3757586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3758d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3759586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 3760586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_acosh(half2 v); 3761586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3762586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3763d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3764586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 3765586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_acosh(half3 v); 3766586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3767586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3768d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3769586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 3770586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_acosh(half4 v); 3771586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3772586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3773be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 3774be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_acospi: Approximate inverse cosine divided by pi 3775be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3776be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate inverse cosine in radians, divided by pi. 3777be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3778be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get an inverse cosine measured in degrees, use acospi(a) * 180.f. 3779be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 37806386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * This function yields undefined results from input values less than -1 or greater than 1. 3781be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3782be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also acospi(). 3783be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 3784be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3785be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 3786be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_acospi(float v); 3787be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3788be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3789be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3790be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 3791be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_acospi(float2 v); 3792be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3793be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3794be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3795be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 3796be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_acospi(float3 v); 3797be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3798be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3799be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3800be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 3801be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_acospi(float4 v); 3802be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3803be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3804d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3805586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 3806586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_acospi(half v); 3807586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3808586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3809d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3810586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 3811586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_acospi(half2 v); 3812586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3813586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3814d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3815586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 3816586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_acospi(half3 v); 3817586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3818586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3819d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3820586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 3821586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_acospi(half4 v); 3822586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3823586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3824be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 3825be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_asin: Approximate inverse sine 3826be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3827be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate inverse sine, in radians. 3828be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 38296386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * This function yields undefined results from input values less than -1 or greater than 1. 3830be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3831be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also asin(). 3832be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 3833be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3834be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 3835be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_asin(float v); 3836be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3837be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3838be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3839be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 3840be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_asin(float2 v); 3841be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3842be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3843be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3844be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 3845be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_asin(float3 v); 3846be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3847be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3848be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3849be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 3850be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_asin(float4 v); 3851be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3852be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3853d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3854586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 3855586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_asin(half v); 3856586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3857586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3858d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3859586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 3860586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_asin(half2 v); 3861586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3862586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3863d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3864586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 3865586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_asin(half3 v); 3866586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3867586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3868d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3869586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 3870586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_asin(half4 v); 3871586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3872586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3873be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 3874be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_asinh: Approximate inverse hyperbolic sine 3875be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3876be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate inverse hyperbolic sine, in radians. 3877be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3878be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also asinh(). 3879be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 3880be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3881be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 3882be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_asinh(float v); 3883be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3884be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3885be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3886be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 3887be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_asinh(float2 v); 3888be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3889be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3890be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3891be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 3892be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_asinh(float3 v); 3893be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3894be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3895be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3896be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 3897be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_asinh(float4 v); 3898be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3899be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3900d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3901586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 3902586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_asinh(half v); 3903586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3904586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3905d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3906586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 3907586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_asinh(half2 v); 3908586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3909586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3910d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3911586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 3912586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_asinh(half3 v); 3913586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3914586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3915d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3916586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 3917586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_asinh(half4 v); 3918586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3919586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3920be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 3921be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_asinpi: Approximate inverse sine divided by pi 3922be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3923be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate inverse sine in radians, divided by pi. 3924be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3925be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get an inverse sine measured in degrees, use asinpi(a) * 180.f. 3926be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 39276386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * This function yields undefined results from input values less than -1 or greater than 1. 3928be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3929be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also asinpi(). 3930be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 3931be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3932be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 3933be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_asinpi(float v); 3934be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3935be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3936be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3937be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 3938be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_asinpi(float2 v); 3939be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3940be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3941be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3942be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 3943be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_asinpi(float3 v); 3944be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3945be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3946be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3947be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 3948be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_asinpi(float4 v); 3949be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3950be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3951d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3952586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 3953586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_asinpi(half v); 3954586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3955586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3956d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3957586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 3958586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_asinpi(half2 v); 3959586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3960586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3961d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3962586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 3963586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_asinpi(half3 v); 3964586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3965586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3966d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3967586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 3968586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_asinpi(half4 v); 3969586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 3970586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 3971be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 3972be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_atan: Approximate inverse tangent 3973be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3974be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate inverse tangent, in radians. 3975be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 3976be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also atan(). 3977be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 3978be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3979be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 3980be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atan(float v); 3981be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3982be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3983be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3984be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 3985be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atan(float2 v); 3986be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3987be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3988be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3989be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 3990be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atan(float3 v); 3991be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3992be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3993be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 3994be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 3995be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atan(float4 v); 3996be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 3997be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 3998d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 3999586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4000586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atan(half v); 4001586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4002586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4003d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4004586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4005586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atan(half2 v); 4006586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4007586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4008d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4009586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4010586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atan(half3 v); 4011586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4012586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4013d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4014586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4015586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atan(half4 v); 4016586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4017586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4018be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4019be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_atan2: Approximate inverse tangent of a ratio 4020be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4021be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate inverse tangent of (numerator / denominator), in radians. 4022be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4023be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also atan2(). 4024be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4025be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 40266386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * numerator: Numerator. 40276386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * denominator: Denominator. Can be 0. 4028be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4029be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4030be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4031be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atan2(float numerator, float denominator); 4032be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4033be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4034be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4035be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4036be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atan2(float2 numerator, float2 denominator); 4037be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4038be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4039be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4040be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4041be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atan2(float3 numerator, float3 denominator); 4042be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4043be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4044be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4045be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4046be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atan2(float4 numerator, float4 denominator); 4047be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4048be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4049d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4050586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4051586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atan2(half numerator, half denominator); 4052586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4053586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4054d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4055586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4056586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atan2(half2 numerator, half2 denominator); 4057586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4058586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4059d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4060586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4061586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atan2(half3 numerator, half3 denominator); 4062586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4063586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4064d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4065586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4066586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atan2(half4 numerator, half4 denominator); 4067586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4068586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4069be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4070be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_atan2pi: Approximate inverse tangent of a ratio, divided by pi 4071be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 40726386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * Returns the approximate inverse tangent of (numerator / denominator), 40736386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * in radians, divided by pi. 4074be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4075be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get an inverse tangent measured in degrees, use atan2pi(n, d) * 180.f. 4076be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4077be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also atan2pi(). 4078be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4079be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 40806386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * numerator: Numerator. 40816386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * denominator: Denominator. Can be 0. 4082be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4083be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4084be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4085be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atan2pi(float numerator, float denominator); 4086be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4087be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4088be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4089be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4090be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atan2pi(float2 numerator, float2 denominator); 4091be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4092be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4093be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4094be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4095be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atan2pi(float3 numerator, float3 denominator); 4096be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4097be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4098be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4099be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4100be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atan2pi(float4 numerator, float4 denominator); 4101be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4102be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4103d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4104586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4105586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atan2pi(half numerator, half denominator); 4106586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4107586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4108d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4109586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4110586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atan2pi(half2 numerator, half2 denominator); 4111586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4112586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4113d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4114586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4115586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atan2pi(half3 numerator, half3 denominator); 4116586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4117586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4118d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4119586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4120586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atan2pi(half4 numerator, half4 denominator); 4121586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4122586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4123be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4124be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_atanh: Approximate inverse hyperbolic tangent 4125be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4126be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate inverse hyperbolic tangent, in radians. 4127be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4128be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also atanh(). 4129be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4130be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4131be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4132be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atanh(float v); 4133be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4134be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4135be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4136be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4137be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atanh(float2 v); 4138be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4139be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4140be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4141be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4142be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atanh(float3 v); 4143be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4144be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4145be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4146be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4147be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atanh(float4 v); 4148be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4149be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4150d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4151586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4152586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atanh(half v); 4153586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4154586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4155d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4156586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4157586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atanh(half2 v); 4158586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4159586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4160d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4161586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4162586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atanh(half3 v); 4163586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4164586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4165d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4166586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4167586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atanh(half4 v); 4168586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4169586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4170be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4171be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_atanpi: Approximate inverse tangent divided by pi 4172be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4173be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate inverse tangent in radians, divided by pi. 4174be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4175be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get an inverse tangent measured in degrees, use atanpi(a) * 180.f. 4176be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4177be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also atanpi(). 4178be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4179be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4180be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4181be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atanpi(float v); 4182be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4183be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4184be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4185be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4186be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atanpi(float2 v); 4187be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4188be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4189be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4190be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4191be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atanpi(float3 v); 4192be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4193be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4194be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4195be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4196be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_atanpi(float4 v); 4197be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4198be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4199d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4200586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4201586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atanpi(half v); 4202586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4203586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4204d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4205586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4206586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atanpi(half2 v); 4207586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4208586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4209d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4210586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4211586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atanpi(half3 v); 4212586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4213586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4214d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4215586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4216586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_atanpi(half4 v); 4217586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4218586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4219be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4220be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_cbrt: Approximate cube root 4221be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4222be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate cubic root. 4223be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4224be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also cbrt(). 4225be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4226be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4227be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4228be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cbrt(float v); 4229be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4230be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4231be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4232be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4233be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cbrt(float2 v); 4234be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4235be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4236be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4237be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4238be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cbrt(float3 v); 4239be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4240be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4241be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4242be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4243be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cbrt(float4 v); 4244be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4245be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4246d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4247586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4248586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cbrt(half v); 4249586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4250586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4251d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4252586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4253586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cbrt(half2 v); 4254586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4255586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4256d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4257586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4258586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cbrt(half3 v); 4259586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4260586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4261d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4262586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4263586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cbrt(half4 v); 4264586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4265586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4266be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4267be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_cos: Approximate cosine 4268be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4269be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate cosine of an angle measured in radians. 4270be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4271be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also cos(). 4272be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4273be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4274be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4275be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cos(float v); 4276be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4277be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4278be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4279be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4280be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cos(float2 v); 4281be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4282be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4283be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4284be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4285be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cos(float3 v); 4286be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4287be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4288be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4289be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4290be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cos(float4 v); 4291be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4292be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4293d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4294586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4295586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cos(half v); 4296586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4297586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4298d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4299586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4300586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cos(half2 v); 4301586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4302586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4303d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4304586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4305586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cos(half3 v); 4306586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4307586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4308d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4309586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4310586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cos(half4 v); 4311586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4312586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4313be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4314be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_cosh: Approximate hypebolic cosine 4315be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4316be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate hypebolic cosine. 4317be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4318be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also cosh(). 4319be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4320be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4321be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4322be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cosh(float v); 4323be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4324be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4325be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4326be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4327be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cosh(float2 v); 4328be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4329be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4330be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4331be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4332be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cosh(float3 v); 4333be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4334be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4335be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4336be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4337be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cosh(float4 v); 4338be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4339be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4340d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4341586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4342586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cosh(half v); 4343586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4344586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4345d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4346586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4347586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cosh(half2 v); 4348586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4349586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4350d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4351586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4352586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cosh(half3 v); 4353586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4354586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4355d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4356586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4357586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cosh(half4 v); 4358586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4359586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4360586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar/* 4361be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_cospi: Approximate cosine of a number multiplied by pi 4362be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4363be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate cosine of (v * pi), where (v * pi) is measured in radians. 4364be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4365be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get the cosine of a value measured in degrees, call cospi(v / 180.f). 4366be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4367be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also cospi(). 4368be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4369be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4370be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4371be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cospi(float v); 4372be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4373be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4374be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4375be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4376be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cospi(float2 v); 4377be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4378be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4379be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4380be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4381be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cospi(float3 v); 4382be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4383be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4384be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4385be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4386be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_cospi(float4 v); 4387be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4388be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4389d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4390586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4391586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cospi(half v); 4392586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4393586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4394d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4395586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4396586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cospi(half2 v); 4397586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4398586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4399d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4400586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4401586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cospi(half3 v); 4402586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4403586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4404d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4405586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4406586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_cospi(half4 v); 4407586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4408586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4409be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4410be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_divide: Approximate division 4411be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4412be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Computes the approximate division of two values. 4413be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4414be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4415be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4416be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_divide(float left_vector, float right_vector); 4417be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4418be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4419be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4420be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4421be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_divide(float2 left_vector, float2 right_vector); 4422be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4423be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4424be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4425be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4426be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_divide(float3 left_vector, float3 right_vector); 4427be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4428be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4429be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4430be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4431be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_divide(float4 left_vector, float4 right_vector); 4432be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4433be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4434d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4435586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4436586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_divide(half left_vector, half right_vector); 4437586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4438586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4439d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4440586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4441586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_divide(half2 left_vector, half2 right_vector); 4442586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4443586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4444d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4445586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4446586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_divide(half3 left_vector, half3 right_vector); 4447586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4448586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4449d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4450586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4451586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_divide(half4 left_vector, half4 right_vector); 4452586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4453586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4454be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4455be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_exp: Approximate e raised to a number 4456be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4457be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Fast approximate exp. 4458be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 44596386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * It is valid for inputs from -86.f to 86.f. The precision is no worse than what would be 44606386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * expected from using 16 bit floating point values. 4461be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4462be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also exp(). 4463be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4464be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4465be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4466be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_exp(float v); 4467be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4468be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4469be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4470be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4471be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_exp(float2 v); 4472be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4473be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4474be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4475be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4476be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_exp(float3 v); 4477be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4478be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4479be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4480be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4481be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_exp(float4 v); 4482be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4483be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4484d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4485586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4486586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_exp(half v); 4487586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4488586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4489d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4490586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4491586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_exp(half2 v); 4492586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4493586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4494d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4495586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4496586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_exp(half3 v); 4497586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4498586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4499d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4500586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4501586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_exp(half4 v); 4502586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4503586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4504be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4505be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_exp10: Approximate 10 raised to a number 4506be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4507be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Fast approximate exp10. 4508be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 45096386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * It is valid for inputs from -37.f to 37.f. The precision is no worse than what would be 45106386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * expected from using 16 bit floating point values. 4511be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4512be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also exp10(). 4513be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4514be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4515be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4516be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_exp10(float v); 4517be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4518be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4519be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4520be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4521be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_exp10(float2 v); 4522be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4523be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4524be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4525be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4526be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_exp10(float3 v); 4527be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4528be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4529be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4530be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4531be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_exp10(float4 v); 4532be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4533be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4534d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4535586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4536586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_exp10(half v); 4537586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4538586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4539d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4540586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4541586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_exp10(half2 v); 4542586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4543586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4544d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4545586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4546586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_exp10(half3 v); 4547586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4548586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4549d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4550586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4551586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_exp10(half4 v); 4552586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4553586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4554be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4555be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_exp2: Approximate 2 raised to a number 4556be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4557be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Fast approximate exp2. 4558be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 45596386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * It is valid for inputs from -125.f to 125.f. The precision is no worse than what would be 45606386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * expected from using 16 bit floating point values. 4561be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4562be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also exp2(). 4563be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4564be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4565be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4566be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_exp2(float v); 4567be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4568be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4569be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4570be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4571be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_exp2(float2 v); 4572be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4573be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4574be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4575be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4576be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_exp2(float3 v); 4577be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4578be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4579be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4580be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4581be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_exp2(float4 v); 4582be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4583be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4584d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4585586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4586586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_exp2(half v); 4587586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4588586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4589d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4590586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4591586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_exp2(half2 v); 4592586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4593586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4594d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4595586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4596586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_exp2(half3 v); 4597586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4598586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4599d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4600586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4601586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_exp2(half4 v); 4602586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4603586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4604be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4605be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_expm1: Approximate e raised to a number minus one 4606be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4607be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate (e ^ v) - 1. 4608be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4609be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also expm1(). 4610be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4611be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4612be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4613be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_expm1(float v); 4614be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4615be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4616be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4617be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4618be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_expm1(float2 v); 4619be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4620be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4621be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4622be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4623be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_expm1(float3 v); 4624be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4625be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4626be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4627be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4628be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_expm1(float4 v); 4629be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4630be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4631d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4632586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4633586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_expm1(half v); 4634586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4635586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4636d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4637586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4638586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_expm1(half2 v); 4639586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4640586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4641d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4642586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4643586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_expm1(half3 v); 4644586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4645586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4646d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4647586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4648586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_expm1(half4 v); 4649586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4650586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4651be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4652be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_hypot: Approximate hypotenuse 4653be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4654be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate native_sqrt(a * a + b * b) 4655be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4656be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also hypot(). 4657be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4658be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4659be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4660be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_hypot(float a, float b); 4661be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4662be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4663be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4664be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4665be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_hypot(float2 a, float2 b); 4666be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4667be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4668be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4669be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4670be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_hypot(float3 a, float3 b); 4671be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4672be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4673be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4674be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4675be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_hypot(float4 a, float4 b); 4676be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4677be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4678d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4679586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4680586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_hypot(half a, half b); 4681586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4682586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4683d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4684586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4685586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_hypot(half2 a, half2 b); 4686586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4687586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4688d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4689586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4690586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_hypot(half3 a, half3 b); 4691586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4692586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4693d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4694586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4695586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_hypot(half4 a, half4 b); 4696586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4697586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4698be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4699be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_log: Approximate natural logarithm 4700be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4701be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Fast approximate log. 4702be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4703be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * It is not accurate for values very close to zero. 4704be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4705be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also log(). 4706be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4707be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4708be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4709be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log(float v); 4710be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4711be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4712be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4713be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4714be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log(float2 v); 4715be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4716be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4717be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4718be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4719be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log(float3 v); 4720be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4721be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4722be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4723be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4724be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log(float4 v); 4725be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4726be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4727d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4728586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4729586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log(half v); 4730586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4731586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4732d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4733586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4734586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log(half2 v); 4735586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4736586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4737d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4738586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4739586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log(half3 v); 4740586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4741586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4742d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4743586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4744586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log(half4 v); 4745586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4746586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4747be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4748be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_log10: Approximate base 10 logarithm 4749be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4750be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Fast approximate log10. 4751be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4752be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * It is not accurate for values very close to zero. 4753be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4754be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also log10(). 4755be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4756be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4757be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4758be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log10(float v); 4759be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4760be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4761be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4762be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4763be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log10(float2 v); 4764be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4765be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4766be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4767be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4768be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log10(float3 v); 4769be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4770be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4771be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4772be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4773be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log10(float4 v); 4774be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4775be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4776d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4777586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4778586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log10(half v); 4779586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4780586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4781d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4782586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4783586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log10(half2 v); 4784586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4785586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4786d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4787586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4788586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log10(half3 v); 4789586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4790586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4791d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4792586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4793586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log10(half4 v); 4794586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4795586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4796be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4797be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_log1p: Approximate natural logarithm of a value plus 1 4798be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4799be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate natural logarithm of (v + 1.0f) 4800be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4801be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also log1p(). 4802be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4803be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4804be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4805be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log1p(float v); 4806be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4807be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4808be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4809be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4810be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log1p(float2 v); 4811be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4812be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4813be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4814be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4815be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log1p(float3 v); 4816be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4817be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4818be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4819be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4820be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log1p(float4 v); 4821be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4822be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4823d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4824586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4825586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log1p(half v); 4826586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4827586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4828d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4829586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4830586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log1p(half2 v); 4831586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4832586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4833d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4834586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4835586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log1p(half3 v); 4836586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4837586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4838d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4839586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4840586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log1p(half4 v); 4841586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4842586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4843be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4844be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_log2: Approximate base 2 logarithm 4845be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4846be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Fast approximate log2. 4847be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4848be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * It is not accurate for values very close to zero. 4849be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4850be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also log2(). 4851be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4852be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4853be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4854be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log2(float v); 4855be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4856be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4857be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4858be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4859be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log2(float2 v); 4860be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4861be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4862be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4863be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4864be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log2(float3 v); 4865be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4866be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4867be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4868be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4869be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_log2(float4 v); 4870be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4871be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4872d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4873586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4874586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log2(half v); 4875586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4876586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4877d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4878586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4879586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log2(half2 v); 4880586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4881586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4882d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4883586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4884586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log2(half3 v); 4885586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4886586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4887d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4888586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4889586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_log2(half4 v); 4890586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4891586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4892be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4893be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_powr: Approximate positive base raised to an exponent 4894be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4895be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Fast approximate (base ^ exponent). 4896be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4897be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also powr(). 4898be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4899be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 49004a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * base: Must be between 0.f and 256.f. The function is not accurate for values very close to zero. 49014a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * exponent: Must be between -15.f and 15.f. 4902be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4903be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4904be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4905be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_powr(float base, float exponent); 4906be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4907be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4908be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4909be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4910be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_powr(float2 base, float2 exponent); 4911be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4912be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4913be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4914be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4915be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_powr(float3 base, float3 exponent); 4916be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4917be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4918be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 18)) 4919be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4920be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_powr(float4 base, float4 exponent); 4921be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4922be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4923d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4924586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4925586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_powr(half base, half exponent); 4926586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4927586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4928d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4929586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4930586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_powr(half2 base, half2 exponent); 4931586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4932586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4933d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4934586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4935586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_powr(half3 base, half3 exponent); 4936586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4937586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4938d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4939586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4940586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_powr(half4 base, half4 exponent); 4941586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4942586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4943be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4944be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_recip: Approximate reciprocal 4945be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4946be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate approximate reciprocal of a value. 4947be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4948be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also half_recip(). 4949be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4950be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4951be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4952be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_recip(float v); 4953be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4954be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4955be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4956be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 4957be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_recip(float2 v); 4958be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4959be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4960be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4961be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 4962be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_recip(float3 v); 4963be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4964be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4965be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4966be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 4967be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_recip(float4 v); 4968be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 4969be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 4970d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4971586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 4972586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_recip(half v); 4973586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4974586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4975d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4976586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 4977586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_recip(half2 v); 4978586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4979586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4980d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4981586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 4982586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_recip(half3 v); 4983586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4984586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4985d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 4986586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 4987586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_recip(half4 v); 4988586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 4989586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 4990be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 4991be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_rootn: Approximate nth root 4992be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4993be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Compute the approximate Nth root of a value. 4994be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 4995be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also rootn(). 4996be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 4997be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 4998be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 4999be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_rootn(float v, int n); 5000be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5001be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5002be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5003be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5004be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_rootn(float2 v, int2 n); 5005be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5006be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5007be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5008be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5009be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_rootn(float3 v, int3 n); 5010be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5011be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5012be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5013be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5014be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_rootn(float4 v, int4 n); 5015be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5016be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5017d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5018586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5019586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_rootn(half v, int n); 5020586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5021586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5022d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5023586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5024586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_rootn(half2 v, int2 n); 5025586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5026586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5027d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5028586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5029586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_rootn(half3 v, int3 n); 5030586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5031586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5032d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5033586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5034586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_rootn(half4 v, int4 n); 5035586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5036586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5037be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5038be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_rsqrt: Approximate reciprocal of a square root 5039be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5040be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns approximate (1 / sqrt(v)). 5041be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5042be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also rsqrt(), half_rsqrt(). 5043be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5044be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5045be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5046be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_rsqrt(float v); 5047be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5048be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5049be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5050be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5051be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_rsqrt(float2 v); 5052be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5053be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5054be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5055be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5056be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_rsqrt(float3 v); 5057be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5058be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5059be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5060be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5061be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_rsqrt(float4 v); 5062be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5063be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5064d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5065586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5066586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_rsqrt(half v); 5067586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5068586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5069d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5070586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5071586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_rsqrt(half2 v); 5072586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5073586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5074d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5075586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5076586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_rsqrt(half3 v); 5077586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5078586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5079d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5080586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5081586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_rsqrt(half4 v); 5082586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5083586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5084be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5085be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_sin: Approximate sine 5086be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5087be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate sine of an angle measured in radians. 5088be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5089be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also sin(). 5090be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5091be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5092be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5093be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sin(float v); 5094be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5095be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5096be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5097be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5098be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sin(float2 v); 5099be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5100be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5101be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5102be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5103be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sin(float3 v); 5104be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5105be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5106be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5107be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5108be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sin(float4 v); 5109be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5110be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5111d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5112586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5113586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sin(half v); 5114586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5115586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5116d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5117586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5118586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sin(half2 v); 5119586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5120586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5121d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5122586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5123586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sin(half3 v); 5124586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5125586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5126d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5127586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5128586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sin(half4 v); 5129586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5130586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5131be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5132be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_sincos: Approximate sine and cosine 5133be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5134be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate sine and cosine of a value. 5135be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5136be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also sincos(). 5137be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5138be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 51396386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * v: Incoming value in radians. 51404a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * cos: *cos will be set to the cosine value. 5141be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 51426386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * Returns: Sine. 5143be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5144be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5145be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((overloadable)) 5146be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sincos(float v, float* cos); 5147be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5148be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5149be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5150be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((overloadable)) 5151be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sincos(float2 v, float2* cos); 5152be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5153be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5154be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5155be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((overloadable)) 5156be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sincos(float3 v, float3* cos); 5157be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5158be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5159be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5160be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((overloadable)) 5161be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sincos(float4 v, float4* cos); 5162be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5163be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5164d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5165586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((overloadable)) 5166586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sincos(half v, half* cos); 5167586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5168586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5169d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5170586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((overloadable)) 5171586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sincos(half2 v, half2* cos); 5172586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5173586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5174d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5175586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((overloadable)) 5176586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sincos(half3 v, half3* cos); 5177586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5178586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5179d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5180586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((overloadable)) 5181586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sincos(half4 v, half4* cos); 5182586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5183586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5184be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5185be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_sinh: Approximate hyperbolic sine 5186be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5187be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate hyperbolic sine of a value specified in radians. 5188be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5189be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also sinh(). 5190be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5191be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5192be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5193be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sinh(float v); 5194be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5195be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5196be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5197be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5198be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sinh(float2 v); 5199be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5200be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5201be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5202be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5203be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sinh(float3 v); 5204be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5205be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5206be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5207be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5208be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sinh(float4 v); 5209be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5210be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5211d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5212586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5213586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sinh(half v); 5214586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5215586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5216d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5217586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5218586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sinh(half2 v); 5219586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5220586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5221d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5222586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5223586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sinh(half3 v); 5224586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5225586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5226d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5227586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5228586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sinh(half4 v); 5229586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5230586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5231be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5232be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_sinpi: Approximate sine of a number multiplied by pi 5233be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5234be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate sine of (v * pi), where (v * pi) is measured in radians. 5235be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5236be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get the sine of a value measured in degrees, call sinpi(v / 180.f). 5237be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5238be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also sinpi(). 5239be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5240be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5241be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5242be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sinpi(float v); 5243be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5244be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5245be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5246be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5247be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sinpi(float2 v); 5248be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5249be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5250be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5251be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5252be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sinpi(float3 v); 5253be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5254be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5255be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5256be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5257be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sinpi(float4 v); 5258be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5259be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5260d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5261586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5262586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sinpi(half v); 5263586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5264586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5265d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5266586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5267586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sinpi(half2 v); 5268586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5269586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5270d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5271586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5272586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sinpi(half3 v); 5273586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5274586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5275d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5276586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5277586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sinpi(half4 v); 5278586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5279586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5280be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5281be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_sqrt: Approximate square root 5282be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5283be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate sqrt(v). 5284be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5285be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also sqrt(), half_sqrt(). 5286be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5287be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5288be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5289be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sqrt(float v); 5290be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5291be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5292be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5293be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5294be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sqrt(float2 v); 5295be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5296be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5297be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5298be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5299be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sqrt(float3 v); 5300be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5301be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5302be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5303be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5304be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_sqrt(float4 v); 5305be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5306be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5307d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5308586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5309586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sqrt(half v); 5310586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5311586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5312d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5313586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5314586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sqrt(half2 v); 5315586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5316586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5317d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5318586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5319586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sqrt(half3 v); 5320586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5321586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5322d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5323586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5324586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_sqrt(half4 v); 5325586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5326586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5327be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5328be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_tan: Approximate tangent 5329be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5330be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate tangent of an angle measured in radians. 5331be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5332be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5333be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5334be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_tan(float v); 5335be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5336be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5337be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5338be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5339be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_tan(float2 v); 5340be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5341be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5342be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5343be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5344be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_tan(float3 v); 5345be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5346be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5347be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5348be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5349be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_tan(float4 v); 5350be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5351be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5352d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5353586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5354586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_tan(half v); 5355586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5356586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5357d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5358586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5359586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_tan(half2 v); 5360586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5361586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5362d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5363586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5364586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_tan(half3 v); 5365586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5366586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5367d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5368586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5369586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_tan(half4 v); 5370586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5371586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5372be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5373be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_tanh: Approximate hyperbolic tangent 5374be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5375be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate hyperbolic tangent of a value. 5376be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5377be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also tanh(). 5378be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5379be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5380be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5381be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_tanh(float v); 5382be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5383be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5384be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5385be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5386be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_tanh(float2 v); 5387be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5388be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5389be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5390be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5391be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_tanh(float3 v); 5392be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5393be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5394be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5395be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5396be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_tanh(float4 v); 5397be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5398be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5399d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5400586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5401586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_tanh(half v); 5402586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5403586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5404d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5405586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5406586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_tanh(half2 v); 5407586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5408586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5409d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5410586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5411586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_tanh(half3 v); 5412586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5413586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5414d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5415586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5416586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_tanh(half4 v); 5417586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5418586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5419be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5420be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * native_tanpi: Approximate tangent of a number multiplied by pi 5421be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5422be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the approximate tangent of (v * pi), where (v * pi) is measured in radians. 5423be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5424be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get the tangent of a value measured in degrees, call tanpi(v / 180.f). 5425be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5426be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also tanpi(). 5427be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5428be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5429be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5430be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_tanpi(float v); 5431be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5432be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5433be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5434be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5435be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_tanpi(float2 v); 5436be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5437be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5438be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5439be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5440be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_tanpi(float3 v); 5441be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5442be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5443be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 5444be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5445be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet native_tanpi(float4 v); 5446be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 5447be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5448d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5449586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5450586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_tanpi(half v); 5451586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5452586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5453d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5454586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5455586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_tanpi(half2 v); 5456586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5457586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5458d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5459586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5460586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_tanpi(half3 v); 5461586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5462586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5463d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5464586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5465586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar native_tanpi(half4 v); 5466586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5467586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5468be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5469be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * nextafter: Next floating point number 5470be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5471be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the next representable floating point number from v towards target. 5472be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 54736386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * In rs_fp_relaxed mode, a denormalized input value may not yield the next denormalized 54746386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * value, as support of denormalized values is optional in relaxed mode. 5475be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5476be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5477be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet nextafter(float v, float target); 5478be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5479be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5480be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet nextafter(float2 v, float2 target); 5481be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5482be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5483be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet nextafter(float3 v, float3 target); 5484be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5485be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5486be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet nextafter(float4 v, float4 target); 5487be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5488d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5489f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5490f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar nextafter(half v, half target); 5491f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar#endif 5492f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar 5493d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5494f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5495f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar nextafter(half2 v, half2 target); 5496f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar#endif 5497f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar 5498d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5499f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5500f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar nextafter(half3 v, half3 target); 5501f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar#endif 5502f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar 5503d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5504f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5505f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar nextafter(half4 v, half4 target); 5506f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar#endif 5507f86ea3f450f2e8c68e8660cf348f6cf480994af2Pirama Arumuga Nainar 5508be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5509be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * pow: Base raised to an exponent 5510be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5511be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns base raised to the power exponent, i.e. base ^ exponent. 5512be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 55136386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * pown() and powr() are similar. pown() takes an integer exponent. powr() assumes the 55146386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * base to be non-negative. 5515be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5516be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5517be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet pow(float base, float exponent); 5518be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5519be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5520be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet pow(float2 base, float2 exponent); 5521be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5522be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5523be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet pow(float3 base, float3 exponent); 5524be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5525be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5526be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet pow(float4 base, float4 exponent); 5527be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5528d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5529586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5530586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar pow(half base, half exponent); 5531586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5532586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5533d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5534586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5535586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar pow(half2 base, half2 exponent); 5536586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5537586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5538d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5539586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5540586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar pow(half3 base, half3 exponent); 5541586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5542586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5543d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5544586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5545586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar pow(half4 base, half4 exponent); 5546586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5547586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5548be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5549be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * pown: Base raised to an integer exponent 5550be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5551be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns base raised to the power exponent, i.e. base ^ exponent. 5552be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 55536386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * pow() and powr() are similar. The both take a float exponent. powr() also assumes the 55546386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * base to be non-negative. 5555386e87ecf4114084c10dd385edc1c2baebe80a04Jean-Luc Brouillet */ 5556be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5557be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet pown(float base, int exponent); 5558be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5559be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5560be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet pown(float2 base, int2 exponent); 5561be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5562be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5563be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet pown(float3 base, int3 exponent); 5564be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5565be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5566be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet pown(float4 base, int4 exponent); 5567be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5568d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5569586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5570586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar pown(half base, int exponent); 5571586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5572586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5573d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5574586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5575586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar pown(half2 base, int2 exponent); 5576586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5577586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5578d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5579586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5580586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar pown(half3 base, int3 exponent); 5581586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5582586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5583d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5584586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5585586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar pown(half4 base, int4 exponent); 5586586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5587586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5588be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5589be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * powr: Positive base raised to an exponent 5590be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5591be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns base raised to the power exponent, i.e. base ^ exponent. base must be >= 0. 5592be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 55936386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * pow() and pown() are similar. They both make no assumptions about the base. 55946386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * pow() takes a float exponent while pown() take an integer. 5595be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5596be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_powr(). 5597be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5598be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5599be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet powr(float base, float exponent); 5600be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5601be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5602be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet powr(float2 base, float2 exponent); 5603be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5604be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5605be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet powr(float3 base, float3 exponent); 5606be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5607be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5608be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet powr(float4 base, float4 exponent); 5609be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5610d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5611586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5612586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar powr(half base, half exponent); 5613586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5614586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5615d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5616586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5617586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar powr(half2 base, half2 exponent); 5618586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5619586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5620d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5621586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5622586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar powr(half3 base, half3 exponent); 5623586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5624586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5625d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5626586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5627586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar powr(half4 base, half4 exponent); 5628586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5629586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5630be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5631be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * radians: Converts degrees into radians 5632be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5633be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Converts from degrees to radians. 5634be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5635be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5636be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet radians(float v); 5637be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5638be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5639be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet radians(float2 v); 5640be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5641be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5642be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet radians(float3 v); 5643be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5644be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5645be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet radians(float4 v); 5646be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5647d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5648586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5649586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar radians(half v); 5650586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5651586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5652d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5653586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5654586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar radians(half2 v); 5655586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5656586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5657d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5658586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5659586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar radians(half3 v); 5660586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5661586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5662d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5663586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5664586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar radians(half4 v); 5665586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5666586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5667be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5668be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * remainder: Remainder of a division 5669be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 56706386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * Returns the remainder of (numerator / denominator), where the quotient is rounded towards 56716386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * the nearest integer. 5672be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5673be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * The function fmod() is similar but rounds toward the closest interger. 5674be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For example, fmod(-3.8f, 2.f) returns -1.8f (-3.8f - -1.f * 2.f) 5675be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * while remainder(-3.8f, 2.f) returns 0.2f (-3.8f - -2.f * 2.f). 5676be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5677be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5678be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet remainder(float numerator, float denominator); 5679be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5680be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5681be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet remainder(float2 numerator, float2 denominator); 5682be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5683be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5684be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet remainder(float3 numerator, float3 denominator); 5685be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5686be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5687be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet remainder(float4 numerator, float4 denominator); 5688be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5689d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5690586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5691586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar remainder(half numerator, half denominator); 5692586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5693586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5694d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5695586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5696586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar remainder(half2 numerator, half2 denominator); 5697586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5698586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5699d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5700586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5701586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar remainder(half3 numerator, half3 denominator); 5702586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5703586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5704d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5705586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5706586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar remainder(half4 numerator, half4 denominator); 5707586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5708586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5709be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5710be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * remquo: Remainder and quotient of a division 5711be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5712be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the quotient and the remainder of (numerator / denominator). 5713be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5714be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Only the sign and lowest three bits of the quotient are guaranteed to be accurate. 5715be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 57166386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * This function is useful for implementing periodic functions. The low three bits of the 57176386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * quotient gives the quadrant and the remainder the distance within the quadrant. 57186386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * For example, an implementation of sin(x) could call remquo(x, PI / 2.f, &quadrant) 57196386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * to reduce very large value of x to something within a limited range. 5720be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 57216386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * Example: remquo(-23.5f, 8.f, ") sets the lowest three bits of quot to 3 57226386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * and the sign negative. It returns 0.5f. 5723be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5724be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 57256386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * numerator: Numerator. 57266386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * denominator: Denominator. 57274a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * quotient: *quotient will be set to the integer quotient. 5728be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 57296386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * Returns: Remainder, precise only for the low three bits. 5730be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5731be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((overloadable)) 5732be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet remquo(float numerator, float denominator, int* quotient); 5733be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5734be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((overloadable)) 5735be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet remquo(float2 numerator, float2 denominator, int2* quotient); 5736be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5737be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((overloadable)) 5738be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet remquo(float3 numerator, float3 denominator, int3* quotient); 5739be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5740be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((overloadable)) 5741be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet remquo(float4 numerator, float4 denominator, int4* quotient); 5742be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5743d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5744586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((overloadable)) 5745586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar remquo(half numerator, half denominator, int* quotient); 5746586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5747586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5748d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5749586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((overloadable)) 5750586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar remquo(half2 numerator, half2 denominator, int2* quotient); 5751586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5752586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5753d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5754586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((overloadable)) 5755586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar remquo(half3 numerator, half3 denominator, int3* quotient); 5756586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5757586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5758d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5759586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((overloadable)) 5760586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar remquo(half4 numerator, half4 denominator, int4* quotient); 5761586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5762586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5763be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5764be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rint: Round to even 5765be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5766be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Rounds to the nearest integral value. 5767be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 57686386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * rint() rounds half values to even. For example, rint(0.5f) returns 0.f and 57696386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * rint(1.5f) returns 2.f. Similarly, rint(-0.5f) returns -0.f and 57706386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * rint(-1.5f) returns -2.f. 5771be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5772be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * round() is similar but rounds away from zero. trunc() truncates the decimal fraction. 5773be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5774be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5775be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rint(float v); 5776be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5777be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5778be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rint(float2 v); 5779be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5780be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5781be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rint(float3 v); 5782be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5783be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5784be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rint(float4 v); 5785be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5786d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5787586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5788586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar rint(half v); 5789586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5790586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5791d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5792586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5793586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar rint(half2 v); 5794586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5795586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5796d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5797586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5798586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar rint(half3 v); 5799586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5800586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5801d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5802586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5803586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar rint(half4 v); 5804586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5805586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5806be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5807be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rootn: Nth root 5808be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5809be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Compute the Nth root of a value. 5810be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5811be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_rootn(). 5812be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5813be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5814be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rootn(float v, int n); 5815be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5816be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5817be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rootn(float2 v, int2 n); 5818be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5819be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5820be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rootn(float3 v, int3 n); 5821be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5822be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5823be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rootn(float4 v, int4 n); 5824be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5825d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5826586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5827586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar rootn(half v, int n); 5828586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5829586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5830d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5831586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5832586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar rootn(half2 v, int2 n); 5833586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5834586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5835d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5836586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5837586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar rootn(half3 v, int3 n); 5838586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5839586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5840d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5841586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5842586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar rootn(half4 v, int4 n); 5843586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5844586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5845be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5846be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * round: Round away from zero 5847be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5848be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Round to the nearest integral value. 5849be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 58506386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * round() rounds half values away from zero. For example, round(0.5f) returns 1.f 58516386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * and round(1.5f) returns 2.f. Similarly, round(-0.5f) returns -1.f 58526386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * and round(-1.5f) returns -2.f. 5853be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5854be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rint() is similar but rounds half values toward even. trunc() truncates the decimal fraction. 5855be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5856be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5857be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet round(float v); 5858be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5859be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5860be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet round(float2 v); 5861be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5862be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5863be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet round(float3 v); 5864be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5865be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5866be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet round(float4 v); 5867be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5868d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5869586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5870586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar round(half v); 5871586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5872586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5873d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5874586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5875586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar round(half2 v); 5876586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5877586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5878d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5879586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5880586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar round(half3 v); 5881586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5882586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5883d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5884586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5885586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar round(half4 v); 5886586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5887586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5888be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5889be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * rsqrt: Reciprocal of a square root 5890be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5891be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns (1 / sqrt(v)). 5892be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5893be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also half_rsqrt(), native_rsqrt(). 5894be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5895be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5896be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsqrt(float v); 5897be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5898be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5899be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsqrt(float2 v); 5900be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5901be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5902be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsqrt(float3 v); 5903be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5904be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5905be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet rsqrt(float4 v); 5906be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5907d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5908586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5909586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar rsqrt(half v); 5910586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5911586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5912d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5913586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5914586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar rsqrt(half2 v); 5915586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5916586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5917d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5918586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5919586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar rsqrt(half3 v); 5920586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5921586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5922d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5923586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5924586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar rsqrt(half4 v); 5925586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5926586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5927be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5928be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * sign: Sign of a value 5929be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5930be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the sign of a value. 5931be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5932be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * if (v < 0) return -1.f; 5933be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * else if (v > 0) return 1.f; 5934be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * else return 0.f; 5935be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5936be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5937be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sign(float v); 5938be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5939be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5940be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sign(float2 v); 5941be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5942be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5943be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sign(float3 v); 5944be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5945be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5946be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sign(float4 v); 5947be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5948d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5949586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5950586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sign(half v); 5951586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5952586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5953d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5954586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5955586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sign(half2 v); 5956586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5957586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5958d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5959586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5960586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sign(half3 v); 5961586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5962586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5963d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5964586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 5965586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sign(half4 v); 5966586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5967586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5968be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 5969be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * sin: Sine 5970be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5971be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the sine of an angle measured in radians. 5972be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 5973be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_sin(). 5974be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 5975be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 5976be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sin(float v); 5977be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5978be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 5979be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sin(float2 v); 5980be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5981be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 5982be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sin(float3 v); 5983be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5984be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 5985be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sin(float4 v); 5986be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 5987d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5988586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 5989586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sin(half v); 5990586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5991586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5992d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5993586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 5994586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sin(half2 v); 5995586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 5996586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 5997d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 5998586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 5999586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sin(half3 v); 6000586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6001586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6002d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6003586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 6004586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sin(half4 v); 6005586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6006586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6007be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 6008be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * sincos: Sine and cosine 6009be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6010be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the sine and cosine of a value. 6011be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6012be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_sincos(). 6013be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6014be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Parameters: 60156386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * v: Incoming value in radians. 60164a73004df5231d188c41267fee17c566ae7c3631Jean-Luc Brouillet * cos: *cos will be set to the cosine value. 6017be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 60186386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * Returns: Sine of v. 6019be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 6020be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((overloadable)) 6021be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sincos(float v, float* cos); 6022be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6023be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((overloadable)) 6024be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sincos(float2 v, float2* cos); 6025be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6026be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((overloadable)) 6027be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sincos(float3 v, float3* cos); 6028be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6029be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((overloadable)) 6030be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sincos(float4 v, float4* cos); 6031be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6032d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6033586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((overloadable)) 6034586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sincos(half v, half* cos); 6035586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6036586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6037d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6038586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((overloadable)) 6039586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sincos(half2 v, half2* cos); 6040586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6041586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6042d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6043586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((overloadable)) 6044586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sincos(half3 v, half3* cos); 6045586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6046586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6047d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6048586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((overloadable)) 6049586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sincos(half4 v, half4* cos); 6050586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6051586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6052be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 6053be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * sinh: Hyperbolic sine 6054be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6055be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the hyperbolic sine of v, where v is measured in radians. 6056be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6057be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_sinh(). 6058be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 6059be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 6060be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sinh(float v); 6061be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6062be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 6063be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sinh(float2 v); 6064be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6065be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 6066be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sinh(float3 v); 6067be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6068be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 6069be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sinh(float4 v); 6070be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6071d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6072586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 6073586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sinh(half v); 6074586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6075586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6076d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6077586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 6078586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sinh(half2 v); 6079586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6080586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6081d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6082586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 6083586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sinh(half3 v); 6084586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6085586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6086d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6087586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 6088586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sinh(half4 v); 6089586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6090586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6091be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 6092be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * sinpi: Sine of a number multiplied by pi 6093be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6094be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the sine of (v * pi), where (v * pi) is measured in radians. 6095be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6096be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get the sine of a value measured in degrees, call sinpi(v / 180.f). 6097be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6098be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_sinpi(). 6099be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 6100be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 6101be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sinpi(float v); 6102be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6103be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 6104be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sinpi(float2 v); 6105be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6106be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 6107be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sinpi(float3 v); 6108be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6109be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 6110be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sinpi(float4 v); 6111be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6112d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6113586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 6114586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sinpi(half v); 6115586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6116586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6117d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6118586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 6119586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sinpi(half2 v); 6120586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6121586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6122d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6123586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 6124586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sinpi(half3 v); 6125586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6126586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6127d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6128586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 6129586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sinpi(half4 v); 6130586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6131586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6132be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 6133be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * sqrt: Square root 6134be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6135be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the square root of a value. 6136be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6137be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also half_sqrt(), native_sqrt(). 6138be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 6139be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 6140be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sqrt(float v); 6141be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6142be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 6143be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sqrt(float2 v); 6144be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6145be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 6146be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sqrt(float3 v); 6147be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6148be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 6149be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet sqrt(float4 v); 6150be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6151d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6152586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 6153586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sqrt(half v); 6154586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6155586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6156d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6157586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 6158586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sqrt(half2 v); 6159586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6160586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6161d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6162586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 6163586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sqrt(half3 v); 6164586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6165586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6166d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6167586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 6168586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar sqrt(half4 v); 6169586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6170586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6171be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 6172be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * step: 0 if less than a value, 0 otherwise 6173be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6174be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns 0.f if v < edge, 1.f otherwise. 6175be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 61766386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * This can be useful to create conditional computations without using loops and branching 61776386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * instructions. For example, instead of computing (a[i] < b[i]) ? 0.f : atan2(a[i], b[i]) 61786386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * for the corresponding elements of a vector, you could instead use step(a, b) * atan2(a, b). 6179be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 6180be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 6181be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet step(float edge, float v); 6182be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6183be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 6184be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet step(float2 edge, float2 v); 6185be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6186be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 6187be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet step(float3 edge, float3 v); 6188be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6189be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 6190be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet step(float4 edge, float4 v); 6191be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6192d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6193586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 6194586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar step(half edge, half v); 6195586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6196586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6197d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6198586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 6199586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar step(half2 edge, half2 v); 6200586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6201586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6202d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6203586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 6204586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar step(half3 edge, half3 v); 6205586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6206586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6207d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6208586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 6209586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar step(half4 edge, half4 v); 6210586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6211586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6212be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 6213be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet step(float2 edge, float v); 6214be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6215be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 6216be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet step(float3 edge, float v); 6217be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6218be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 6219be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet step(float4 edge, float v); 6220be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6221d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6222586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 6223586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar step(half2 edge, half v); 6224586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6225586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6226d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6227586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 6228586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar step(half3 edge, half v); 6229586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6230586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6231d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6232586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 6233586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar step(half4 edge, half v); 6234586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6235586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6236be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 6237be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 6238be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet step(float edge, float2 v); 6239be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 6240be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6241be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 6242be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 6243be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet step(float edge, float3 v); 6244be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 6245be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6246be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 21)) 6247be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 6248be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet step(float edge, float4 v); 6249be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet#endif 6250be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6251d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6252586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 6253586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar step(half edge, half2 v); 6254586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6255586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6256d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6257586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 6258586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar step(half edge, half3 v); 6259586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6260586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6261d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6262586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 6263586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar step(half edge, half4 v); 6264586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6265586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6266be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 6267be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * tan: Tangent 6268be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6269be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the tangent of an angle measured in radians. 6270be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6271be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_tan(). 6272be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 6273be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 6274be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tan(float v); 6275be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6276be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 6277be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tan(float2 v); 6278be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6279be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 6280be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tan(float3 v); 6281be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6282be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 6283be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tan(float4 v); 6284be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6285d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6286586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 6287586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tan(half v); 6288586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6289586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6290d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6291586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 6292586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tan(half2 v); 6293586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6294586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6295d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6296586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 6297586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tan(half3 v); 6298586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6299586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6300d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6301586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 6302586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tan(half4 v); 6303586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6304586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6305be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 6306be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * tanh: Hyperbolic tangent 6307be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6308be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the hyperbolic tangent of a value. 6309be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6310be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_tanh(). 6311be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 6312be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 6313be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tanh(float v); 6314be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6315be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 6316be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tanh(float2 v); 6317be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6318be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 6319be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tanh(float3 v); 6320be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6321be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 6322be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tanh(float4 v); 6323be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6324d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6325586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 6326586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tanh(half v); 6327586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6328586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6329d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6330586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 6331586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tanh(half2 v); 6332586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6333586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6334d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6335586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 6336586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tanh(half3 v); 6337586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6338586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6339d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6340586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 6341586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tanh(half4 v); 6342586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6343586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6344be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 6345be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * tanpi: Tangent of a number multiplied by pi 6346be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6347be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the tangent of (v * pi), where (v * pi) is measured in radians. 6348be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6349be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * To get the tangent of a value measured in degrees, call tanpi(v / 180.f). 6350be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6351be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also native_tanpi(). 6352be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 6353be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 6354be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tanpi(float v); 6355be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6356be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 6357be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tanpi(float2 v); 6358be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6359be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 6360be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tanpi(float3 v); 6361be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6362be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 6363be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tanpi(float4 v); 6364be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6365d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6366586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 6367586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tanpi(half v); 6368586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6369586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6370d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6371586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 6372586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tanpi(half2 v); 6373586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6374586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6375d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6376586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 6377586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tanpi(half3 v); 6378586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6379586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6380d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6381586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 6382586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tanpi(half4 v); 6383586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6384586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6385be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 6386be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * tgamma: Gamma function 6387be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6388be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Returns the gamma function of a value. 6389be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6390be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See also lgamma(). 6391be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 6392be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 6393be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tgamma(float v); 6394be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6395be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 6396be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tgamma(float2 v); 6397be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6398be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 6399be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tgamma(float3 v); 6400be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6401be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 6402be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet tgamma(float4 v); 6403be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6404d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6405586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 6406586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tgamma(half v); 6407586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6408586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6409d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6410586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 6411586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tgamma(half2 v); 6412586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6413586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6414d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6415586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 6416586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tgamma(half3 v); 6417586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6418586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6419d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6420586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 6421586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar tgamma(half4 v); 6422586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6423586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6424be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet/* 6425be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * trunc: Truncates a floating point 6426be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6427be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * Rounds to integral using truncation. 6428be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6429be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * For example, trunc(1.7f) returns 1.f and trunc(-1.7f) returns -1.f. 6430be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * 6431be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet * See rint() and round() for other rounding options. 6432be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet */ 6433be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float __attribute__((const, overloadable)) 6434be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet trunc(float v); 6435be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6436be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float2 __attribute__((const, overloadable)) 6437be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet trunc(float2 v); 6438be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6439be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float3 __attribute__((const, overloadable)) 6440be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet trunc(float3 v); 6441be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet 6442be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouilletextern float4 __attribute__((const, overloadable)) 6443be2163801c33d6849ae580d42b919b8803d55095Jean-Luc Brouillet trunc(float4 v); 64447349547db61d2d458b31c074b902d56d082e5d84Jason Sams 6445d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6446586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half __attribute__((const, overloadable)) 6447586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar trunc(half v); 6448586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6449586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6450d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6451586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half2 __attribute__((const, overloadable)) 6452586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar trunc(half2 v); 6453586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6454586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6455d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6456586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half3 __attribute__((const, overloadable)) 6457586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar trunc(half3 v); 6458586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6459586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6460d46cf8ecf171e3cb27a394f6db8dc4fbdf6272b3Pirama Arumuga Nainar#if (defined(RS_VERSION) && (RS_VERSION >= 24)) 6461586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainarextern half4 __attribute__((const, overloadable)) 6462586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar trunc(half4 v); 6463586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar#endif 6464586539cd7d8b1e92cd6c9c31220be56969482ad6Pirama Arumuga Nainar 6465c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet/* 6466c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet * rsClamp: Restrain a value to a range 6467c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet * 646820b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * DEPRECATED. Do not use. 6469c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet * 647020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * Clamp a value between low and high. 6471c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet * 6472c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet * Parameters: 64736386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * amount: Value to clamp. 64746386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * low: Lower bound. 64756386ceb3bf25e442513224aaa45691dfe49562d9Jean-Luc Brouillet * high: Upper bound. 64769df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams */ 6477a4d25bc511c86bb402890ce480ef581654319d75Verena Beckhamextern char __attribute__((const, overloadable 647836e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 22)) 647936e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet, deprecated("Use clamp() instead.") 648036e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#endif 648136e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet)) 6482c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet rsClamp(char amount, char low, char high); 648322fa371bf64b8aae786acfe5d711af21afb13a93Jason Sams 6484a4d25bc511c86bb402890ce480ef581654319d75Verena Beckhamextern uchar __attribute__((const, overloadable 648536e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 22)) 648636e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet, deprecated("Use clamp() instead.") 648736e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#endif 648836e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet)) 6489c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet rsClamp(uchar amount, uchar low, uchar high); 649022fa371bf64b8aae786acfe5d711af21afb13a93Jason Sams 6491a4d25bc511c86bb402890ce480ef581654319d75Verena Beckhamextern short __attribute__((const, overloadable 649236e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 22)) 649336e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet, deprecated("Use clamp() instead.") 649436e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#endif 649536e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet)) 6496c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet rsClamp(short amount, short low, short high); 6497dd663fa8367bfacb6c77b368f91adf614cd0bebaJason Sams 6498a4d25bc511c86bb402890ce480ef581654319d75Verena Beckhamextern ushort __attribute__((const, overloadable 649936e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 22)) 650036e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet, deprecated("Use clamp() instead.") 650136e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#endif 650236e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet)) 6503c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet rsClamp(ushort amount, ushort low, ushort high); 65049df3b2b03e6bbe26d5fa7daae49b26fd9f15eaa0Jason Sams 6505a4d25bc511c86bb402890ce480ef581654319d75Verena Beckhamextern int __attribute__((const, overloadable 650636e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 22)) 650736e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet, deprecated("Use clamp() instead.") 650836e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#endif 650936e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet)) 6510c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet rsClamp(int amount, int low, int high); 6511c61346b91434307c5003029017b54ce9c49112beJason Sams 6512a4d25bc511c86bb402890ce480ef581654319d75Verena Beckhamextern uint __attribute__((const, overloadable 651336e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 22)) 651436e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet, deprecated("Use clamp() instead.") 651536e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#endif 651636e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet)) 6517c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet rsClamp(uint amount, uint low, uint high); 6518e1eb6156604d0a4cc4b7e7353aa2fc8dc4d8eadeJason Sams 6519c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet/* 652020b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * rsFrac: Returns the fractional part of a float 652120b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * 652220b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * DEPRECATED. Do not use. 652320b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * 6524c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet * Returns the fractional part of a float 6525e1eb6156604d0a4cc4b7e7353aa2fc8dc4d8eadeJason Sams */ 652636e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouilletextern float __attribute__((const, overloadable 652736e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#if (defined(RS_VERSION) && (RS_VERSION >= 22)) 652836e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet, deprecated("Use fract() instead.") 652936e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet#endif 653036e2be56cd398bf4a318114bbc9fa3f4573c158fJean-Luc Brouillet)) 6531c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet rsFrac(float v); 6532044e2ee36ffe6520570a7f0207d75a8fce8b8e91Jason Sams 6533c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet/* 653420b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * rsRand: Pseudo-random number 653520b27d602a4778ed50a83df2147416a35b7c92beJean-Luc Brouillet * 6536c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet * Return a random value between 0 (or min_value) and max_malue. 6537e1eb6156604d0a4cc4b7e7353aa2fc8dc4d8eadeJason Sams */ 6538c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletextern int __attribute__((overloadable)) 6539c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet rsRand(int max_value); 6540c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 6541c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletextern int __attribute__((overloadable)) 6542c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet rsRand(int min_value, int max_value); 6543c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 6544c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletextern float __attribute__((overloadable)) 6545c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet rsRand(float max_value); 6546e1eb6156604d0a4cc4b7e7353aa2fc8dc4d8eadeJason Sams 6547c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouilletextern float __attribute__((overloadable)) 6548c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet rsRand(float min_value, float max_value); 6549c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet 6550c5184e202ced435258adb2cfe2013570e7190954Jean-Luc Brouillet#endif // RENDERSCRIPT_RS_MATH_RSH 6551