15bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# Copyright (C) 2016 The Android Open Source Project
25bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond#
35bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# Licensed under the Apache License, Version 2.0 (the "License");
45bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# you may not use this file except in compliance with the License.
55bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# You may obtain a copy of the License at
65bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond#
75bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond#      http://www.apache.org/licenses/LICENSE-2.0
85bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond#
95bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# Unless required by applicable law or agreed to in writing, software
105bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# distributed under the License is distributed on an "AS IS" BASIS,
115bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
125bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# See the License for the specific language governing permissions and
135bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond# limitations under the License.
145bbcc3861c44435f89481f80946ef5c9c49968f2Luke Drummond
15dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo'''A list of signatures for RS builtin functions and util functions for them.
16dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
17a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummondfrom __future__ import absolute_import
18a3c6f62775506c95afd556e617f14d7a28839f01Luke Drummond
19dcecc0c8d22e894525e25a122ce25129b51338f2Dean De LeoFunction signature syntax is usually C-like, however, fixed values can also be
20dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leospecified for those functions where the input range is restricted.
21dcecc0c8d22e894525e25a122ce25129b51338f2Dean De LeoLines in the function table beginning with - are comments.
22dcecc0c8d22e894525e25a122ce25129b51338f2Dean De LeoAlso contains utility functions to build an LLDB expression from a single
23dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofunction line.
24dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo'''
25dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
26dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoimport re
27dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
28dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo# Remove blank and comment lines using a lambda.
29dcecc0c8d22e894525e25a122ce25129b51338f2Dean De LeoFUNC_LIST = filter(lambda line: line.strip()
30dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo                                and not line.strip().startswith('-'), '''
31dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo- math functions
32dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
33dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar abs(char v);
34dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 abs(char2 v);
35dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 abs(char3 v);
36dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 abs(char4 v);
37dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint abs(int v);
38dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 abs(int2 v);
39dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 abs(int3 v);
40dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 abs(int4 v);
41dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort abs(short v);
42dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 abs(short2 v);
43dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 abs(short3 v);
44dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 abs(short4 v);
45dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
46dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat acos(float v);
47dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 acos(float2 v);
48dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 acos(float3 v);
49dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 acos(float4 v);
50dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
51dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat acosh(float v);
52dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 acosh(float2 v);
53dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 acosh(float3 v);
54dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 acosh(float4 v);
55dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
56dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat acospi(float v);
57dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 acospi(float2 v);
58dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 acospi(float3 v);
59dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 acospi(float4 v);
60dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
61dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat asin(float v);
62dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 asin(float2 v);
63dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 asin(float3 v);
64dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 asin(float4 v);
65dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
66dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat asinh(float v);
67dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 asinh(float2 v);
68dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 asinh(float3 v);
69dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 asinh(float4 v);
70dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
71dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat asinpi(float v);
72dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 asinpi(float2 v);
73dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 asinpi(float3 v);
74dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 asinpi(float4 v);
75dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
76dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat atan(float v);
77dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 atan(float2 v);
78dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 atan(float3 v);
79dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 atan(float4 v);
80dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
81dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat atan2(float numerator, float denominator);
82dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 atan2(float2 numerator, float2 denominator);
83dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 atan2(float3 numerator, float3 denominator);
84dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 atan2(float4 numerator, float4 denominator);
85dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
86dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat atan2pi(float numerator, float denominator);
87dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 atan2pi(float2 numerator, float2 denominator);
88dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 atan2pi(float3 numerator, float3 denominator);
89dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 atan2pi(float4 numerator, float4 denominator);
90dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
91dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat atanh(float v);
92dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 atanh(float2 v);
93dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 atanh(float3 v);
94dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 atanh(float4 v);
95dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
96dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat atanpi(float v);
97dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 atanpi(float2 v);
98dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 atanpi(float3 v);
99dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 atanpi(float4 v);
100dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
101dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat cbrt(float v);
102dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 cbrt(float2 v);
103dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 cbrt(float3 v);
104dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 cbrt(float4 v);
105dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
106dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat ceil(float v);
107dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 ceil(float2 v);
108dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 ceil(float3 v);
109dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 ceil(float4 v);
110dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
111dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar clamp(char value, char min_value, char max_value);
112dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 clamp(char2 value, char min_value, char max_value);
113dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 clamp(char2 value, char2 min_value, char2 max_value);
114dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 clamp(char3 value, char min_value, char max_value);
115dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 clamp(char3 value, char3 min_value, char3 max_value);
116dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 clamp(char4 value, char min_value, char max_value);
117dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 clamp(char4 value, char4 min_value, char4 max_value);
118dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat clamp(float value, float min_value, float max_value);
119dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 clamp(float2 value, float min_value, float max_value);
120dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 clamp(float2 value, float2 min_value, float2 max_value);
121dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 clamp(float3 value, float min_value, float max_value);
122dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 clamp(float3 value, float3 min_value, float3 max_value);
123dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 clamp(float4 value, float min_value, float max_value);
124dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 clamp(float4 value, float4 min_value, float4 max_value);
125dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint clamp(int value, int min_value, int max_value);
126dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 clamp(int2 value, int min_value, int max_value);
127dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 clamp(int2 value, int2 min_value, int2 max_value);
128dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 clamp(int3 value, int min_value, int max_value);
129dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 clamp(int3 value, int3 min_value, int3 max_value);
130dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 clamp(int4 value, int min_value, int max_value);
131dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 clamp(int4 value, int4 min_value, int4 max_value);
132dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong clamp(long value, long min_value, long max_value);
133dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 clamp(long2 value, long min_value, long max_value);
134dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 clamp(long2 value, long2 min_value, long2 max_value);
135dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 clamp(long3 value, long min_value, long max_value);
136dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 clamp(long3 value, long3 min_value, long3 max_value);
137dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 clamp(long4 value, long min_value, long max_value);
138dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 clamp(long4 value, long4 min_value, long4 max_value);
139dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort clamp(short value, short min_value, short max_value);
140dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 clamp(short2 value, short min_value, short max_value);
141dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 clamp(short2 value, short2 min_value, short2 max_value);
142dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 clamp(short3 value, short min_value, short max_value);
143dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 clamp(short3 value, short3 min_value, short3 max_value);
144dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 clamp(short4 value, short min_value, short max_value);
145dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 clamp(short4 value, short4 min_value, short4 max_value);
146dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar clamp(uchar value, uchar min_value, uchar max_value);
147dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 clamp(uchar2 value, uchar min_value, uchar max_value);
148dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 clamp(uchar2 value, uchar2 min_value, uchar2 max_value);
149dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 clamp(uchar3 value, uchar min_value, uchar max_value);
150dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 clamp(uchar3 value, uchar3 min_value, uchar3 max_value);
151dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 clamp(uchar4 value, uchar min_value, uchar max_value);
152dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 clamp(uchar4 value, uchar4 min_value, uchar4 max_value);
153dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint clamp(uint value, uint min_value, uint max_value);
154dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 clamp(uint2 value, uint min_value, uint max_value);
155dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 clamp(uint2 value, uint2 min_value, uint2 max_value);
156dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 clamp(uint3 value, uint min_value, uint max_value);
157dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 clamp(uint3 value, uint3 min_value, uint3 max_value);
158dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 clamp(uint4 value, uint min_value, uint max_value);
159dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 clamp(uint4 value, uint4 min_value, uint4 max_value);
160dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong clamp(ulong value, ulong min_value, ulong max_value);
161dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 clamp(ulong2 value, ulong min_value, ulong max_value);
162dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 clamp(ulong2 value, ulong2 min_value, ulong2 max_value);
163dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 clamp(ulong3 value, ulong min_value, ulong max_value);
164dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 clamp(ulong3 value, ulong3 min_value, ulong3 max_value);
165dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 clamp(ulong4 value, ulong min_value, ulong max_value);
166dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 clamp(ulong4 value, ulong4 min_value, ulong4 max_value);
167dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort clamp(ushort value, ushort min_value, ushort max_value);
168dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 clamp(ushort2 value, ushort min_value, ushort max_value);
169dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 clamp(ushort2 value, ushort2 min_value, ushort2 max_value);
170dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 clamp(ushort3 value, ushort min_value, ushort max_value);
171dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 clamp(ushort3 value, ushort3 min_value, ushort3 max_value);
172dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 clamp(ushort4 value, ushort min_value, ushort max_value);
173dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 clamp(ushort4 value, ushort4 min_value, ushort4 max_value);
174dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
175dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar clz(char value);
176dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 clz(char2 value);
177dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 clz(char3 value);
178dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 clz(char4 value);
179dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint clz(int value);
180dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 clz(int2 value);
181dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 clz(int3 value);
182dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 clz(int4 value);
183dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort clz(short value);
184dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 clz(short2 value);
185dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 clz(short3 value);
186dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 clz(short4 value);
187dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar clz(uchar value);
188dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 clz(uchar2 value);
189dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 clz(uchar3 value);
190dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 clz(uchar4 value);
191dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint clz(uint value);
192dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 clz(uint2 value);
193dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 clz(uint3 value);
194dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 clz(uint4 value);
195dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort clz(ushort value);
196dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 clz(ushort2 value);
197dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 clz(ushort3 value);
198dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 clz(ushort4 value);
199dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
200dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat copysign(float magnitude_value, float sign_value);
201dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 copysign(float2 magnitude_value, float2 sign_value);
202dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 copysign(float3 magnitude_value, float3 sign_value);
203dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 copysign(float4 magnitude_value, float4 sign_value);
204dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
205dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat cos(float v);
206dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 cos(float2 v);
207dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 cos(float3 v);
208dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 cos(float4 v);
209dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
210dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat cosh(float v);
211dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 cosh(float2 v);
212dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 cosh(float3 v);
213dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 cosh(float4 v);
214dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
215dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat cospi(float v);
216dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 cospi(float2 v);
217dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 cospi(float3 v);
218dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 cospi(float4 v);
219dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
220dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat erf(float v);
221dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 erf(float2 v);
222dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 erf(float3 v);
223dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 erf(float4 v);
224dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
225dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat erfc(float v);
226dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 erfc(float2 v);
227dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 erfc(float3 v);
228dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 erfc(float4 v);
229dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
230dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat exp(float v);
231dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 exp(float2 v);
232dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 exp(float3 v);
233dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 exp(float4 v);
234dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
235dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat exp10(float v);
236dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 exp10(float2 v);
237dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 exp10(float3 v);
238dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 exp10(float4 v);
239dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
240dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat exp2(float v);
241dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 exp2(float2 v);
242dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 exp2(float3 v);
243dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 exp2(float4 v);
244dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
245dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat expm1(float v);
246dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 expm1(float2 v);
247dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 expm1(float3 v);
248dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 expm1(float4 v);
249dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
250dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fabs(float v);
251dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 fabs(float2 v);
252dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 fabs(float3 v);
253dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 fabs(float4 v);
254dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
255dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fdim(float a, float b);
256dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 fdim(float2 a, float2 b);
257dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 fdim(float3 a, float3 b);
258dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 fdim(float4 a, float4 b);
259dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
260dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat floor(float v);
261dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 floor(float2 v);
262dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 floor(float3 v);
263dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 floor(float4 v);
264dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
265dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fma(float multiplicand1, float multiplicand2, float offset);
266dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 fma(float2 multiplicand1, float2 multiplicand2, float2 offset);
267dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 fma(float3 multiplicand1, float3 multiplicand2, float3 offset);
268dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 fma(float4 multiplicand1, float4 multiplicand2, float4 offset);
269dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
270dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fmax(float a, float b);
271dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 fmax(float2 a, float b);
272dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 fmax(float2 a, float2 b);
273dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 fmax(float3 a, float b);
274dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 fmax(float3 a, float3 b);
275dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 fmax(float4 a, float b);
276dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 fmax(float4 a, float4 b);
277dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
278dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fmin(float a, float b);
279dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 fmin(float2 a, float b);
280dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 fmin(float2 a, float2 b);
281dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 fmin(float3 a, float b);
282dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 fmin(float3 a, float3 b);
283dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 fmin(float4 a, float b);
284dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 fmin(float4 a, float4 b);
285dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
286dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fmod(float numerator, float denominator);
287dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 fmod(float2 numerator, float2 denominator);
288dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 fmod(float3 numerator, float3 denominator);
289dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 fmod(float4 numerator, float4 denominator);
290dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
291dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fract(float v, float* floor);
292dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 fract(float2 v, float2* floor);
293dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 fract(float3 v, float3* floor);
294dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 fract(float4 v, float4* floor);
295dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
296dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat frexp(float v, int* exponent);
297dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 frexp(float2 v, int2* exponent);
298dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 frexp(float3 v, int3* exponent);
299dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 frexp(float4 v, int4* exponent);
300dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
301dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat half_recip(float v);
302dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 half_recip(float2 v);
303dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 half_recip(float3 v);
304dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 half_recip(float4 v);
305dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
306dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat half_rsqrt(float v);
307dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 half_rsqrt(float2 v);
308dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 half_rsqrt(float3 v);
309dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 half_rsqrt(float4 v);
310dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
311dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat half_sqrt(float v);
312dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 half_sqrt(float2 v);
313dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 half_sqrt(float3 v);
314dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 half_sqrt(float4 v);
315dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
316dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat hypot(float a, float b);
317dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 hypot(float2 a, float2 b);
318dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 hypot(float3 a, float3 b);
319dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 hypot(float4 a, float4 b);
320dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
321dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint ilogb(float v);
322dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 ilogb(float2 v);
323dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 ilogb(float3 v);
324dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 ilogb(float4 v);
325dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
326dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat ldexp(float mantissa, int exponent);
327dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 ldexp(float2 mantissa, int exponent);
328dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 ldexp(float2 mantissa, int2 exponent);
329dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 ldexp(float3 mantissa, int exponent);
330dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 ldexp(float3 mantissa, int3 exponent);
331dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 ldexp(float4 mantissa, int exponent);
332dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 ldexp(float4 mantissa, int4 exponent);
333dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
334dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat lgamma(float v);
335dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat lgamma(float v, int* sign_of_gamma);
336dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 lgamma(float2 v);
337dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 lgamma(float2 v, int2* sign_of_gamma);
338dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 lgamma(float3 v);
339dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 lgamma(float3 v, int3* sign_of_gamma);
340dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 lgamma(float4 v);
341dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 lgamma(float4 v, int4* sign_of_gamma);
342dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
343dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat log(float v);
344dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 log(float2 v);
345dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 log(float3 v);
346dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 log(float4 v);
347dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
348dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat log10(float v);
349dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 log10(float2 v);
350dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 log10(float3 v);
351dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 log10(float4 v);
352dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
353dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat log1p(float v);
354dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 log1p(float2 v);
355dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 log1p(float3 v);
356dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 log1p(float4 v);
357dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
358dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat log2(float v);
359dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 log2(float2 v);
360dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 log2(float3 v);
361dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 log2(float4 v);
362dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
363dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat logb(float v);
364dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 logb(float2 v);
365dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 logb(float3 v);
366dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 logb(float4 v);
367dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
368dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat mad(float multiplicand1, float multiplicand2, float offset);
369dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 mad(float2 multiplicand1, float2 multiplicand2, float2 offset);
370dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 mad(float3 multiplicand1, float3 multiplicand2, float3 offset);
371dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 mad(float4 multiplicand1, float4 multiplicand2, float4 offset);
372dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
373dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar max(char a, char b);
374dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 max(char2 a, char2 b);
375dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 max(char3 a, char3 b);
376dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 max(char4 a, char4 b);
377dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat max(float a, float b);
378dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 max(float2 a, float2 b);
379dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 max(float3 a, float3 b);
380dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 max(float4 a, float4 b);
381dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint max(int a, int b);
382dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 max(int2 a, int2 b);
383dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 max(int3 a, int3 b);
384dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 max(int4 a, int4 b);
385dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong max(long a, long b);
386dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 max(long2 a, long2 b);
387dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 max(long3 a, long3 b);
388dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 max(long4 a, long4 b);
389dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort max(short a, short b);
390dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 max(short2 a, short2 b);
391dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 max(short3 a, short3 b);
392dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 max(short4 a, short4 b);
393dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar max(uchar a, uchar b);
394dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 max(uchar2 a, uchar2 b);
395dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 max(uchar3 a, uchar3 b);
396dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 max(uchar4 a, uchar4 b);
397dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint max(uint a, uint b);
398dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 max(uint2 a, uint2 b);
399dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 max(uint3 a, uint3 b);
400dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 max(uint4 a, uint4 b);
401dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong max(ulong a, ulong b);
402dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 max(ulong2 a, ulong2 b);
403dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 max(ulong3 a, ulong3 b);
404dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 max(ulong4 a, ulong4 b);
405dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort max(ushort a, ushort b);
406dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 max(ushort2 a, ushort2 b);
407dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 max(ushort3 a, ushort3 b);
408dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 max(ushort4 a, ushort4 b);
409dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
410dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar min(char a, char b);
411dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 min(char2 a, char2 b);
412dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 min(char3 a, char3 b);
413dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 min(char4 a, char4 b);
414dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat min(float a, float b);
415dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 min(float2 a, float2 b);
416dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 min(float3 a, float3 b);
417dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 min(float4 a, float4 b);
418dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint min(int a, int b);
419dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 min(int2 a, int2 b);
420dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 min(int3 a, int3 b);
421dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 min(int4 a, int4 b);
422dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong min(long a, long b);
423dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 min(long2 a, long2 b);
424dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 min(long3 a, long3 b);
425dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 min(long4 a, long4 b);
426dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort min(short a, short b);
427dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 min(short2 a, short2 b);
428dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 min(short3 a, short3 b);
429dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 min(short4 a, short4 b);
430dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar min(uchar a, uchar b);
431dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 min(uchar2 a, uchar2 b);
432dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 min(uchar3 a, uchar3 b);
433dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 min(uchar4 a, uchar4 b);
434dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint min(uint a, uint b);
435dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 min(uint2 a, uint2 b);
436dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 min(uint3 a, uint3 b);
437dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 min(uint4 a, uint4 b);
438dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong min(ulong a, ulong b);
439dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 min(ulong2 a, ulong2 b);
440dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 min(ulong3 a, ulong3 b);
441dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 min(ulong4 a, ulong4 b);
442dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort min(ushort a, ushort b);
443dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 min(ushort2 a, ushort2 b);
444dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 min(ushort3 a, ushort3 b);
445dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 min(ushort4 a, ushort4 b);
446dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
447dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat mix(float start, float stop, float fraction);
448dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 mix(float2 start, float2 stop, float fraction);
449dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 mix(float2 start, float2 stop, float2 fraction);
450dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 mix(float3 start, float3 stop, float fraction);
451dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 mix(float3 start, float3 stop, float3 fraction);
452dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 mix(float4 start, float4 stop, float fraction);
453dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 mix(float4 start, float4 stop, float4 fraction);
454dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
455dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat modf(float v, float* integral_part);
456dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 modf(float2 v, float2* integral_part);
457dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 modf(float3 v, float3* integral_part);
458dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 modf(float4 v, float4* integral_part);
459dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
460dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat nan(uint v);
461dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
462dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_acos(float v);
463dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_acos(float2 v);
464dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_acos(float3 v);
465dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_acos(float4 v);
466dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
467dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_acosh(float v);
468dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_acosh(float2 v);
469dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_acosh(float3 v);
470dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_acosh(float4 v);
471dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
472dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_acospi(float v);
473dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_acospi(float2 v);
474dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_acospi(float3 v);
475dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_acospi(float4 v);
476dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
477dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_asin(float v);
478dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_asin(float2 v);
479dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_asin(float3 v);
480dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_asin(float4 v);
481dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
482dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_asinh(float v);
483dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_asinh(float2 v);
484dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_asinh(float3 v);
485dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_asinh(float4 v);
486dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
487dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_asinpi(float v);
488dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_asinpi(float2 v);
489dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_asinpi(float3 v);
490dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_asinpi(float4 v);
491dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
492dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_atan(float v);
493dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_atan(float2 v);
494dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_atan(float3 v);
495dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_atan(float4 v);
496dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
497dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_atan2(float numerator, float denominator);
498dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_atan2(float2 numerator, float2 denominator);
499dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_atan2(float3 numerator, float3 denominator);
500dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_atan2(float4 numerator, float4 denominator);
501dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
502dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_atan2pi(float numerator, float denominator);
503dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_atan2pi(float2 numerator, float2 denominator);
504dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_atan2pi(float3 numerator, float3 denominator);
505dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_atan2pi(float4 numerator, float4 denominator);
506dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
507dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_atanh(float v);
508dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_atanh(float2 v);
509dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_atanh(float3 v);
510dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_atanh(float4 v);
511dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
512dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_atanpi(float v);
513dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_atanpi(float2 v);
514dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_atanpi(float3 v);
515dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_atanpi(float4 v);
516dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
517dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_cbrt(float v);
518dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_cbrt(float2 v);
519dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_cbrt(float3 v);
520dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_cbrt(float4 v);
521dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
522dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_cos(float v);
523dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_cos(float2 v);
524dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_cos(float3 v);
525dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_cos(float4 v);
526dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
527dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_cosh(float v);
528dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_cosh(float2 v);
529dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_cosh(float3 v);
530dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_cosh(float4 v);
531dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
532dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_cospi(float v);
533dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_cospi(float2 v);
534dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_cospi(float3 v);
535dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_cospi(float4 v);
536dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
537dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_divide(float left_vector, float right_vector);
538dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_divide(float2 left_vector, float2 right_vector);
539dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_divide(float3 left_vector, float3 right_vector);
540dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_divide(float4 left_vector, float4 right_vector);
541dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
542dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_exp(float v);
543dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_exp(float2 v);
544dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_exp(float3 v);
545dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_exp(float4 v);
546dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
547dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_exp10(float v);
548dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_exp10(float2 v);
549dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_exp10(float3 v);
550dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_exp10(float4 v);
551dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
552dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_exp2(float v);
553dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_exp2(float2 v);
554dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_exp2(float3 v);
555dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_exp2(float4 v);
556dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
557dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_expm1(float v);
558dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_expm1(float2 v);
559dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_expm1(float3 v);
560dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_expm1(float4 v);
561dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
562dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_hypot(float a, float b);
563dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_hypot(float2 a, float2 b);
564dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_hypot(float3 a, float3 b);
565dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_hypot(float4 a, float4 b);
566dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
567dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_log(float v);
568dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_log(float2 v);
569dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_log(float3 v);
570dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_log(float4 v);
571dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
572dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_log10(float v);
573dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_log10(float2 v);
574dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_log10(float3 v);
575dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_log10(float4 v);
576dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
577dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_log1p(float v);
578dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_log1p(float2 v);
579dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_log1p(float3 v);
580dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_log1p(float4 v);
581dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
582dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_log2(float v);
583dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_log2(float2 v);
584dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_log2(float3 v);
585dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_log2(float4 v);
586dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
587dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_powr(float base, float exponent);
588dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_powr(float2 base, float2 exponent);
589dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_powr(float3 base, float3 exponent);
590dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_powr(float4 base, float4 exponent);
591dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
592dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_recip(float v);
593dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_recip(float2 v);
594dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_recip(float3 v);
595dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_recip(float4 v);
596dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
597dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_rootn(float v, int n);
598dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_rootn(float2 v, int2 n);
599dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_rootn(float3 v, int3 n);
600dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_rootn(float4 v, int4 n);
601dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
602dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_rsqrt(float v);
603dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_rsqrt(float2 v);
604dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_rsqrt(float3 v);
605dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_rsqrt(float4 v);
606dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
607dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_sin(float v);
608dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_sin(float2 v);
609dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_sin(float3 v);
610dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_sin(float4 v);
611dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
612dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_sincos(float v, float* cos);
613dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_sincos(float2 v, float2* cos);
614dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_sincos(float3 v, float3* cos);
615dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_sincos(float4 v, float4* cos);
616dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
617dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_sinh(float v);
618dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_sinh(float2 v);
619dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_sinh(float3 v);
620dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_sinh(float4 v);
621dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
622dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_sinpi(float v);
623dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_sinpi(float2 v);
624dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_sinpi(float3 v);
625dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_sinpi(float4 v);
626dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
627dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_sqrt(float v);
628dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_sqrt(float2 v);
629dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_sqrt(float3 v);
630dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_sqrt(float4 v);
631dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
632dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_tan(float v);
633dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_tan(float2 v);
634dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_tan(float3 v);
635dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_tan(float4 v);
636dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
637dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_tanh(float v);
638dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_tanh(float2 v);
639dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_tanh(float3 v);
640dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_tanh(float4 v);
641dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
642dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_tanpi(float v);
643dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_tanpi(float2 v);
644dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_tanpi(float3 v);
645dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_tanpi(float4 v);
646dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
647dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat nextafter(float v, float target);
648dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 nextafter(float2 v, float2 target);
649dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 nextafter(float3 v, float3 target);
650dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 nextafter(float4 v, float4 target);
651dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
652dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat pow(float base, float exponent);
653dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 pow(float2 base, float2 exponent);
654dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 pow(float3 base, float3 exponent);
655dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 pow(float4 base, float4 exponent);
656dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
657dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat pown(float base, int exponent);
658dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 pown(float2 base, int2 exponent);
659dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 pown(float3 base, int3 exponent);
660dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 pown(float4 base, int4 exponent);
661dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
662dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat powr(float base, float exponent);
663dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 powr(float2 base, float2 exponent);
664dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 powr(float3 base, float3 exponent);
665dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 powr(float4 base, float4 exponent);
666dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
667dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat radians(float v);
668dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 radians(float2 v);
669dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 radians(float3 v);
670dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 radians(float4 v);
671dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
672dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat remainder(float numerator, float denominator);
673dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 remainder(float2 numerator, float2 denominator);
674dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 remainder(float3 numerator, float3 denominator);
675dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 remainder(float4 numerator, float4 denominator);
676dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
677dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat remquo(float numerator, float denominator, int* quotient);
678dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 remquo(float2 numerator, float2 denominator, int2* quotient);
679dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 remquo(float3 numerator, float3 denominator, int3* quotient);
680dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 remquo(float4 numerator, float4 denominator, int4* quotient);
681dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
682dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat rint(float v);
683dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 rint(float2 v);
684dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 rint(float3 v);
685dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rint(float4 v);
686dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
687dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat rootn(float v, int n);
688dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 rootn(float2 v, int2 n);
689dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 rootn(float3 v, int3 n);
690dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rootn(float4 v, int4 n);
691dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
692dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat round(float v);
693dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 round(float2 v);
694dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 round(float3 v);
695dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 round(float4 v);
696dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
697dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar rsClamp(char amount, char low, char high);
698dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint rsClamp(int amount, int low, int high);
699dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort rsClamp(short amount, short low, short high);
700dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar rsClamp(uchar amount, uchar low, uchar high);
701dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint rsClamp(uint amount, uint low, uint high);
702dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort rsClamp(ushort amount, ushort low, ushort high);
703dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
704dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat rsFrac(float v);
705dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
706dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat rsRand(float max_value);
707dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat rsRand(float min_value, float max_value);
708dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint rsRand(int max_value);
709dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint rsRand(int min_value, int max_value);
710dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
711dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat rsqrt(float v);
712dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 rsqrt(float2 v);
713dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 rsqrt(float3 v);
714dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rsqrt(float4 v);
715dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
716dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat sign(float v);
717dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 sign(float2 v);
718dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 sign(float3 v);
719dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 sign(float4 v);
720dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
721dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat sin(float v);
722dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 sin(float2 v);
723dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 sin(float3 v);
724dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 sin(float4 v);
725dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
726dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat sincos(float v, float* cos);
727dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 sincos(float2 v, float2* cos);
728dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 sincos(float3 v, float3* cos);
729dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 sincos(float4 v, float4* cos);
730dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
731dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat sinh(float v);
732dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 sinh(float2 v);
733dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 sinh(float3 v);
734dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 sinh(float4 v);
735dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
736dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat sinpi(float v);
737dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 sinpi(float2 v);
738dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 sinpi(float3 v);
739dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 sinpi(float4 v);
740dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
741dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat sqrt(float v);
742dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 sqrt(float2 v);
743dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 sqrt(float3 v);
744dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 sqrt(float4 v);
745dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
746dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat step(float edge, float v);
747dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 step(float edge, float2 v);
748dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 step(float2 edge, float v);
749dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 step(float2 edge, float2 v);
750dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 step(float edge, float3 v);
751dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 step(float3 edge, float v);
752dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 step(float3 edge, float3 v);
753dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 step(float edge, float4 v);
754dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 step(float4 edge, float v);
755dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 step(float4 edge, float4 v);
756dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
757dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat tan(float v);
758dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 tan(float2 v);
759dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 tan(float3 v);
760dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 tan(float4 v);
761dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
762dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat tanh(float v);
763dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 tanh(float2 v);
764dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 tanh(float3 v);
765dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 tanh(float4 v);
766dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
767dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat tanpi(float v);
768dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 tanpi(float2 v);
769dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 tanpi(float3 v);
770dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 tanpi(float4 v);
771dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
772dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat tgamma(float v);
773dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 tgamma(float2 v);
774dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 tgamma(float3 v);
775dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 tgamma(float4 v);
776dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
777dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat trunc(float v);
778dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 trunc(float2 v);
779dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 trunc(float3 v);
780dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 trunc(float4 v);
781dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
782dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 rsPackColorTo8888(float r, float g, float b);
783dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 rsPackColorTo8888(float r, float g, float b, float a);
784dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 rsPackColorTo8888(float3 color);
785dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 rsPackColorTo8888(float4 color);
786dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rsUnpackColor8888(uchar4 c);
787dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
788dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rsYuvToRGBA_float4(uchar y, uchar u, uchar v);
789dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 rsYuvToRGBA_uchar4(uchar y, uchar u, uchar v);
790dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
791dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo- vector functions
792dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
793dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 cross(float3 left_vector, float3 right_vector);
794dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 cross(float4 left_vector, float4 right_vector);
795dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
796dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat distance(float  left_vector, float  right_vector);
797dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat distance(float2 left_vector, float2 right_vector);
798dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat distance(float3 left_vector, float3 right_vector);
799dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat distance(float4 left_vector, float4 right_vector);
800dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
801dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat dot(float  left_vector, float  right_vector);
802dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat dot(float2 left_vector, float2 right_vector);
803dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat dot(float3 left_vector, float3 right_vector);
804dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat dot(float4 left_vector, float4 right_vector);
805dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
806dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fast_distance(float  left_vector, float  right_vector);
807dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fast_distance(float2 left_vector, float2 right_vector);
808dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fast_distance(float3 left_vector, float3 right_vector);
809dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fast_distance(float4 left_vector, float4 right_vector);
810dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
811dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fast_length(float  v);
812dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fast_length(float2 v);
813dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fast_length(float3 v);
814dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat fast_length(float4 v);
815dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
816dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat  fast_normalize(float  v);
817dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 fast_normalize(float2 v);
818dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 fast_normalize(float3 v);
819dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 fast_normalize(float4 v);
820dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
821dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat length(float  v);
822dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat length(float2 v);
823dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat length(float3 v);
824dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat length(float4 v);
825dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
826dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_distance(float  left_vector, float  right_vector);
827dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_distance(float2 left_vector, float2 right_vector);
828dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_distance(float3 left_vector, float3 right_vector);
829dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_distance(float4 left_vector, float4 right_vector);
830dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
831dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_length(float  v);
832dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_length(float2 v);
833dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_length(float3 v);
834dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat native_length(float4 v);
835dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
836dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat  native_normalize(float  v);
837dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 native_normalize(float2 v);
838dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 native_normalize(float3 v);
839dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 native_normalize(float4 v);
840dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
841dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat  normalize(float  v);
842dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 normalize(float2 v);
843dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 normalize(float3 v);
844dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 normalize(float4 v);
845dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
846dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo- conversion functions
847dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
848dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 convert_char2(char2 v);
849dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 convert_char2(double2 v);
850dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 convert_char2(float2 v);
851dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 convert_char2(int2 v);
852dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 convert_char2(long2 v);
853dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 convert_char2(short2 v);
854dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 convert_char2(uchar2 v);
855dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 convert_char2(uint2 v);
856dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 convert_char2(ulong2 v);
857dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar2 convert_char2(ushort2 v);
858dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
859dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 convert_char3(char3 v);
860dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 convert_char3(double3 v);
861dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 convert_char3(float3 v);
862dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 convert_char3(int3 v);
863dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 convert_char3(long3 v);
864dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 convert_char3(short3 v);
865dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 convert_char3(uchar3 v);
866dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 convert_char3(uint3 v);
867dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 convert_char3(ulong3 v);
868dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar3 convert_char3(ushort3 v);
869dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
870dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 convert_char4(char4 v);
871dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 convert_char4(double4 v);
872dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 convert_char4(float4 v);
873dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 convert_char4(int4 v);
874dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 convert_char4(long4 v);
875dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 convert_char4(short4 v);
876dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 convert_char4(uchar4 v);
877dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 convert_char4(uint4 v);
878dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 convert_char4(ulong4 v);
879dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leochar4 convert_char4(ushort4 v);
880dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
881dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble2 convert_double2(char2 v);
882dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble2 convert_double2(double2 v);
883dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble2 convert_double2(float2 v);
884dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble2 convert_double2(int2 v);
885dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble2 convert_double2(long2 v);
886dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble2 convert_double2(short2 v);
887dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble2 convert_double2(uchar2 v);
888dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble2 convert_double2(uint2 v);
889dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble2 convert_double2(ulong2 v);
890dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble2 convert_double2(ushort2 v);
891dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
892dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble3 convert_double3(char3 v);
893dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble3 convert_double3(double3 v);
894dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble3 convert_double3(float3 v);
895dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble3 convert_double3(int3 v);
896dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble3 convert_double3(long3 v);
897dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble3 convert_double3(short3 v);
898dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble3 convert_double3(uchar3 v);
899dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble3 convert_double3(uint3 v);
900dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble3 convert_double3(ulong3 v);
901dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble3 convert_double3(ushort3 v);
902dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
903dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble4 convert_double4(char4 v);
904dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble4 convert_double4(double4 v);
905dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble4 convert_double4(float4 v);
906dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble4 convert_double4(int4 v);
907dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble4 convert_double4(long4 v);
908dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble4 convert_double4(short4 v);
909dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble4 convert_double4(uchar4 v);
910dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble4 convert_double4(uint4 v);
911dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble4 convert_double4(ulong4 v);
912dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodouble4 convert_double4(ushort4 v);
913dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
914dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 convert_float2(char2 v);
915dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 convert_float2(double2 v);
916dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 convert_float2(float2 v);
917dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 convert_float2(int2 v);
918dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 convert_float2(long2 v);
919dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 convert_float2(short2 v);
920dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 convert_float2(uchar2 v);
921dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 convert_float2(uint2 v);
922dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 convert_float2(ulong2 v);
923dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 convert_float2(ushort2 v);
924dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
925dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 convert_float3(char3 v);
926dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 convert_float3(double3 v);
927dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 convert_float3(float3 v);
928dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 convert_float3(int3 v);
929dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 convert_float3(long3 v);
930dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 convert_float3(short3 v);
931dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 convert_float3(uchar3 v);
932dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 convert_float3(uint3 v);
933dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 convert_float3(ulong3 v);
934dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 convert_float3(ushort3 v);
935dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
936dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 convert_float4(char4 v);
937dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 convert_float4(double4 v);
938dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 convert_float4(float4 v);
939dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 convert_float4(int4 v);
940dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 convert_float4(long4 v);
941dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 convert_float4(short4 v);
942dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 convert_float4(uchar4 v);
943dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 convert_float4(uint4 v);
944dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 convert_float4(ulong4 v);
945dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 convert_float4(ushort4 v);
946dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
947dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 convert_int2(char2 v);
948dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 convert_int2(double2 v);
949dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 convert_int2(float2 v);
950dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 convert_int2(int2 v);
951dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 convert_int2(long2 v);
952dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 convert_int2(short2 v);
953dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 convert_int2(uchar2 v);
954dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 convert_int2(uint2 v);
955dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 convert_int2(ulong2 v);
956dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 convert_int2(ushort2 v);
957dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
958dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 convert_int3(char3 v);
959dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 convert_int3(double3 v);
960dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 convert_int3(float3 v);
961dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 convert_int3(int3 v);
962dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 convert_int3(long3 v);
963dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 convert_int3(short3 v);
964dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 convert_int3(uchar3 v);
965dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 convert_int3(uint3 v);
966dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 convert_int3(ulong3 v);
967dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 convert_int3(ushort3 v);
968dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
969dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 convert_int4(char4 v);
970dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 convert_int4(double4 v);
971dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 convert_int4(float4 v);
972dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 convert_int4(int4 v);
973dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 convert_int4(long4 v);
974dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 convert_int4(short4 v);
975dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 convert_int4(uchar4 v);
976dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 convert_int4(uint4 v);
977dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 convert_int4(ulong4 v);
978dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 convert_int4(ushort4 v);
979dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
980dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 convert_long2(char2 v);
981dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 convert_long2(double2 v);
982dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 convert_long2(float2 v);
983dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 convert_long2(int2 v);
984dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 convert_long2(long2 v);
985dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 convert_long2(short2 v);
986dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 convert_long2(uchar2 v);
987dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 convert_long2(uint2 v);
988dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 convert_long2(ulong2 v);
989dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong2 convert_long2(ushort2 v);
990dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
991dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 convert_long3(char3 v);
992dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 convert_long3(double3 v);
993dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 convert_long3(float3 v);
994dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 convert_long3(int3 v);
995dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 convert_long3(long3 v);
996dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 convert_long3(short3 v);
997dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 convert_long3(uchar3 v);
998dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 convert_long3(uint3 v);
999dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 convert_long3(ulong3 v);
1000dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong3 convert_long3(ushort3 v);
1001dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1002dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 convert_long4(char4 v);
1003dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 convert_long4(double4 v);
1004dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 convert_long4(float4 v);
1005dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 convert_long4(int4 v);
1006dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 convert_long4(long4 v);
1007dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 convert_long4(short4 v);
1008dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 convert_long4(uchar4 v);
1009dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 convert_long4(uint4 v);
1010dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 convert_long4(ulong4 v);
1011dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leolong4 convert_long4(ushort4 v);
1012dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1013dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 convert_short2(char2 v);
1014dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 convert_short2(double2 v);
1015dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 convert_short2(float2 v);
1016dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 convert_short2(int2 v);
1017dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 convert_short2(long2 v);
1018dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 convert_short2(short2 v);
1019dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 convert_short2(uchar2 v);
1020dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 convert_short2(uint2 v);
1021dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 convert_short2(ulong2 v);
1022dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort2 convert_short2(ushort2 v);
1023dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1024dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 convert_short3(char3 v);
1025dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 convert_short3(double3 v);
1026dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 convert_short3(float3 v);
1027dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 convert_short3(int3 v);
1028dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 convert_short3(long3 v);
1029dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 convert_short3(short3 v);
1030dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 convert_short3(uchar3 v);
1031dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 convert_short3(uint3 v);
1032dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 convert_short3(ulong3 v);
1033dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort3 convert_short3(ushort3 v);
1034dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1035dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 convert_short4(char4 v);
1036dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 convert_short4(double4 v);
1037dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 convert_short4(float4 v);
1038dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 convert_short4(int4 v);
1039dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 convert_short4(long4 v);
1040dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 convert_short4(short4 v);
1041dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 convert_short4(uchar4 v);
1042dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 convert_short4(uint4 v);
1043dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 convert_short4(ulong4 v);
1044dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoshort4 convert_short4(ushort4 v);
1045dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1046dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 convert_uchar2(char2 v);
1047dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 convert_uchar2(double2 v);
1048dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 convert_uchar2(float2 v);
1049dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 convert_uchar2(int2 v);
1050dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 convert_uchar2(long2 v);
1051dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 convert_uchar2(short2 v);
1052dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 convert_uchar2(uchar2 v);
1053dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 convert_uchar2(uint2 v);
1054dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 convert_uchar2(ulong2 v);
1055dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar2 convert_uchar2(ushort2 v);
1056dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1057dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 convert_uchar3(char3 v);
1058dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 convert_uchar3(double3 v);
1059dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 convert_uchar3(float3 v);
1060dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 convert_uchar3(int3 v);
1061dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 convert_uchar3(long3 v);
1062dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 convert_uchar3(short3 v);
1063dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 convert_uchar3(uchar3 v);
1064dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 convert_uchar3(uint3 v);
1065dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 convert_uchar3(ulong3 v);
1066dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar3 convert_uchar3(ushort3 v);
1067dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1068dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 convert_uchar4(char4 v);
1069dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 convert_uchar4(double4 v);
1070dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 convert_uchar4(float4 v);
1071dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 convert_uchar4(int4 v);
1072dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 convert_uchar4(long4 v);
1073dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 convert_uchar4(short4 v);
1074dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 convert_uchar4(uchar4 v);
1075dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 convert_uchar4(uint4 v);
1076dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 convert_uchar4(ulong4 v);
1077dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 convert_uchar4(ushort4 v);
1078dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1079dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 convert_uint2(char2 v);
1080dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 convert_uint2(double2 v);
1081dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 convert_uint2(float2 v);
1082dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 convert_uint2(int2 v);
1083dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 convert_uint2(long2 v);
1084dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 convert_uint2(short2 v);
1085dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 convert_uint2(uchar2 v);
1086dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 convert_uint2(uint2 v);
1087dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 convert_uint2(ulong2 v);
1088dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint2 convert_uint2(ushort2 v);
1089dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1090dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 convert_uint3(char3 v);
1091dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 convert_uint3(double3 v);
1092dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 convert_uint3(float3 v);
1093dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 convert_uint3(int3 v);
1094dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 convert_uint3(long3 v);
1095dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 convert_uint3(short3 v);
1096dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 convert_uint3(uchar3 v);
1097dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 convert_uint3(uint3 v);
1098dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 convert_uint3(ulong3 v);
1099dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint3 convert_uint3(ushort3 v);
1100dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1101dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 convert_uint4(char4 v);
1102dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 convert_uint4(double4 v);
1103dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 convert_uint4(float4 v);
1104dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 convert_uint4(int4 v);
1105dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 convert_uint4(long4 v);
1106dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 convert_uint4(short4 v);
1107dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 convert_uint4(uchar4 v);
1108dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 convert_uint4(uint4 v);
1109dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 convert_uint4(ulong4 v);
1110dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouint4 convert_uint4(ushort4 v);
1111dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1112dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 convert_ulong2(char2 v);
1113dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 convert_ulong2(double2 v);
1114dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 convert_ulong2(float2 v);
1115dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 convert_ulong2(int2 v);
1116dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 convert_ulong2(long2 v);
1117dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 convert_ulong2(short2 v);
1118dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 convert_ulong2(uchar2 v);
1119dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 convert_ulong2(uint2 v);
1120dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 convert_ulong2(ulong2 v);
1121dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong2 convert_ulong2(ushort2 v);
1122dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1123dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 convert_ulong3(char3 v);
1124dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 convert_ulong3(double3 v);
1125dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 convert_ulong3(float3 v);
1126dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 convert_ulong3(int3 v);
1127dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 convert_ulong3(long3 v);
1128dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 convert_ulong3(short3 v);
1129dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 convert_ulong3(uchar3 v);
1130dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 convert_ulong3(uint3 v);
1131dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 convert_ulong3(ulong3 v);
1132dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong3 convert_ulong3(ushort3 v);
1133dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1134dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 convert_ulong4(char4 v);
1135dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 convert_ulong4(double4 v);
1136dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 convert_ulong4(float4 v);
1137dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 convert_ulong4(int4 v);
1138dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 convert_ulong4(long4 v);
1139dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 convert_ulong4(short4 v);
1140dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 convert_ulong4(uchar4 v);
1141dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 convert_ulong4(uint4 v);
1142dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 convert_ulong4(ulong4 v);
1143dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoulong4 convert_ulong4(ushort4 v);
1144dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1145dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 convert_ushort2(char2 v);
1146dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 convert_ushort2(double2 v);
1147dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 convert_ushort2(float2 v);
1148dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 convert_ushort2(int2 v);
1149dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 convert_ushort2(long2 v);
1150dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 convert_ushort2(short2 v);
1151dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 convert_ushort2(uchar2 v);
1152dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 convert_ushort2(uint2 v);
1153dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 convert_ushort2(ulong2 v);
1154dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort2 convert_ushort2(ushort2 v);
1155dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1156dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 convert_ushort3(char3 v);
1157dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 convert_ushort3(double3 v);
1158dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 convert_ushort3(float3 v);
1159dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 convert_ushort3(int3 v);
1160dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 convert_ushort3(long3 v);
1161dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 convert_ushort3(short3 v);
1162dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 convert_ushort3(uchar3 v);
1163dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 convert_ushort3(uint3 v);
1164dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 convert_ushort3(ulong3 v);
1165dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort3 convert_ushort3(ushort3 v);
1166dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1167dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 convert_ushort4(char4 v);
1168dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 convert_ushort4(double4 v);
1169dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 convert_ushort4(float4 v);
1170dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 convert_ushort4(int4 v);
1171dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 convert_ushort4(long4 v);
1172dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 convert_ushort4(short4 v);
1173dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 convert_ushort4(uchar4 v);
1174dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 convert_ushort4(uint4 v);
1175dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 convert_ushort4(ulong4 v);
1176dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoushort4 convert_ushort4(ushort4 v);
1177dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1178dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 rsPackColorTo8888(float r, float g, float b);
1179dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 rsPackColorTo8888(float r, float g, float b, float a);
1180dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 rsPackColorTo8888(float3 color);
1181dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 rsPackColorTo8888(float4 color);
1182dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1183dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rsUnpackColor8888(uchar4 c);
1184dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1185dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rsYuvToRGBA_float4(uchar y, uchar u, uchar v);
1186dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1187dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar4 rsYuvToRGBA_uchar4(uchar y, uchar u, uchar v);
1188dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1189dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo- matrix functions, some of these are not supported yet
1190dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1191dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-bool rsMatrixInverse(rs_matrix4x4* m);
1192dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1193dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-bool rsMatrixInverseTranspose(rs_matrix4x4* m);
1194dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1195dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoad(rs_matrix2x2* destination, float* array);
1196dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoad(rs_matrix2x2* destination, rs_matrix2x2* source);
1197dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoad(rs_matrix3x3* destination, float* array);
1198dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoad(rs_matrix3x3* destination, rs_matrix3x3* source);
1199dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoad(rs_matrix4x4* destination, float* array);
1200dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoad(rs_matrix4x4* destination, rs_matrix2x2* source);
1201dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoad(rs_matrix4x4* destination, rs_matrix3x3* source);
1202dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoad(rs_matrix4x4* destination, rs_matrix4x4* source);
1203dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1204dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoadFrustum(rs_matrix4x4* m, float left, float right, float bottom, float top, float near, float far);
1205dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1206dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoadIdentity(rs_matrix2x2* m);
1207dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoadIdentity(rs_matrix3x3* m);
1208dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoadIdentity(rs_matrix4x4* m);
1209dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1210dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoadMultiply(rs_matrix2x2* m, rs_matrix2x2* lhs, rs_matrix2x2* rhs);
1211dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoadMultiply(rs_matrix3x3* m, rs_matrix3x3* lhs, rs_matrix3x3* rhs);
1212dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoadMultiply(rs_matrix4x4* m, rs_matrix4x4* lhs, rs_matrix4x4* rhs);
1213dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1214dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoadOrtho(rs_matrix4x4* m, float left, float right, float bottom, float top, float near, float far);
1215dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1216dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoadPerspective(rs_matrix4x4* m, float fovy, float aspect, float near, float far);
1217dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1218dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoadRotate(rs_matrix4x4* m, float rot, float x, float y, float z);
1219dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1220dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoadScale(rs_matrix4x4* m, float x, float y, float z);
1221dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1222dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixLoadTranslate(rs_matrix4x4* m, float x, float y, float z);
1223dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1224dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat2 rsMatrixMultiply(rs_matrix2x2* m, float2 in);
1225dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 rsMatrixMultiply(rs_matrix3x3* m, float2 in);
1226dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat3 rsMatrixMultiply(rs_matrix3x3* m, float3 in);
1227dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rsMatrixMultiply(rs_matrix4x4* m, float2 in);
1228dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rsMatrixMultiply(rs_matrix4x4* m, float3 in);
1229dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rsMatrixMultiply(rs_matrix4x4* m, float4 in);
1230dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsMatrixMultiply(rs_matrix2x2* m, rs_matrix2x2* rhs);
1231dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsMatrixMultiply(rs_matrix3x3* m, rs_matrix3x3* rhs);
1232dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsMatrixMultiply(rs_matrix4x4* m, rs_matrix4x4* rhs);
1233dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1234dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixRotate(rs_matrix4x4* m, float rot, float x, float y, float z);
1235dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1236dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixScale(rs_matrix4x4* m, float x, float y, float z);
1237dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1238dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsMatrixSet(rs_matrix2x2* m, 0, 1, float v);
1239dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsMatrixSet(rs_matrix3x3* m, 2, 0, float v);
1240dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsMatrixSet(rs_matrix4x4* m, 1, 3, float v);
1241dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1242dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixTranslate(rs_matrix4x4* m, float x, float y, float z);
1243dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1244dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixTranspose(rs_matrix2x2* m);
1245dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixTranspose(rs_matrix3x3* m);
1246dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsMatrixTranspose(rs_matrix4x4* m);
1247dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1248dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo- quaternion functions
1249dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1250dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsQuaternionAdd(rs_quaternion* q, rs_quaternion* rhs);
1251dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1252dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsQuaternionConjugate(rs_quaternion* q);
1253dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1254dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat rsQuaternionDot(rs_quaternion* q0, rs_quaternion* q1);
1255dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1256dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsQuaternionGetMatrixUnit(rs_matrix4x4* m, rs_quaternion* q);
1257dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1258dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsQuaternionLoadRotate(rs_quaternion* q, float rot, float x, float y, float z);
1259dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1260dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsQuaternionLoadRotateUnit(rs_quaternion* q, float rot, float x, float y, float z);
1261dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1262dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsQuaternionMultiply(rs_quaternion* q, rs_quaternion* rhs);
1263dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsQuaternionMultiply(rs_quaternion* q, float scalar);
1264dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1265dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsQuaternionNormalize(rs_quaternion* q);
1266dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1267dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsQuaternionSet(rs_quaternion* q, rs_quaternion* rhs);
1268dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsQuaternionSet(rs_quaternion* q, float w, float x, float y, float z);
1269dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1270dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsQuaternionSlerp(rs_quaternion* q, rs_quaternion* q0, rs_quaternion* q1, float t);
1271dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1272dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo- allocation data access functions, this is a subset, since we don't have all types of allocations
1273dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1274dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsAllocationCopy1DRange(allocation_1D_global, uint dstOff, uint dstMip, uint count, allocation_1D_global2, uint srcOff, uint srcMip);
1275dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1276dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo-void rsAllocationCopy2DRange(allocation_2D_global, uint dstXoff, uint dstYoff, uint dstMip, rs_allocation_cubemap_face dstFace, uint width, uint height, allocation_2D_global2, uint srcXoff, uint srcYoff, uint srcMip, rs_allocation_cubemap_face srcFace);
1277dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1278dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 rsAllocationVLoadX_int2(allocation_1D_global, 0);
1279dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 rsAllocationVLoadX_int2(allocation_2D_global, 24, 25);
1280dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint2 rsAllocationVLoadX_int2(allocation_3D_global, 0, 1, 0);
1281dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 rsAllocationVLoadX_int3(allocation_1D_global, 1);
1282dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 rsAllocationVLoadX_int3(allocation_2D_global, 27, 28);
1283dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint3 rsAllocationVLoadX_int3(allocation_3D_global, 1, 0, 1);
1284dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 rsAllocationVLoadX_int4(allocation_1D_global, 0);
1285dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 rsAllocationVLoadX_int4(allocation_2D_global, 29, 30);
1286dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint4 rsAllocationVLoadX_int4(allocation_3D_global, 0, 1, 0);
1287dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1288dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsAllocationVStoreX_int2(allocation_1D_global, int2 val, 2);
1289dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsAllocationVStoreX_int2(allocation_2D_global, int2 val, 6, 7);
1290dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsAllocationVStoreX_int2(allocation_3D_global, int2 val, 0, 1, 0);
1291dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsAllocationVStoreX_int3(allocation_1D_global, int3 val, 1);
1292dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsAllocationVStoreX_int3(allocation_2D_global, int3 val, 12, 13);
1293dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsAllocationVStoreX_int3(allocation_3D_global, int3 val, 1, 0, 1);
1294dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsAllocationVStoreX_int4(allocation_1D_global, int4 val, 0);
1295dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsAllocationVStoreX_int4(allocation_2D_global, int4 val, 18, 19);
1296dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsAllocationVStoreX_int4(allocation_3D_global, int4 val, 0, 1, 0);
1297dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1298dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid* rsGetElementAt(allocation_1D_global, 0);
1299dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid* rsGetElementAt(allocation_2D_global, 20, 21);
1300dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid* rsGetElementAt(allocation_3D_global, 1, 0, 1);
1301dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint rsGetElementAt_int(allocation_1D_global, 1);
1302dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint rsGetElementAt_int(allocation_2D_global, 22, 23);
1303dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leoint rsGetElementAt_int(allocation_3D_global, 0, 1, 0);
1304dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1305dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar rsGetElementAtYuv_uchar_U(allocation_YUV_2D_global, 0, 1);
1306dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1307dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar rsGetElementAtYuv_uchar_V(allocation_YUV_2D_global, 2, 3);
1308dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1309dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leouchar rsGetElementAtYuv_uchar_Y(allocation_YUV_2D_global, 0, 1);
1310dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1311dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rsSample(allocation_1D_global, rs_sampler s, float location);
1312dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rsSample(allocation_1D_global, rs_sampler s, float location, float lod);
1313dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rsSample(allocation_1D_global, rs_sampler s, float2 location);
1314dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leofloat4 rsSample(allocation_1D_global, rs_sampler s, float2 location, float lod);
1315dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1316dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsSetElementAt(allocation_1D_global, int* ptr, 2);
1317dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsSetElementAt(allocation_2D_global, int* ptr, 24, 25);
1318dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsSetElementAt_int(allocation_1D_global, int val, 0);
1319dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsSetElementAt_int(allocation_2D_global, int val, 26, 27);
1320dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leovoid rsSetElementAt_int(allocation_3D_global, int val, 1, 0, 1);
1321dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo'''.splitlines())
1322dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1323dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1324dcecc0c8d22e894525e25a122ce25129b51338f2Dean De LeoTYPE_MAP = {
1325dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    'void' : '',
1326dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    'char' : r'\((signed )?char\)',
1327dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    'uchar' : r'\(uchar\)',
1328dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    'short' : r'\(short\)',
1329dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    'ushort' : r'\(ushort\)',
1330dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    'int' : r'\(int\)',
1331dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    'uint' : r'\(uint\)',
1332dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    'long' : r'\((long )?long\)',
1333dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    'ulong' : r'\(ulong\)',
1334dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    'float' : r'\(float\)',
1335dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    'float2' : r'\(float2\)',
1336dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    'float3' : r'\(float3\)',
1337dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    'float4' : r'\(float4\)'
1338dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    }
1339dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1340dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1341dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodef _build_arg(token):
1342dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    '''Given a C argument construct an lldb expression for the argument.
1343dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1344dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    Given a token, which represents a single argument of a C function
1345dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    declaration, construct an lldb expression for the argument.
1346dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1347dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    Args:
1348dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        token: A string representing a single argument to a function. This
1349dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo               can be either [type][name] (e.g. int arg) or [value] (e.g. 5).
1350dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1351dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    Returns:
1352dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        The string that is the lldb expression for that argument, e.g.
1353dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        int_global or 5.
1354dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    '''
1355dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    if len(token.split()) == 1:
1356dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        # This is a fixed constant. Just take that as output.
1357dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        return token
1358dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1359dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    result = token.split()[0]
1360dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1361dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    # Remove the rs_ prefix, because our globals' names don't have them
1362dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    if result[:3] == 'rs_':
1363dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        result = result[3:]
1364dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1365dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    # If the function expects a pointer, take the address of the global
1366dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    if result[-1] == '*':
1367dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        result = '&' + result
1368dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        result = result[:-1]
1369dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1370dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    result += '_global'
1371dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    return result
1372dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1373dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1374dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leodef build_expr(line):
1375dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    '''Build an lldb expression given a function prototype.
1376dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1377dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    Given a function declaration, this function will construct an lldb
1378dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    expression to call it.
1379dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1380dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    Args:
1381dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        line: A string representing a function declaration.
1382dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1383dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    Returns:
1384dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        The string that is the lldb expression.
1385dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    '''
1386dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    tokens = re.findall(r"[^(),;]+", line)
1387dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    assert len(tokens) > 0
1388dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    ret_name = tokens[0].split()
1389dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    ret = ret_name[0]
1390dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    name = ret_name[1]
1391dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    expr = 'expr {0}('.format(name)
1392dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1393dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    first = True
1394dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    for tok in tokens[1:]:
1395dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        if not first:
1396dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo            expr += ', '
1397dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        expr += _build_arg(tok)
1398dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo        first = False
1399dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo
1400dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    expr += ')'
1401dcecc0c8d22e894525e25a122ce25129b51338f2Dean De Leo    return ret, expr
1402