rs_math.rsh revision ce92d4baf7a5bce097228fdd4498601764cd4014
1// Float ops, 6.11.2 2 3extern float __attribute__((overloadable)) acos(float); 4extern float2 __attribute__((overloadable)) acos(float2); 5extern float3 __attribute__((overloadable)) acos(float3); 6extern float4 __attribute__((overloadable)) acos(float4); 7extern float8 __attribute__((overloadable)) acos(float8); 8extern float16 __attribute__((overloadable)) acos(float16); 9 10extern float __attribute__((overloadable)) acosh(float); 11extern float2 __attribute__((overloadable)) acosh(float2); 12extern float3 __attribute__((overloadable)) acosh(float3); 13extern float4 __attribute__((overloadable)) acosh(float4); 14extern float8 __attribute__((overloadable)) acosh(float8); 15extern float16 __attribute__((overloadable)) acosh(float16); 16 17extern float __attribute__((overloadable)) acospi(float); 18extern float2 __attribute__((overloadable)) acospi(float2); 19extern float3 __attribute__((overloadable)) acospi(float3); 20extern float4 __attribute__((overloadable)) acospi(float4); 21extern float8 __attribute__((overloadable)) acospi(float8); 22extern float16 __attribute__((overloadable)) acospi(float16); 23 24extern float __attribute__((overloadable)) asin(float); 25extern float2 __attribute__((overloadable)) asin(float2); 26extern float3 __attribute__((overloadable)) asin(float3); 27extern float4 __attribute__((overloadable)) asin(float4); 28extern float8 __attribute__((overloadable)) asin(float8); 29extern float16 __attribute__((overloadable)) asin(float16); 30 31extern float __attribute__((overloadable)) asinh(float); 32extern float2 __attribute__((overloadable)) asinh(float2); 33extern float3 __attribute__((overloadable)) asinh(float3); 34extern float4 __attribute__((overloadable)) asinh(float4); 35extern float8 __attribute__((overloadable)) asinh(float8); 36extern float16 __attribute__((overloadable)) asinh(float16); 37 38extern float __attribute__((overloadable)) asinpi(float); 39extern float2 __attribute__((overloadable)) asinpi(float2); 40extern float3 __attribute__((overloadable)) asinpi(float3); 41extern float4 __attribute__((overloadable)) asinpi(float4); 42extern float8 __attribute__((overloadable)) asinpi(float8); 43extern float16 __attribute__((overloadable)) asinpi(float16); 44 45extern float __attribute__((overloadable)) atan(float); 46extern float2 __attribute__((overloadable)) atan(float2); 47extern float3 __attribute__((overloadable)) atan(float3); 48extern float4 __attribute__((overloadable)) atan(float4); 49extern float8 __attribute__((overloadable)) atan(float8); 50extern float16 __attribute__((overloadable)) atan(float16); 51 52extern float __attribute__((overloadable)) atan2(float, float); 53extern float2 __attribute__((overloadable)) atan2(float2, float2); 54extern float3 __attribute__((overloadable)) atan2(float3, float3); 55extern float4 __attribute__((overloadable)) atan2(float4, float4); 56extern float8 __attribute__((overloadable)) atan2(float8, float8); 57extern float16 __attribute__((overloadable)) atan2(float16, float16); 58 59extern float __attribute__((overloadable)) atanh(float); 60extern float2 __attribute__((overloadable)) atanh(float2); 61extern float3 __attribute__((overloadable)) atanh(float3); 62extern float4 __attribute__((overloadable)) atanh(float4); 63extern float8 __attribute__((overloadable)) atanh(float8); 64extern float16 __attribute__((overloadable)) atanh(float16); 65 66extern float __attribute__((overloadable)) atanpi(float); 67extern float2 __attribute__((overloadable)) atanpi(float2); 68extern float3 __attribute__((overloadable)) atanpi(float3); 69extern float4 __attribute__((overloadable)) atanpi(float4); 70extern float8 __attribute__((overloadable)) atanpi(float8); 71extern float16 __attribute__((overloadable)) atanpi(float16); 72 73extern float __attribute__((overloadable)) atan2pi(float, float); 74extern float2 __attribute__((overloadable)) atan2pi(float2, float2); 75extern float3 __attribute__((overloadable)) atan2pi(float3, float3); 76extern float4 __attribute__((overloadable)) atan2pi(float4, float4); 77extern float8 __attribute__((overloadable)) atan2pi(float8, float8); 78extern float16 __attribute__((overloadable)) atan2pi(float16, float16); 79 80extern float __attribute__((overloadable)) cbrt(float); 81extern float2 __attribute__((overloadable)) cbrt(float2); 82extern float3 __attribute__((overloadable)) cbrt(float3); 83extern float4 __attribute__((overloadable)) cbrt(float4); 84extern float8 __attribute__((overloadable)) cbrt(float8); 85extern float16 __attribute__((overloadable)) cbrt(float16); 86 87extern float __attribute__((overloadable)) ceil(float); 88extern float2 __attribute__((overloadable)) ceil(float2); 89extern float3 __attribute__((overloadable)) ceil(float3); 90extern float4 __attribute__((overloadable)) ceil(float4); 91extern float8 __attribute__((overloadable)) ceil(float8); 92extern float16 __attribute__((overloadable)) ceil(float16); 93 94extern float __attribute__((overloadable)) copysign(float, float); 95extern float2 __attribute__((overloadable)) copysign(float2, float2); 96extern float3 __attribute__((overloadable)) copysign(float3, float3); 97extern float4 __attribute__((overloadable)) copysign(float4, float4); 98extern float8 __attribute__((overloadable)) copysign(float8, float8); 99extern float16 __attribute__((overloadable)) copysign(float16, float16); 100 101extern float __attribute__((overloadable)) cos(float); 102extern float2 __attribute__((overloadable)) cos(float2); 103extern float3 __attribute__((overloadable)) cos(float3); 104extern float4 __attribute__((overloadable)) cos(float4); 105extern float8 __attribute__((overloadable)) cos(float8); 106extern float16 __attribute__((overloadable)) cos(float16); 107 108extern float __attribute__((overloadable)) cosh(float); 109extern float2 __attribute__((overloadable)) cosh(float2); 110extern float3 __attribute__((overloadable)) cosh(float3); 111extern float4 __attribute__((overloadable)) cosh(float4); 112extern float8 __attribute__((overloadable)) cosh(float8); 113extern float16 __attribute__((overloadable)) cosh(float16); 114 115extern float __attribute__((overloadable)) cospi(float); 116extern float2 __attribute__((overloadable)) cospi(float2); 117extern float3 __attribute__((overloadable)) cospi(float3); 118extern float4 __attribute__((overloadable)) cospi(float4); 119extern float8 __attribute__((overloadable)) cospi(float8); 120extern float16 __attribute__((overloadable)) cospi(float16); 121 122extern float __attribute__((overloadable)) erfc(float); 123extern float2 __attribute__((overloadable)) erfc(float2); 124extern float3 __attribute__((overloadable)) erfc(float3); 125extern float4 __attribute__((overloadable)) erfc(float4); 126extern float8 __attribute__((overloadable)) erfc(float8); 127extern float16 __attribute__((overloadable)) erfc(float16); 128 129extern float __attribute__((overloadable)) erf(float); 130extern float2 __attribute__((overloadable)) erf(float2); 131extern float3 __attribute__((overloadable)) erf(float3); 132extern float4 __attribute__((overloadable)) erf(float4); 133extern float8 __attribute__((overloadable)) erf(float8); 134extern float16 __attribute__((overloadable)) erf(float16); 135 136extern float __attribute__((overloadable)) exp(float); 137extern float2 __attribute__((overloadable)) exp(float2); 138extern float3 __attribute__((overloadable)) exp(float3); 139extern float4 __attribute__((overloadable)) exp(float4); 140extern float8 __attribute__((overloadable)) exp(float8); 141extern float16 __attribute__((overloadable)) exp(float16); 142 143extern float __attribute__((overloadable)) exp2(float); 144extern float2 __attribute__((overloadable)) exp2(float2); 145extern float3 __attribute__((overloadable)) exp2(float3); 146extern float4 __attribute__((overloadable)) exp2(float4); 147extern float8 __attribute__((overloadable)) exp2(float8); 148extern float16 __attribute__((overloadable)) exp2(float16); 149 150extern float __attribute__((overloadable)) exp10(float); 151extern float2 __attribute__((overloadable)) exp10(float2); 152extern float3 __attribute__((overloadable)) exp10(float3); 153extern float4 __attribute__((overloadable)) exp10(float4); 154extern float8 __attribute__((overloadable)) exp10(float8); 155extern float16 __attribute__((overloadable)) exp10(float16); 156 157extern float __attribute__((overloadable)) expm1(float); 158extern float2 __attribute__((overloadable)) expm1(float2); 159extern float3 __attribute__((overloadable)) expm1(float3); 160extern float4 __attribute__((overloadable)) expm1(float4); 161extern float8 __attribute__((overloadable)) expm1(float8); 162extern float16 __attribute__((overloadable)) expm1(float16); 163 164extern float __attribute__((overloadable)) fabs(float); 165extern float2 __attribute__((overloadable)) fabs(float2); 166extern float3 __attribute__((overloadable)) fabs(float3); 167extern float4 __attribute__((overloadable)) fabs(float4); 168extern float8 __attribute__((overloadable)) fabs(float8); 169extern float16 __attribute__((overloadable)) fabs(float16); 170 171extern float __attribute__((overloadable)) fdim(float, float); 172extern float2 __attribute__((overloadable)) fdim(float2, float2); 173extern float3 __attribute__((overloadable)) fdim(float3, float3); 174extern float4 __attribute__((overloadable)) fdim(float4, float4); 175extern float8 __attribute__((overloadable)) fdim(float8, float8); 176extern float16 __attribute__((overloadable)) fdim(float16, float16); 177 178extern float __attribute__((overloadable)) floor(float); 179extern float2 __attribute__((overloadable)) floor(float2); 180extern float3 __attribute__((overloadable)) floor(float3); 181extern float4 __attribute__((overloadable)) floor(float4); 182extern float8 __attribute__((overloadable)) floor(float8); 183extern float16 __attribute__((overloadable)) floor(float16); 184 185extern float __attribute__((overloadable)) fma(float, float, float); 186extern float2 __attribute__((overloadable)) fma(float2, float2, float2); 187extern float3 __attribute__((overloadable)) fma(float3, float3, float3); 188extern float4 __attribute__((overloadable)) fma(float4, float4, float4); 189extern float8 __attribute__((overloadable)) fma(float8, float8, float8); 190extern float16 __attribute__((overloadable)) fma(float16, float16, float16); 191 192extern float __attribute__((overloadable)) fmax(float, float); 193extern float2 __attribute__((overloadable)) fmax(float2, float2); 194extern float3 __attribute__((overloadable)) fmax(float3, float3); 195extern float4 __attribute__((overloadable)) fmax(float4, float4); 196extern float8 __attribute__((overloadable)) fmax(float8, float8); 197extern float16 __attribute__((overloadable)) fmax(float16, float16); 198extern float2 __attribute__((overloadable)) fmax(float2, float); 199extern float3 __attribute__((overloadable)) fmax(float3, float); 200extern float4 __attribute__((overloadable)) fmax(float4, float); 201extern float8 __attribute__((overloadable)) fmax(float8, float); 202extern float16 __attribute__((overloadable)) fmax(float16, float); 203 204extern float __attribute__((overloadable)) fmin(float, float); 205extern float2 __attribute__((overloadable)) fmin(float2, float2); 206extern float3 __attribute__((overloadable)) fmin(float3, float3); 207extern float4 __attribute__((overloadable)) fmin(float4, float4); 208extern float8 __attribute__((overloadable)) fmin(float8, float8); 209extern float16 __attribute__((overloadable)) fmin(float16, float16); 210extern float2 __attribute__((overloadable)) fmin(float2, float); 211extern float3 __attribute__((overloadable)) fmin(float3, float); 212extern float4 __attribute__((overloadable)) fmin(float4, float); 213extern float8 __attribute__((overloadable)) fmin(float8, float); 214extern float16 __attribute__((overloadable)) fmin(float16, float); 215 216extern float __attribute__((overloadable)) fmod(float, float); 217extern float2 __attribute__((overloadable)) fmod(float2, float2); 218extern float3 __attribute__((overloadable)) fmod(float3, float3); 219extern float4 __attribute__((overloadable)) fmod(float4, float4); 220extern float8 __attribute__((overloadable)) fmod(float8, float8); 221extern float16 __attribute__((overloadable)) fmod(float16, float16); 222 223extern float __attribute__((overloadable)) fract(float, float *); 224extern float2 __attribute__((overloadable)) fract(float2, float2 *); 225extern float3 __attribute__((overloadable)) fract(float3, float3 *); 226extern float4 __attribute__((overloadable)) fract(float4, float4 *); 227extern float8 __attribute__((overloadable)) fract(float8, float8 *); 228extern float16 __attribute__((overloadable)) fract(float16, float16 *); 229 230extern float __attribute__((overloadable)) frexp(float, float *); 231extern float2 __attribute__((overloadable)) frexp(float2, float2 *); 232extern float3 __attribute__((overloadable)) frexp(float3, float3 *); 233extern float4 __attribute__((overloadable)) frexp(float4, float4 *); 234extern float8 __attribute__((overloadable)) frexp(float8, float8 *); 235extern float16 __attribute__((overloadable)) frexp(float16, float16 *); 236 237extern float __attribute__((overloadable)) hypot(float, float); 238extern float2 __attribute__((overloadable)) hypot(float2, float2); 239extern float3 __attribute__((overloadable)) hypot(float3, float3); 240extern float4 __attribute__((overloadable)) hypot(float4, float4); 241extern float8 __attribute__((overloadable)) hypot(float8, float8); 242extern float16 __attribute__((overloadable)) hypot(float16, float16); 243 244extern int __attribute__((overloadable)) ilogb(float); 245extern int2 __attribute__((overloadable)) ilogb(float2); 246extern int3 __attribute__((overloadable)) ilogb(float3); 247extern int4 __attribute__((overloadable)) ilogb(float4); 248extern int8 __attribute__((overloadable)) ilogb(float8); 249extern int16 __attribute__((overloadable)) ilogb(float16); 250 251extern float __attribute__((overloadable)) ldexp(float, int); 252extern float2 __attribute__((overloadable)) ldexp(float2, int2); 253extern float3 __attribute__((overloadable)) ldexp(float3, int3); 254extern float4 __attribute__((overloadable)) ldexp(float4, int4); 255extern float8 __attribute__((overloadable)) ldexp(float8, int8); 256extern float16 __attribute__((overloadable)) ldexp(float16, int16); 257extern float2 __attribute__((overloadable)) ldexp(float2, int); 258extern float3 __attribute__((overloadable)) ldexp(float3, int); 259extern float4 __attribute__((overloadable)) ldexp(float4, int); 260extern float8 __attribute__((overloadable)) ldexp(float8, int); 261extern float16 __attribute__((overloadable)) ldexp(float16, int); 262 263extern float __attribute__((overloadable)) lgamma(float); 264extern float2 __attribute__((overloadable)) lgamma(float2); 265extern float3 __attribute__((overloadable)) lgamma(float3); 266extern float4 __attribute__((overloadable)) lgamma(float4); 267extern float8 __attribute__((overloadable)) lgamma(float8); 268extern float16 __attribute__((overloadable)) lgamma(float16); 269extern float __attribute__((overloadable)) lgamma(float, float *); 270extern float2 __attribute__((overloadable)) lgamma(float2, float2 *); 271extern float3 __attribute__((overloadable)) lgamma(float3, float3 *); 272extern float4 __attribute__((overloadable)) lgamma(float4, float4 *); 273extern float8 __attribute__((overloadable)) lgamma(float8, float8 *); 274extern float16 __attribute__((overloadable)) lgamma(float16, float16 *); 275 276extern float __attribute__((overloadable)) log(float); 277extern float2 __attribute__((overloadable)) log(float2); 278extern float3 __attribute__((overloadable)) log(float3); 279extern float4 __attribute__((overloadable)) log(float4); 280extern float8 __attribute__((overloadable)) log(float8); 281extern float16 __attribute__((overloadable)) log(float16); 282 283extern float __attribute__((overloadable)) log2(float); 284extern float2 __attribute__((overloadable)) log2(float2); 285extern float3 __attribute__((overloadable)) log2(float3); 286extern float4 __attribute__((overloadable)) log2(float4); 287extern float8 __attribute__((overloadable)) log2(float8); 288extern float16 __attribute__((overloadable)) log2(float16); 289 290extern float __attribute__((overloadable)) log10(float); 291extern float2 __attribute__((overloadable)) log10(float2); 292extern float3 __attribute__((overloadable)) log10(float3); 293extern float4 __attribute__((overloadable)) log10(float4); 294extern float8 __attribute__((overloadable)) log10(float8); 295extern float16 __attribute__((overloadable)) log10(float16); 296 297extern float __attribute__((overloadable)) log1p(float); 298extern float2 __attribute__((overloadable)) log1p(float2); 299extern float3 __attribute__((overloadable)) log1p(float3); 300extern float4 __attribute__((overloadable)) log1p(float4); 301extern float8 __attribute__((overloadable)) log1p(float8); 302extern float16 __attribute__((overloadable)) log1p(float16); 303 304extern float __attribute__((overloadable)) logb(float); 305extern float2 __attribute__((overloadable)) logb(float2); 306extern float3 __attribute__((overloadable)) logb(float3); 307extern float4 __attribute__((overloadable)) logb(float4); 308extern float8 __attribute__((overloadable)) logb(float8); 309extern float16 __attribute__((overloadable)) logb(float16); 310 311extern float __attribute__((overloadable)) mad(float, float, float); 312extern float2 __attribute__((overloadable)) mad(float2, float2, float2); 313extern float3 __attribute__((overloadable)) mad(float3, float3, float3); 314extern float4 __attribute__((overloadable)) mad(float4, float4, float4); 315extern float8 __attribute__((overloadable)) mad(float8, float8, float8); 316extern float16 __attribute__((overloadable)) mad(float16, float16, float16); 317 318extern float __attribute__((overloadable)) modf(float, float *); 319extern float2 __attribute__((overloadable)) modf(float2, float2 *); 320extern float3 __attribute__((overloadable)) modf(float3, float3 *); 321extern float4 __attribute__((overloadable)) modf(float4, float4 *); 322extern float8 __attribute__((overloadable)) modf(float8, float8 *); 323extern float16 __attribute__((overloadable)) modf(float16, float16 *); 324 325extern float __attribute__((overloadable)) nan(uint); 326extern float2 __attribute__((overloadable)) nan(uint2); 327extern float3 __attribute__((overloadable)) nan(uint3); 328extern float4 __attribute__((overloadable)) nan(uint4); 329extern float8 __attribute__((overloadable)) nan(uint8); 330extern float16 __attribute__((overloadable)) nan(uint16); 331 332extern float __attribute__((overloadable)) nextafter(float, float); 333extern float2 __attribute__((overloadable)) nextafter(float2, float2); 334extern float3 __attribute__((overloadable)) nextafter(float3, float3); 335extern float4 __attribute__((overloadable)) nextafter(float4, float4); 336extern float8 __attribute__((overloadable)) nextafter(float8, float8); 337extern float16 __attribute__((overloadable)) nextafter(float16, float16); 338 339extern float __attribute__((overloadable)) pow(float, float); 340extern float2 __attribute__((overloadable)) pow(float2, float2); 341extern float3 __attribute__((overloadable)) pow(float3, float3); 342extern float4 __attribute__((overloadable)) pow(float4, float4); 343extern float8 __attribute__((overloadable)) pow(float8, float8); 344extern float16 __attribute__((overloadable)) pow(float16, float16); 345 346extern float __attribute__((overloadable)) pown(float, int); 347extern float2 __attribute__((overloadable)) pown(float2, int2); 348extern float3 __attribute__((overloadable)) pown(float3, int3); 349extern float4 __attribute__((overloadable)) pown(float4, int4); 350extern float8 __attribute__((overloadable)) pown(float8, int8); 351extern float16 __attribute__((overloadable)) pown(float16, int16); 352 353extern float __attribute__((overloadable)) powr(float, float); 354extern float2 __attribute__((overloadable)) powr(float2, float2); 355extern float3 __attribute__((overloadable)) powr(float3, float3); 356extern float4 __attribute__((overloadable)) powr(float4, float4); 357extern float8 __attribute__((overloadable)) powr(float8, float8); 358extern float16 __attribute__((overloadable)) powr(float16, float16); 359 360extern float __attribute__((overloadable)) remainder(float, float); 361extern float2 __attribute__((overloadable)) remainder(float2, float2); 362extern float3 __attribute__((overloadable)) remainder(float3, float3); 363extern float4 __attribute__((overloadable)) remainder(float4, float4); 364extern float8 __attribute__((overloadable)) remainder(float8, float8); 365extern float16 __attribute__((overloadable)) remainder(float16, float16); 366 367extern float __attribute__((overloadable)) remquo(float, float, float *); 368extern float2 __attribute__((overloadable)) remquo(float2, float2, float2 *); 369extern float3 __attribute__((overloadable)) remquo(float3, float3, float3 *); 370extern float4 __attribute__((overloadable)) remquo(float4, float4, float4 *); 371extern float8 __attribute__((overloadable)) remquo(float8, float8, float8 *); 372extern float16 __attribute__((overloadable)) remquo(float16, float16, float16 *); 373 374extern float __attribute__((overloadable)) rint(float); 375extern float2 __attribute__((overloadable)) rint(float2); 376extern float3 __attribute__((overloadable)) rint(float3); 377extern float4 __attribute__((overloadable)) rint(float4); 378extern float8 __attribute__((overloadable)) rint(float8); 379extern float16 __attribute__((overloadable)) rint(float16); 380 381extern float __attribute__((overloadable)) rootn(float, int); 382extern float2 __attribute__((overloadable)) rootn(float2, int2); 383extern float3 __attribute__((overloadable)) rootn(float3, int3); 384extern float4 __attribute__((overloadable)) rootn(float4, int4); 385extern float8 __attribute__((overloadable)) rootn(float8, int8); 386extern float16 __attribute__((overloadable)) rootn(float16, int16); 387 388extern float __attribute__((overloadable)) round(float); 389extern float2 __attribute__((overloadable)) round(float2); 390extern float3 __attribute__((overloadable)) round(float3); 391extern float4 __attribute__((overloadable)) round(float4); 392extern float8 __attribute__((overloadable)) round(float8); 393extern float16 __attribute__((overloadable)) round(float16); 394 395extern float __attribute__((overloadable)) rsqrt(float); 396extern float2 __attribute__((overloadable)) rsqrt(float2); 397extern float3 __attribute__((overloadable)) rsqrt(float3); 398extern float4 __attribute__((overloadable)) rsqrt(float4); 399extern float8 __attribute__((overloadable)) rsqrt(float8); 400extern float16 __attribute__((overloadable)) rsqrt(float16); 401 402extern float __attribute__((overloadable)) sin(float); 403extern float2 __attribute__((overloadable)) sin(float2); 404extern float3 __attribute__((overloadable)) sin(float3); 405extern float4 __attribute__((overloadable)) sin(float4); 406extern float8 __attribute__((overloadable)) sin(float8); 407extern float16 __attribute__((overloadable)) sin(float16); 408 409extern float __attribute__((overloadable)) sincos(float, float *); 410extern float2 __attribute__((overloadable)) sincos(float2, float2 *); 411extern float3 __attribute__((overloadable)) sincos(float3, float3 *); 412extern float4 __attribute__((overloadable)) sincos(float4, float4 *); 413extern float8 __attribute__((overloadable)) sincos(float8, float8 *); 414extern float16 __attribute__((overloadable)) sincos(float16, float16 *); 415 416extern float __attribute__((overloadable)) sinh(float); 417extern float2 __attribute__((overloadable)) sinh(float2); 418extern float3 __attribute__((overloadable)) sinh(float3); 419extern float4 __attribute__((overloadable)) sinh(float4); 420extern float8 __attribute__((overloadable)) sinh(float8); 421extern float16 __attribute__((overloadable)) sinh(float16); 422 423extern float __attribute__((overloadable)) sinpi(float); 424extern float2 __attribute__((overloadable)) sinpi(float2); 425extern float3 __attribute__((overloadable)) sinpi(float3); 426extern float4 __attribute__((overloadable)) sinpi(float4); 427extern float8 __attribute__((overloadable)) sinpi(float8); 428extern float16 __attribute__((overloadable)) sinpi(float16); 429 430extern float __attribute__((overloadable)) sqrt(float); 431extern float2 __attribute__((overloadable)) sqrt(float2); 432extern float3 __attribute__((overloadable)) sqrt(float3); 433extern float4 __attribute__((overloadable)) sqrt(float4); 434extern float8 __attribute__((overloadable)) sqrt(float8); 435extern float16 __attribute__((overloadable)) sqrt(float16); 436 437extern float __attribute__((overloadable)) tan(float); 438extern float2 __attribute__((overloadable)) tan(float2); 439extern float3 __attribute__((overloadable)) tan(float3); 440extern float4 __attribute__((overloadable)) tan(float4); 441extern float8 __attribute__((overloadable)) tan(float8); 442extern float16 __attribute__((overloadable)) tan(float16); 443 444extern float __attribute__((overloadable)) tanh(float); 445extern float2 __attribute__((overloadable)) tanh(float2); 446extern float3 __attribute__((overloadable)) tanh(float3); 447extern float4 __attribute__((overloadable)) tanh(float4); 448extern float8 __attribute__((overloadable)) tanh(float8); 449extern float16 __attribute__((overloadable)) tanh(float16); 450 451extern float __attribute__((overloadable)) tanpi(float); 452extern float2 __attribute__((overloadable)) tanpi(float2); 453extern float3 __attribute__((overloadable)) tanpi(float3); 454extern float4 __attribute__((overloadable)) tanpi(float4); 455extern float8 __attribute__((overloadable)) tanpi(float8); 456extern float16 __attribute__((overloadable)) tanpi(float16); 457 458extern float __attribute__((overloadable)) tgamma(float); 459extern float2 __attribute__((overloadable)) tgamma(float2); 460extern float3 __attribute__((overloadable)) tgamma(float3); 461extern float4 __attribute__((overloadable)) tgamma(float4); 462extern float8 __attribute__((overloadable)) tgamma(float8); 463extern float16 __attribute__((overloadable)) tgamma(float16); 464 465extern float __attribute__((overloadable)) trunc(float); 466extern float2 __attribute__((overloadable)) trunc(float2); 467extern float3 __attribute__((overloadable)) trunc(float3); 468extern float4 __attribute__((overloadable)) trunc(float4); 469extern float8 __attribute__((overloadable)) trunc(float8); 470extern float16 __attribute__((overloadable)) trunc(float16); 471 472 473 474 475 476 477// Int ops (partial), 6.11.3 478extern uint __attribute__((overloadable)) abs(int); 479extern ushort __attribute__((overloadable)) abs(short); 480extern uchar __attribute__((overloadable)) abs(char); 481 482extern uint __attribute__((overloadable)) clz(uint); 483extern int __attribute__((overloadable)) clz(int); 484extern ushort __attribute__((overloadable)) clz(ushort); 485extern short __attribute__((overloadable)) clz(short); 486extern uchar __attribute__((overloadable)) clz(uchar); 487extern char __attribute__((overloadable)) clz(char); 488 489extern uint __attribute__((overloadable)) min(uint); 490extern int __attribute__((overloadable)) min(int); 491extern ushort __attribute__((overloadable)) min(ushort); 492extern short __attribute__((overloadable)) min(short); 493extern uchar __attribute__((overloadable)) min(uchar); 494extern char __attribute__((overloadable)) min(char); 495 496extern uint __attribute__((overloadable)) max(uint); 497extern int __attribute__((overloadable)) max(int); 498extern ushort __attribute__((overloadable)) max(ushort); 499extern short __attribute__((overloadable)) max(short); 500extern uchar __attribute__((overloadable)) max(uchar); 501extern char __attribute__((overloadable)) max(char); 502 503 504 505 506// 6.11.4 507 508extern float __attribute__((overloadable)) clamp(float, float, float); 509extern float2 __attribute__((overloadable)) clamp(float2, float2, float2); 510extern float3 __attribute__((overloadable)) clamp(float3, float3, float3); 511extern float4 __attribute__((overloadable)) clamp(float4, float4, float4); 512extern float8 __attribute__((overloadable)) clamp(float8, float8, float8); 513extern float16 __attribute__((overloadable)) clamp(float16, float16, float16); 514extern float2 __attribute__((overloadable)) clamp(float2, float, float); 515extern float3 __attribute__((overloadable)) clamp(float3, float, float); 516extern float4 __attribute__((overloadable)) clamp(float4, float, float); 517extern float8 __attribute__((overloadable)) clamp(float8, float, float); 518extern float16 __attribute__((overloadable)) clamp(float16, float, float); 519 520extern float __attribute__((overloadable)) degrees(float); 521extern float2 __attribute__((overloadable)) degrees(float2); 522extern float3 __attribute__((overloadable)) degrees(float3); 523extern float4 __attribute__((overloadable)) degrees(float4); 524extern float8 __attribute__((overloadable)) degrees(float8); 525extern float16 __attribute__((overloadable)) degrees(float16); 526 527extern float __attribute__((overloadable)) max(float, float); 528extern float2 __attribute__((overloadable)) max(float2, float2); 529extern float3 __attribute__((overloadable)) max(float3, float3); 530extern float4 __attribute__((overloadable)) max(float4, float4); 531extern float8 __attribute__((overloadable)) max(float8, float8); 532extern float16 __attribute__((overloadable)) max(float16, float16); 533extern float2 __attribute__((overloadable)) max(float2, float); 534extern float3 __attribute__((overloadable)) max(float3, float); 535extern float4 __attribute__((overloadable)) max(float4, float); 536extern float8 __attribute__((overloadable)) max(float8, float); 537extern float16 __attribute__((overloadable)) max(float16, float); 538 539extern float __attribute__((overloadable)) min(float, float); 540extern float2 __attribute__((overloadable)) min(float2, float2); 541extern float3 __attribute__((overloadable)) min(float3, float3); 542extern float4 __attribute__((overloadable)) min(float4, float4); 543extern float8 __attribute__((overloadable)) min(float8, float8); 544extern float16 __attribute__((overloadable)) min(float16, float16); 545extern float2 __attribute__((overloadable)) min(float2, float); 546extern float3 __attribute__((overloadable)) min(float3, float); 547extern float4 __attribute__((overloadable)) min(float4, float); 548extern float8 __attribute__((overloadable)) min(float8, float); 549extern float16 __attribute__((overloadable)) min(float16, float); 550 551extern float __attribute__((overloadable)) mix(float, float, float); 552extern float2 __attribute__((overloadable)) mix(float2, float2, float2); 553extern float3 __attribute__((overloadable)) mix(float3, float3, float3); 554extern float4 __attribute__((overloadable)) mix(float4, float4, float4); 555extern float8 __attribute__((overloadable)) mix(float8, float8, float8); 556extern float16 __attribute__((overloadable)) mix(float16, float16, float16); 557extern float2 __attribute__((overloadable)) mix(float2, float2, float); 558extern float3 __attribute__((overloadable)) mix(float3, float3, float); 559extern float4 __attribute__((overloadable)) mix(float4, float4, float); 560extern float8 __attribute__((overloadable)) mix(float8, float8, float); 561extern float16 __attribute__((overloadable)) mix(float16, float16, float); 562 563extern float __attribute__((overloadable)) radians(float); 564extern float2 __attribute__((overloadable)) radians(float2); 565extern float3 __attribute__((overloadable)) radians(float3); 566extern float4 __attribute__((overloadable)) radians(float4); 567extern float8 __attribute__((overloadable)) radians(float8); 568extern float16 __attribute__((overloadable)) radians(float16); 569 570extern float __attribute__((overloadable)) step(float, float); 571extern float2 __attribute__((overloadable)) step(float2, float2); 572extern float3 __attribute__((overloadable)) step(float3, float3); 573extern float4 __attribute__((overloadable)) step(float4, float4); 574extern float8 __attribute__((overloadable)) step(float8, float8); 575extern float16 __attribute__((overloadable)) step(float16, float16); 576extern float2 __attribute__((overloadable)) step(float, float2); 577extern float3 __attribute__((overloadable)) step(float, float3); 578extern float4 __attribute__((overloadable)) step(float, float4); 579extern float8 __attribute__((overloadable)) step(float, float8); 580extern float16 __attribute__((overloadable)) step(float, float16); 581 582extern float __attribute__((overloadable)) smoothstep(float, float, float); 583extern float2 __attribute__((overloadable)) smoothstep(float2, float2, float2); 584extern float3 __attribute__((overloadable)) smoothstep(float3, float3, float3); 585extern float4 __attribute__((overloadable)) smoothstep(float4, float4, float4); 586extern float8 __attribute__((overloadable)) smoothstep(float8, float8, float8); 587extern float16 __attribute__((overloadable)) smoothstep(float16, float16, float16); 588extern float2 __attribute__((overloadable)) smoothstep(float, float, float2); 589extern float3 __attribute__((overloadable)) smoothstep(float, float, float3); 590extern float4 __attribute__((overloadable)) smoothstep(float, float, float4); 591extern float8 __attribute__((overloadable)) smoothstep(float, float, float8); 592extern float16 __attribute__((overloadable)) smoothstep(float, float, float16); 593 594extern float __attribute__((overloadable)) sign(float); 595extern float2 __attribute__((overloadable)) sign(float2); 596extern float3 __attribute__((overloadable)) sign(float3); 597extern float4 __attribute__((overloadable)) sign(float4); 598extern float8 __attribute__((overloadable)) sign(float8); 599extern float16 __attribute__((overloadable)) sign(float16); 600 601// 6.11.5 602extern float3 __attribute__((overloadable)) cross(float2, float2); 603extern float3 __attribute__((overloadable)) cross(float3, float3); 604extern float4 __attribute__((overloadable)) cross(float4, float4); 605 606extern float __attribute__((overloadable)) dot(float, float); 607extern float __attribute__((overloadable)) dot(float2, float2); 608extern float __attribute__((overloadable)) dot(float3, float3); 609extern float __attribute__((overloadable)) dot(float4, float4); 610 611extern float __attribute__((overloadable)) distance(float, float); 612extern float __attribute__((overloadable)) distance(float2, float2); 613extern float __attribute__((overloadable)) distance(float3, float3); 614extern float __attribute__((overloadable)) distance(float4, float4); 615 616extern float __attribute__((overloadable)) length(float); 617extern float __attribute__((overloadable)) length(float2); 618extern float __attribute__((overloadable)) length(float3); 619extern float __attribute__((overloadable)) length(float4); 620 621extern float __attribute__((overloadable)) normalize(float); 622extern float2 __attribute__((overloadable)) normalize(float2); 623extern float3 __attribute__((overloadable)) normalize(float3); 624extern float4 __attribute__((overloadable)) normalize(float4); 625 626 627// RS specific functions 628extern float randf(float); 629extern float randf2(float, float); 630extern float mapf(float, float, float, float, float); 631 632extern float __attribute__((overloadable)) frac(float); 633 634extern void debugP(int, void *); 635extern void debugPi(int, int); 636extern void debugPf(int, float); 637extern void debugF(const char *, float); 638extern void debugI32(const char *, int); 639extern void debugHexI32(const char *, int); 640 641extern void matrixLoadIdentity(void *mat); 642extern void matrixLoadFloat(void *mat, const float *f); 643extern void matrixLoadMat(void *mat, const void *newmat); 644extern void matrixLoadRotate(void *mat, float rot, float x, float y, float z); 645extern void matrixLoadScale(void *mat, float x, float y, float z); 646extern void matrixLoadTranslate(void *mat, float x, float y, float z); 647extern void matrixLoadMultiply(void *mat, const void *lhs, const void *rhs); 648extern void matrixMultiply(void *mat, const void *rhs); 649extern void matrixRotate(void *mat, float rot, float x, float y, float z); 650extern void matrixScale(void *mat, float x, float y, float z); 651extern void matrixTranslate(void *mat, float x, float y, float z); 652 653extern rs_allocation rsGetAllocation(const void *); 654 655