rs_math.rsh revision 717e34a50d2de026b5b66b4ccad06b7bc8b62b9e
1// Float ops 2 3extern float __attribute__((overloadable)) abs(float); 4extern float2 __attribute__((overloadable)) abs(float2); 5extern float3 __attribute__((overloadable)) abs(float3); 6extern float4 __attribute__((overloadable)) abs(float4); 7extern float8 __attribute__((overloadable)) abs(float8); 8extern float16 __attribute__((overloadable)) abs(float16); 9 10extern float __attribute__((overloadable)) acos(float); 11extern float2 __attribute__((overloadable)) acos(float2); 12extern float3 __attribute__((overloadable)) acos(float3); 13extern float4 __attribute__((overloadable)) acos(float4); 14extern float8 __attribute__((overloadable)) acos(float8); 15extern float16 __attribute__((overloadable)) acos(float16); 16 17extern float __attribute__((overloadable)) asin(float); 18extern float2 __attribute__((overloadable)) asin(float2); 19extern float3 __attribute__((overloadable)) asin(float3); 20extern float4 __attribute__((overloadable)) asin(float4); 21extern float8 __attribute__((overloadable)) asin(float8); 22extern float16 __attribute__((overloadable)) asin(float16); 23 24extern float __attribute__((overloadable)) atan(float); 25extern float2 __attribute__((overloadable)) atan(float2); 26extern float3 __attribute__((overloadable)) atan(float3); 27extern float4 __attribute__((overloadable)) atan(float4); 28extern float8 __attribute__((overloadable)) atan(float8); 29extern float16 __attribute__((overloadable)) atan(float16); 30 31extern float __attribute__((overloadable)) atan2(float, float); 32extern float2 __attribute__((overloadable)) atan2(float2, float2); 33extern float3 __attribute__((overloadable)) atan2(float3, float3); 34extern float4 __attribute__((overloadable)) atan2(float4, float4); 35extern float8 __attribute__((overloadable)) atan2(float8, float8); 36extern float16 __attribute__((overloadable)) atan2(float16, float16); 37 38extern float __attribute__((overloadable)) ceil(float); 39extern float2 __attribute__((overloadable)) ceil(float2); 40extern float3 __attribute__((overloadable)) ceil(float3); 41extern float4 __attribute__((overloadable)) ceil(float4); 42extern float8 __attribute__((overloadable)) ceil(float8); 43extern float16 __attribute__((overloadable)) ceil(float16); 44 45extern float __attribute__((overloadable)) clamp(float, float, float); 46extern float2 __attribute__((overloadable)) clamp(float2, float2, float2); 47extern float3 __attribute__((overloadable)) clamp(float3, float3, float3); 48extern float4 __attribute__((overloadable)) clamp(float4, float4, float4); 49extern float8 __attribute__((overloadable)) clamp(float8, float8, float8); 50extern float16 __attribute__((overloadable)) clamp(float16, float16, float16); 51extern float __attribute__((overloadable)) clamp(float, float, float); 52extern float2 __attribute__((overloadable)) clamp(float2, float, float); 53extern float3 __attribute__((overloadable)) clamp(float3, float, float); 54extern float4 __attribute__((overloadable)) clamp(float4, float, float); 55extern float8 __attribute__((overloadable)) clamp(float8, float, float); 56extern float16 __attribute__((overloadable)) clamp(float16, float, float); 57 58extern float __attribute__((overloadable)) copysign(float, float); 59extern float2 __attribute__((overloadable)) copysign(float2, float2); 60extern float3 __attribute__((overloadable)) copysign(float3, float3); 61extern float4 __attribute__((overloadable)) copysign(float4, float4); 62extern float8 __attribute__((overloadable)) copysign(float8, float8); 63extern float16 __attribute__((overloadable)) copysign(float16, float16); 64 65extern float __attribute__((overloadable)) cos(float); 66extern float2 __attribute__((overloadable)) cos(float2); 67extern float3 __attribute__((overloadable)) cos(float3); 68extern float4 __attribute__((overloadable)) cos(float4); 69extern float8 __attribute__((overloadable)) cos(float8); 70extern float16 __attribute__((overloadable)) cos(float16); 71 72extern float __attribute__((overloadable)) degrees(float); 73extern float2 __attribute__((overloadable)) degrees(float2); 74extern float3 __attribute__((overloadable)) degrees(float3); 75extern float4 __attribute__((overloadable)) degrees(float4); 76extern float8 __attribute__((overloadable)) degrees(float8); 77extern float16 __attribute__((overloadable)) degrees(float16); 78 79extern float __attribute__((overloadable)) exp(float); 80extern float2 __attribute__((overloadable)) exp(float2); 81extern float3 __attribute__((overloadable)) exp(float3); 82extern float4 __attribute__((overloadable)) exp(float4); 83extern float8 __attribute__((overloadable)) exp(float8); 84extern float16 __attribute__((overloadable)) exp(float16); 85 86extern float __attribute__((overloadable)) exp2(float); 87extern float2 __attribute__((overloadable)) exp2(float2); 88extern float3 __attribute__((overloadable)) exp2(float3); 89extern float4 __attribute__((overloadable)) exp2(float4); 90extern float8 __attribute__((overloadable)) exp2(float8); 91extern float16 __attribute__((overloadable)) exp2(float16); 92 93extern float __attribute__((overloadable)) exp10(float); 94extern float2 __attribute__((overloadable)) exp10(float2); 95extern float3 __attribute__((overloadable)) exp10(float3); 96extern float4 __attribute__((overloadable)) exp10(float4); 97extern float8 __attribute__((overloadable)) exp10(float8); 98extern float16 __attribute__((overloadable)) exp10(float16); 99 100extern float __attribute__((overloadable)) fabs(float); 101extern float2 __attribute__((overloadable)) fabs(float2); 102extern float3 __attribute__((overloadable)) fabs(float3); 103extern float4 __attribute__((overloadable)) fabs(float4); 104extern float8 __attribute__((overloadable)) fabs(float8); 105extern float16 __attribute__((overloadable)) fabs(float16); 106 107extern float __attribute__((overloadable)) floor(float); 108extern float2 __attribute__((overloadable)) floor(float2); 109extern float3 __attribute__((overloadable)) floor(float3); 110extern float4 __attribute__((overloadable)) floor(float4); 111extern float8 __attribute__((overloadable)) floor(float8); 112extern float16 __attribute__((overloadable)) floor(float16); 113 114extern float __attribute__((overloadable)) fmax(float, float); 115extern float2 __attribute__((overloadable)) fmax(float2, float2); 116extern float3 __attribute__((overloadable)) fmax(float3, float3); 117extern float4 __attribute__((overloadable)) fmax(float4, float4); 118extern float8 __attribute__((overloadable)) fmax(float8, float8); 119extern float16 __attribute__((overloadable)) fmax(float16, float16); 120extern float2 __attribute__((overloadable)) fmax(float2, float); 121extern float3 __attribute__((overloadable)) fmax(float3, float); 122extern float4 __attribute__((overloadable)) fmax(float4, float); 123extern float8 __attribute__((overloadable)) fmax(float8, float); 124extern float16 __attribute__((overloadable)) fmax(float16, float); 125 126extern float __attribute__((overloadable)) fmin(float, float); 127extern float2 __attribute__((overloadable)) fmin(float2, float2); 128extern float3 __attribute__((overloadable)) fmin(float3, float3); 129extern float4 __attribute__((overloadable)) fmin(float4, float4); 130extern float8 __attribute__((overloadable)) fmin(float8, float8); 131extern float16 __attribute__((overloadable)) fmin(float16, float16); 132extern float2 __attribute__((overloadable)) fmin(float2, float); 133extern float3 __attribute__((overloadable)) fmin(float3, float); 134extern float4 __attribute__((overloadable)) fmin(float4, float); 135extern float8 __attribute__((overloadable)) fmin(float8, float); 136extern float16 __attribute__((overloadable)) fmin(float16, float); 137 138extern float __attribute__((overloadable)) fmod(float, float); 139extern float2 __attribute__((overloadable)) fmod(float2, float2); 140extern float3 __attribute__((overloadable)) fmod(float3, float3); 141extern float4 __attribute__((overloadable)) fmod(float4, float4); 142extern float8 __attribute__((overloadable)) fmod(float8, float8); 143extern float16 __attribute__((overloadable)) fmod(float16, float16); 144 145extern float __attribute__((overloadable)) log(float); 146extern float2 __attribute__((overloadable)) log(float2); 147extern float3 __attribute__((overloadable)) log(float3); 148extern float4 __attribute__((overloadable)) log(float4); 149extern float8 __attribute__((overloadable)) log(float8); 150extern float16 __attribute__((overloadable)) log(float16); 151 152extern float __attribute__((overloadable)) log2(float); 153extern float2 __attribute__((overloadable)) log2(float2); 154extern float3 __attribute__((overloadable)) log2(float3); 155extern float4 __attribute__((overloadable)) log2(float4); 156extern float8 __attribute__((overloadable)) log2(float8); 157extern float16 __attribute__((overloadable)) log2(float16); 158 159extern float __attribute__((overloadable)) log10(float); 160extern float2 __attribute__((overloadable)) log10(float2); 161extern float3 __attribute__((overloadable)) log10(float3); 162extern float4 __attribute__((overloadable)) log10(float4); 163extern float8 __attribute__((overloadable)) log10(float8); 164extern float16 __attribute__((overloadable)) log10(float16); 165 166extern float __attribute__((overloadable)) max(float, float); 167extern float2 __attribute__((overloadable)) max(float2, float2); 168extern float3 __attribute__((overloadable)) max(float3, float3); 169extern float4 __attribute__((overloadable)) max(float4, float4); 170extern float8 __attribute__((overloadable)) max(float8, float8); 171extern float16 __attribute__((overloadable)) max(float16, float16); 172 173extern float __attribute__((overloadable)) min(float, float); 174extern float2 __attribute__((overloadable)) min(float2, float2); 175extern float3 __attribute__((overloadable)) min(float3, float3); 176extern float4 __attribute__((overloadable)) min(float4, float4); 177extern float8 __attribute__((overloadable)) min(float8, float8); 178extern float16 __attribute__((overloadable)) min(float16, float16); 179 180extern float __attribute__((overloadable)) mix(float, float, float); 181extern float2 __attribute__((overloadable)) mix(float2, float2, float2); 182extern float3 __attribute__((overloadable)) mix(float3, float3, float3); 183extern float4 __attribute__((overloadable)) mix(float4, float4, float4); 184extern float8 __attribute__((overloadable)) mix(float8, float8, float8); 185extern float16 __attribute__((overloadable)) mix(float16, float16, float16); 186extern float __attribute__((overloadable)) mix(float, float, float); 187extern float2 __attribute__((overloadable)) mix(float2, float2, float); 188extern float3 __attribute__((overloadable)) mix(float3, float3, float); 189extern float4 __attribute__((overloadable)) mix(float4, float4, float); 190extern float8 __attribute__((overloadable)) mix(float8, float8, float); 191extern float16 __attribute__((overloadable)) mix(float16, float16, float); 192 193extern float __attribute__((overloadable)) pow(float, float); 194extern float2 __attribute__((overloadable)) pow(float2, float2); 195extern float3 __attribute__((overloadable)) pow(float3, float3); 196extern float4 __attribute__((overloadable)) pow(float4, float4); 197extern float8 __attribute__((overloadable)) pow(float8, float8); 198extern float16 __attribute__((overloadable)) pow(float16, float16); 199 200extern float __attribute__((overloadable)) radians(float); 201extern float2 __attribute__((overloadable)) radians(float2); 202extern float3 __attribute__((overloadable)) radians(float3); 203extern float4 __attribute__((overloadable)) radians(float4); 204extern float8 __attribute__((overloadable)) radians(float8); 205extern float16 __attribute__((overloadable)) radians(float16); 206 207extern float __attribute__((overloadable)) rint(float); 208extern float2 __attribute__((overloadable)) rint(float2); 209extern float3 __attribute__((overloadable)) rint(float3); 210extern float4 __attribute__((overloadable)) rint(float4); 211extern float8 __attribute__((overloadable)) rint(float8); 212extern float16 __attribute__((overloadable)) rint(float16); 213 214extern float __attribute__((overloadable)) round(float); 215extern float2 __attribute__((overloadable)) round(float2); 216extern float3 __attribute__((overloadable)) round(float3); 217extern float4 __attribute__((overloadable)) round(float4); 218extern float8 __attribute__((overloadable)) round(float8); 219extern float16 __attribute__((overloadable)) round(float16); 220 221extern float __attribute__((overloadable)) rsqrt(float); 222extern float2 __attribute__((overloadable)) rsqrt(float2); 223extern float3 __attribute__((overloadable)) rsqrt(float3); 224extern float4 __attribute__((overloadable)) rsqrt(float4); 225extern float8 __attribute__((overloadable)) rsqrt(float8); 226extern float16 __attribute__((overloadable)) rsqrt(float16); 227 228extern float __attribute__((overloadable)) sign(float); 229extern float2 __attribute__((overloadable)) sign(float2); 230extern float3 __attribute__((overloadable)) sign(float3); 231extern float4 __attribute__((overloadable)) sign(float4); 232extern float8 __attribute__((overloadable)) sign(float8); 233extern float16 __attribute__((overloadable)) sign(float16); 234 235extern float __attribute__((overloadable)) sin(float); 236extern float2 __attribute__((overloadable)) sin(float2); 237extern float3 __attribute__((overloadable)) sin(float3); 238extern float4 __attribute__((overloadable)) sin(float4); 239extern float8 __attribute__((overloadable)) sin(float8); 240extern float16 __attribute__((overloadable)) sin(float16); 241 242extern float __attribute__((overloadable)) sqrt(float); 243extern float2 __attribute__((overloadable)) sqrt(float2); 244extern float3 __attribute__((overloadable)) sqrt(float3); 245extern float4 __attribute__((overloadable)) sqrt(float4); 246extern float8 __attribute__((overloadable)) sqrt(float8); 247extern float16 __attribute__((overloadable)) sqrt(float16); 248 249extern float __attribute__((overloadable)) tan(float); 250extern float2 __attribute__((overloadable)) tan(float2); 251extern float3 __attribute__((overloadable)) tan(float3); 252extern float4 __attribute__((overloadable)) tan(float4); 253extern float8 __attribute__((overloadable)) tan(float8); 254extern float16 __attribute__((overloadable)) tan(float16); 255 256extern float __attribute__((overloadable)) trunc(float); 257extern float2 __attribute__((overloadable)) trunc(float2); 258extern float3 __attribute__((overloadable)) trunc(float3); 259extern float4 __attribute__((overloadable)) trunc(float4); 260extern float8 __attribute__((overloadable)) trunc(float8); 261extern float16 __attribute__((overloadable)) trunc(float16); 262 263 264 265 266 267 268// Int ops 269 270extern int __attribute__((overloadable)) abs(int); 271extern int2 __attribute__((overloadable)) abs(int2); 272extern int3 __attribute__((overloadable)) abs(int3); 273extern int4 __attribute__((overloadable)) abs(int4); 274extern int8 __attribute__((overloadable)) abs(int8); 275extern int16 __attribute__((overloadable)) abs(int16); 276 277 278 279/* 280extern float modf(float, float); 281extern float randf(float); 282extern float randf2(float, float); 283extern float fracf(float); 284extern float lerpf(float, float, float); 285extern float mapf(float, float, float, float, float); 286*/ 287 288