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