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