diff options
Diffstat (limited to 'scriptc')
-rw-r--r-- | scriptc/rs_geom.rsh | 26 | ||||
-rw-r--r-- | scriptc/rs_graphics.rsh | 21 | ||||
-rw-r--r-- | scriptc/rs_math.rsh | 806 |
3 files changed, 604 insertions, 249 deletions
diff --git a/scriptc/rs_geom.rsh b/scriptc/rs_geom.rsh deleted file mode 100644 index 6e9e9fca..00000000 --- a/scriptc/rs_geom.rsh +++ /dev/null @@ -1,26 +0,0 @@ - -extern float3 __attribute__((overloadable)) cross(float3, float3); -extern float4 __attribute__((overloadable)) cross(float4, float4); - -//extern float __attribute__((overloadable)) dot(float, float); -extern float __attribute__((overloadable)) dot(float2, float2); -extern float __attribute__((overloadable)) dot(float3, float3); -extern float __attribute__((overloadable)) dot(float4, float4); - -//extern float __attribute__((overloadable)) distance(float, float); -extern float __attribute__((overloadable)) distance(float2, float2); -extern float __attribute__((overloadable)) distance(float3, float3); -extern float __attribute__((overloadable)) distance(float4, float4); - -//extern float __attribute__((overloadable)) length(float); -extern float __attribute__((overloadable)) length(float2); -extern float __attribute__((overloadable)) length(float3); -extern float __attribute__((overloadable)) length(float4); - -extern float2 __attribute__((overloadable)) normalize(float2); -extern float3 __attribute__((overloadable)) normalize(float3); -extern float4 __attribute__((overloadable)) normalize(float4); - - - - diff --git a/scriptc/rs_graphics.rsh b/scriptc/rs_graphics.rsh index 0f03732a..4696fb33 100644 --- a/scriptc/rs_graphics.rsh +++ b/scriptc/rs_graphics.rsh @@ -2,6 +2,7 @@ extern float rand(float max); +//extern void vec2Rand(float *, float len); extern float2 vec2Rand(float len); extern float3 float3Norm(float3); @@ -59,9 +60,21 @@ extern int getHeight(); extern int sendToClient(void *data, int cmdID, int len, int waitForSpace); -extern void debugF(const char *, float); -extern void debugI32(const char *, int); -extern void debugHexI32(const char *, int); - +extern uint32_t allocGetDimX(rs_allocation); +extern uint32_t allocGetDimY(rs_allocation); +extern uint32_t allocGetDimZ(rs_allocation); +extern uint32_t allocGetDimLOD(rs_allocation); +extern uint32_t allocGetDimFaces(rs_allocation); + +// +extern float normf(float start, float stop, float value); +extern float clampf(float amount, float low, float high); +extern float turbulencef2(float x, float y, float octaves); +extern float turbulencef3(float x, float y, float z, float octaves); + +extern uchar4 __attribute__((overloadable)) convertColorTo8888(float r, float g, float b); +extern uchar4 __attribute__((overloadable)) convertColorTo8888(float r, float g, float b, float a); +extern uchar4 __attribute__((overloadable)) convertColorTo8888(float3); +extern uchar4 __attribute__((overloadable)) convertColorTo8888(float4); diff --git a/scriptc/rs_math.rsh b/scriptc/rs_math.rsh index fba0f8f7..48ab0666 100644 --- a/scriptc/rs_math.rsh +++ b/scriptc/rs_math.rsh @@ -1,285 +1,653 @@ -// Float ops - -extern float __attribute__((overloadable)) abs(float); -//extern float2 __attribute__((overloadable)) abs(float2); -//extern float3 __attribute__((overloadable)) abs(float3); -//extern float4 __attribute__((overloadable)) abs(float4); -//extern float8 __attribute__((overloadable)) abs(float8); -//extern float16 __attribute__((overloadable)) abs(float16); +// Float ops, 6.11.2 extern float __attribute__((overloadable)) acos(float); -//extern float2 __attribute__((overloadable)) acos(float2); -//extern float3 __attribute__((overloadable)) acos(float3); -//extern float4 __attribute__((overloadable)) acos(float4); -//extern float8 __attribute__((overloadable)) acos(float8); -//extern float16 __attribute__((overloadable)) acos(float16); +extern float2 __attribute__((overloadable)) acos(float2); +extern float3 __attribute__((overloadable)) acos(float3); +extern float4 __attribute__((overloadable)) acos(float4); +extern float8 __attribute__((overloadable)) acos(float8); +extern float16 __attribute__((overloadable)) acos(float16); + +extern float __attribute__((overloadable)) acosh(float); +extern float2 __attribute__((overloadable)) acosh(float2); +extern float3 __attribute__((overloadable)) acosh(float3); +extern float4 __attribute__((overloadable)) acosh(float4); +extern float8 __attribute__((overloadable)) acosh(float8); +extern float16 __attribute__((overloadable)) acosh(float16); + +extern float __attribute__((overloadable)) acospi(float); +extern float2 __attribute__((overloadable)) acospi(float2); +extern float3 __attribute__((overloadable)) acospi(float3); +extern float4 __attribute__((overloadable)) acospi(float4); +extern float8 __attribute__((overloadable)) acospi(float8); +extern float16 __attribute__((overloadable)) acospi(float16); extern float __attribute__((overloadable)) asin(float); -//extern float2 __attribute__((overloadable)) asin(float2); -//extern float3 __attribute__((overloadable)) asin(float3); -//extern float4 __attribute__((overloadable)) asin(float4); -//extern float8 __attribute__((overloadable)) asin(float8); -//extern float16 __attribute__((overloadable)) asin(float16); +extern float2 __attribute__((overloadable)) asin(float2); +extern float3 __attribute__((overloadable)) asin(float3); +extern float4 __attribute__((overloadable)) asin(float4); +extern float8 __attribute__((overloadable)) asin(float8); +extern float16 __attribute__((overloadable)) asin(float16); + +extern float __attribute__((overloadable)) asinh(float); +extern float2 __attribute__((overloadable)) asinh(float2); +extern float3 __attribute__((overloadable)) asinh(float3); +extern float4 __attribute__((overloadable)) asinh(float4); +extern float8 __attribute__((overloadable)) asinh(float8); +extern float16 __attribute__((overloadable)) asinh(float16); + +extern float __attribute__((overloadable)) asinpi(float); +extern float2 __attribute__((overloadable)) asinpi(float2); +extern float3 __attribute__((overloadable)) asinpi(float3); +extern float4 __attribute__((overloadable)) asinpi(float4); +extern float8 __attribute__((overloadable)) asinpi(float8); +extern float16 __attribute__((overloadable)) asinpi(float16); extern float __attribute__((overloadable)) atan(float); -//extern float2 __attribute__((overloadable)) atan(float2); -//extern float3 __attribute__((overloadable)) atan(float3); -//extern float4 __attribute__((overloadable)) atan(float4); -//extern float8 __attribute__((overloadable)) atan(float8); -//extern float16 __attribute__((overloadable)) atan(float16); +extern float2 __attribute__((overloadable)) atan(float2); +extern float3 __attribute__((overloadable)) atan(float3); +extern float4 __attribute__((overloadable)) atan(float4); +extern float8 __attribute__((overloadable)) atan(float8); +extern float16 __attribute__((overloadable)) atan(float16); extern float __attribute__((overloadable)) atan2(float, float); -//extern float2 __attribute__((overloadable)) atan2(float2, float2); -//extern float3 __attribute__((overloadable)) atan2(float3, float3); -//extern float4 __attribute__((overloadable)) atan2(float4, float4); -//extern float8 __attribute__((overloadable)) atan2(float8, float8); -//extern float16 __attribute__((overloadable)) atan2(float16, float16); +extern float2 __attribute__((overloadable)) atan2(float2, float2); +extern float3 __attribute__((overloadable)) atan2(float3, float3); +extern float4 __attribute__((overloadable)) atan2(float4, float4); +extern float8 __attribute__((overloadable)) atan2(float8, float8); +extern float16 __attribute__((overloadable)) atan2(float16, float16); + +extern float __attribute__((overloadable)) atanh(float); +extern float2 __attribute__((overloadable)) atanh(float2); +extern float3 __attribute__((overloadable)) atanh(float3); +extern float4 __attribute__((overloadable)) atanh(float4); +extern float8 __attribute__((overloadable)) atanh(float8); +extern float16 __attribute__((overloadable)) atanh(float16); + +extern float __attribute__((overloadable)) atanpi(float); +extern float2 __attribute__((overloadable)) atanpi(float2); +extern float3 __attribute__((overloadable)) atanpi(float3); +extern float4 __attribute__((overloadable)) atanpi(float4); +extern float8 __attribute__((overloadable)) atanpi(float8); +extern float16 __attribute__((overloadable)) atanpi(float16); + +extern float __attribute__((overloadable)) atan2pi(float, float); +extern float2 __attribute__((overloadable)) atan2pi(float2, float2); +extern float3 __attribute__((overloadable)) atan2pi(float3, float3); +extern float4 __attribute__((overloadable)) atan2pi(float4, float4); +extern float8 __attribute__((overloadable)) atan2pi(float8, float8); +extern float16 __attribute__((overloadable)) atan2pi(float16, float16); + +extern float __attribute__((overloadable)) cbrt(float); +extern float2 __attribute__((overloadable)) cbrt(float2); +extern float3 __attribute__((overloadable)) cbrt(float3); +extern float4 __attribute__((overloadable)) cbrt(float4); +extern float8 __attribute__((overloadable)) cbrt(float8); +extern float16 __attribute__((overloadable)) cbrt(float16); extern float __attribute__((overloadable)) ceil(float); -//extern float2 __attribute__((overloadable)) ceil(float2); -//extern float3 __attribute__((overloadable)) ceil(float3); -//extern float4 __attribute__((overloadable)) ceil(float4); -//extern float8 __attribute__((overloadable)) ceil(float8); -//extern float16 __attribute__((overloadable)) ceil(float16); - -extern float __attribute__((overloadable)) clamp(float, float, float); -//extern float2 __attribute__((overloadable)) clamp(float2, float2, float2); -//extern float3 __attribute__((overloadable)) clamp(float3, float3, float3); -//extern float4 __attribute__((overloadable)) clamp(float4, float4, float4); -//extern float8 __attribute__((overloadable)) clamp(float8, float8, float8); -//extern float16 __attribute__((overloadable)) clamp(float16, float16, float16); -//extern float2 __attribute__((overloadable)) clamp(float2, float, float); -//extern float3 __attribute__((overloadable)) clamp(float3, float, float); -//extern float4 __attribute__((overloadable)) clamp(float4, float, float); -//extern float8 __attribute__((overloadable)) clamp(float8, float, float); -//extern float16 __attribute__((overloadable)) clamp(float16, float, float); +extern float2 __attribute__((overloadable)) ceil(float2); +extern float3 __attribute__((overloadable)) ceil(float3); +extern float4 __attribute__((overloadable)) ceil(float4); +extern float8 __attribute__((overloadable)) ceil(float8); +extern float16 __attribute__((overloadable)) ceil(float16); extern float __attribute__((overloadable)) copysign(float, float); -//extern float2 __attribute__((overloadable)) copysign(float2, float2); -//extern float3 __attribute__((overloadable)) copysign(float3, float3); -//extern float4 __attribute__((overloadable)) copysign(float4, float4); -//extern float8 __attribute__((overloadable)) copysign(float8, float8); -//extern float16 __attribute__((overloadable)) copysign(float16, float16); +extern float2 __attribute__((overloadable)) copysign(float2, float2); +extern float3 __attribute__((overloadable)) copysign(float3, float3); +extern float4 __attribute__((overloadable)) copysign(float4, float4); +extern float8 __attribute__((overloadable)) copysign(float8, float8); +extern float16 __attribute__((overloadable)) copysign(float16, float16); extern float __attribute__((overloadable)) cos(float); -//extern float2 __attribute__((overloadable)) cos(float2); -//extern float3 __attribute__((overloadable)) cos(float3); -//extern float4 __attribute__((overloadable)) cos(float4); -//extern float8 __attribute__((overloadable)) cos(float8); -//extern float16 __attribute__((overloadable)) cos(float16); - -extern float __attribute__((overloadable)) degrees(float); -//extern float2 __attribute__((overloadable)) degrees(float2); -//extern float3 __attribute__((overloadable)) degrees(float3); -//extern float4 __attribute__((overloadable)) degrees(float4); -//extern float8 __attribute__((overloadable)) degrees(float8); -//extern float16 __attribute__((overloadable)) degrees(float16); +extern float2 __attribute__((overloadable)) cos(float2); +extern float3 __attribute__((overloadable)) cos(float3); +extern float4 __attribute__((overloadable)) cos(float4); +extern float8 __attribute__((overloadable)) cos(float8); +extern float16 __attribute__((overloadable)) cos(float16); + +extern float __attribute__((overloadable)) cosh(float); +extern float2 __attribute__((overloadable)) cosh(float2); +extern float3 __attribute__((overloadable)) cosh(float3); +extern float4 __attribute__((overloadable)) cosh(float4); +extern float8 __attribute__((overloadable)) cosh(float8); +extern float16 __attribute__((overloadable)) cosh(float16); + +extern float __attribute__((overloadable)) cospi(float); +extern float2 __attribute__((overloadable)) cospi(float2); +extern float3 __attribute__((overloadable)) cospi(float3); +extern float4 __attribute__((overloadable)) cospi(float4); +extern float8 __attribute__((overloadable)) cospi(float8); +extern float16 __attribute__((overloadable)) cospi(float16); + +extern float __attribute__((overloadable)) erfc(float); +extern float2 __attribute__((overloadable)) erfc(float2); +extern float3 __attribute__((overloadable)) erfc(float3); +extern float4 __attribute__((overloadable)) erfc(float4); +extern float8 __attribute__((overloadable)) erfc(float8); +extern float16 __attribute__((overloadable)) erfc(float16); + +extern float __attribute__((overloadable)) erf(float); +extern float2 __attribute__((overloadable)) erf(float2); +extern float3 __attribute__((overloadable)) erf(float3); +extern float4 __attribute__((overloadable)) erf(float4); +extern float8 __attribute__((overloadable)) erf(float8); +extern float16 __attribute__((overloadable)) erf(float16); extern float __attribute__((overloadable)) exp(float); -//extern float2 __attribute__((overloadable)) exp(float2); -//extern float3 __attribute__((overloadable)) exp(float3); -//extern float4 __attribute__((overloadable)) exp(float4); -//extern float8 __attribute__((overloadable)) exp(float8); -//extern float16 __attribute__((overloadable)) exp(float16); +extern float2 __attribute__((overloadable)) exp(float2); +extern float3 __attribute__((overloadable)) exp(float3); +extern float4 __attribute__((overloadable)) exp(float4); +extern float8 __attribute__((overloadable)) exp(float8); +extern float16 __attribute__((overloadable)) exp(float16); extern float __attribute__((overloadable)) exp2(float); -//extern float2 __attribute__((overloadable)) exp2(float2); -//extern float3 __attribute__((overloadable)) exp2(float3); -//extern float4 __attribute__((overloadable)) exp2(float4); -//extern float8 __attribute__((overloadable)) exp2(float8); -//extern float16 __attribute__((overloadable)) exp2(float16); +extern float2 __attribute__((overloadable)) exp2(float2); +extern float3 __attribute__((overloadable)) exp2(float3); +extern float4 __attribute__((overloadable)) exp2(float4); +extern float8 __attribute__((overloadable)) exp2(float8); +extern float16 __attribute__((overloadable)) exp2(float16); extern float __attribute__((overloadable)) exp10(float); -//extern float2 __attribute__((overloadable)) exp10(float2); -//extern float3 __attribute__((overloadable)) exp10(float3); -//extern float4 __attribute__((overloadable)) exp10(float4); -//extern float8 __attribute__((overloadable)) exp10(float8); -//extern float16 __attribute__((overloadable)) exp10(float16); +extern float2 __attribute__((overloadable)) exp10(float2); +extern float3 __attribute__((overloadable)) exp10(float3); +extern float4 __attribute__((overloadable)) exp10(float4); +extern float8 __attribute__((overloadable)) exp10(float8); +extern float16 __attribute__((overloadable)) exp10(float16); + +extern float __attribute__((overloadable)) expm1(float); +extern float2 __attribute__((overloadable)) expm1(float2); +extern float3 __attribute__((overloadable)) expm1(float3); +extern float4 __attribute__((overloadable)) expm1(float4); +extern float8 __attribute__((overloadable)) expm1(float8); +extern float16 __attribute__((overloadable)) expm1(float16); extern float __attribute__((overloadable)) fabs(float); -//extern float2 __attribute__((overloadable)) fabs(float2); -//extern float3 __attribute__((overloadable)) fabs(float3); -//extern float4 __attribute__((overloadable)) fabs(float4); -//extern float8 __attribute__((overloadable)) fabs(float8); -//extern float16 __attribute__((overloadable)) fabs(float16); +extern float2 __attribute__((overloadable)) fabs(float2); +extern float3 __attribute__((overloadable)) fabs(float3); +extern float4 __attribute__((overloadable)) fabs(float4); +extern float8 __attribute__((overloadable)) fabs(float8); +extern float16 __attribute__((overloadable)) fabs(float16); + +extern float __attribute__((overloadable)) fdim(float, float); +extern float2 __attribute__((overloadable)) fdim(float2, float2); +extern float3 __attribute__((overloadable)) fdim(float3, float3); +extern float4 __attribute__((overloadable)) fdim(float4, float4); +extern float8 __attribute__((overloadable)) fdim(float8, float8); +extern float16 __attribute__((overloadable)) fdim(float16, float16); extern float __attribute__((overloadable)) floor(float); -//extern float2 __attribute__((overloadable)) floor(float2); -//extern float3 __attribute__((overloadable)) floor(float3); -//extern float4 __attribute__((overloadable)) floor(float4); -//extern float8 __attribute__((overloadable)) floor(float8); -//extern float16 __attribute__((overloadable)) floor(float16); +extern float2 __attribute__((overloadable)) floor(float2); +extern float3 __attribute__((overloadable)) floor(float3); +extern float4 __attribute__((overloadable)) floor(float4); +extern float8 __attribute__((overloadable)) floor(float8); +extern float16 __attribute__((overloadable)) floor(float16); + +extern float __attribute__((overloadable)) fma(float, float, float); +extern float2 __attribute__((overloadable)) fma(float2, float2, float2); +extern float3 __attribute__((overloadable)) fma(float3, float3, float3); +extern float4 __attribute__((overloadable)) fma(float4, float4, float4); +extern float8 __attribute__((overloadable)) fma(float8, float8, float8); +extern float16 __attribute__((overloadable)) fma(float16, float16, float16); extern float __attribute__((overloadable)) fmax(float, float); -//extern float2 __attribute__((overloadable)) fmax(float2, float2); -//extern float3 __attribute__((overloadable)) fmax(float3, float3); -//extern float4 __attribute__((overloadable)) fmax(float4, float4); -//extern float8 __attribute__((overloadable)) fmax(float8, float8); -//extern float16 __attribute__((overloadable)) fmax(float16, float16); -//extern float2 __attribute__((overloadable)) fmax(float2, float); -//extern float3 __attribute__((overloadable)) fmax(float3, float); -//extern float4 __attribute__((overloadable)) fmax(float4, float); -//extern float8 __attribute__((overloadable)) fmax(float8, float); -//extern float16 __attribute__((overloadable)) fmax(float16, float); +extern float2 __attribute__((overloadable)) fmax(float2, float2); +extern float3 __attribute__((overloadable)) fmax(float3, float3); +extern float4 __attribute__((overloadable)) fmax(float4, float4); +extern float8 __attribute__((overloadable)) fmax(float8, float8); +extern float16 __attribute__((overloadable)) fmax(float16, float16); +extern float2 __attribute__((overloadable)) fmax(float2, float); +extern float3 __attribute__((overloadable)) fmax(float3, float); +extern float4 __attribute__((overloadable)) fmax(float4, float); +extern float8 __attribute__((overloadable)) fmax(float8, float); +extern float16 __attribute__((overloadable)) fmax(float16, float); extern float __attribute__((overloadable)) fmin(float, float); -//extern float2 __attribute__((overloadable)) fmin(float2, float2); -//extern float3 __attribute__((overloadable)) fmin(float3, float3); -//extern float4 __attribute__((overloadable)) fmin(float4, float4); -//extern float8 __attribute__((overloadable)) fmin(float8, float8); -//extern float16 __attribute__((overloadable)) fmin(float16, float16); -//extern float2 __attribute__((overloadable)) fmin(float2, float); -//extern float3 __attribute__((overloadable)) fmin(float3, float); -//extern float4 __attribute__((overloadable)) fmin(float4, float); -//extern float8 __attribute__((overloadable)) fmin(float8, float); -//extern float16 __attribute__((overloadable)) fmin(float16, float); +extern float2 __attribute__((overloadable)) fmin(float2, float2); +extern float3 __attribute__((overloadable)) fmin(float3, float3); +extern float4 __attribute__((overloadable)) fmin(float4, float4); +extern float8 __attribute__((overloadable)) fmin(float8, float8); +extern float16 __attribute__((overloadable)) fmin(float16, float16); +extern float2 __attribute__((overloadable)) fmin(float2, float); +extern float3 __attribute__((overloadable)) fmin(float3, float); +extern float4 __attribute__((overloadable)) fmin(float4, float); +extern float8 __attribute__((overloadable)) fmin(float8, float); +extern float16 __attribute__((overloadable)) fmin(float16, float); extern float __attribute__((overloadable)) fmod(float, float); -//extern float2 __attribute__((overloadable)) fmod(float2, float2); -//extern float3 __attribute__((overloadable)) fmod(float3, float3); -//extern float4 __attribute__((overloadable)) fmod(float4, float4); -//extern float8 __attribute__((overloadable)) fmod(float8, float8); -//extern float16 __attribute__((overloadable)) fmod(float16, float16); +extern float2 __attribute__((overloadable)) fmod(float2, float2); +extern float3 __attribute__((overloadable)) fmod(float3, float3); +extern float4 __attribute__((overloadable)) fmod(float4, float4); +extern float8 __attribute__((overloadable)) fmod(float8, float8); +extern float16 __attribute__((overloadable)) fmod(float16, float16); + +extern float __attribute__((overloadable)) fract(float, float *); +extern float2 __attribute__((overloadable)) fract(float2, float2 *); +extern float3 __attribute__((overloadable)) fract(float3, float3 *); +extern float4 __attribute__((overloadable)) fract(float4, float4 *); +extern float8 __attribute__((overloadable)) fract(float8, float8 *); +extern float16 __attribute__((overloadable)) fract(float16, float16 *); + +extern float __attribute__((overloadable)) frexp(float, float *); +extern float2 __attribute__((overloadable)) frexp(float2, float2 *); +extern float3 __attribute__((overloadable)) frexp(float3, float3 *); +extern float4 __attribute__((overloadable)) frexp(float4, float4 *); +extern float8 __attribute__((overloadable)) frexp(float8, float8 *); +extern float16 __attribute__((overloadable)) frexp(float16, float16 *); + +extern float __attribute__((overloadable)) hypot(float, float); +extern float2 __attribute__((overloadable)) hypot(float2, float2); +extern float3 __attribute__((overloadable)) hypot(float3, float3); +extern float4 __attribute__((overloadable)) hypot(float4, float4); +extern float8 __attribute__((overloadable)) hypot(float8, float8); +extern float16 __attribute__((overloadable)) hypot(float16, float16); + +extern int __attribute__((overloadable)) ilogb(float); +extern int2 __attribute__((overloadable)) ilogb(float2); +extern int3 __attribute__((overloadable)) ilogb(float3); +extern int4 __attribute__((overloadable)) ilogb(float4); +extern int8 __attribute__((overloadable)) ilogb(float8); +extern int16 __attribute__((overloadable)) ilogb(float16); + +extern float __attribute__((overloadable)) ldexp(float, int); +extern float2 __attribute__((overloadable)) ldexp(float2, int2); +extern float3 __attribute__((overloadable)) ldexp(float3, int3); +extern float4 __attribute__((overloadable)) ldexp(float4, int4); +extern float8 __attribute__((overloadable)) ldexp(float8, int8); +extern float16 __attribute__((overloadable)) ldexp(float16, int16); +extern float2 __attribute__((overloadable)) ldexp(float2, int); +extern float3 __attribute__((overloadable)) ldexp(float3, int); +extern float4 __attribute__((overloadable)) ldexp(float4, int); +extern float8 __attribute__((overloadable)) ldexp(float8, int); +extern float16 __attribute__((overloadable)) ldexp(float16, int); + +extern float __attribute__((overloadable)) lgamma(float); +extern float2 __attribute__((overloadable)) lgamma(float2); +extern float3 __attribute__((overloadable)) lgamma(float3); +extern float4 __attribute__((overloadable)) lgamma(float4); +extern float8 __attribute__((overloadable)) lgamma(float8); +extern float16 __attribute__((overloadable)) lgamma(float16); +extern float __attribute__((overloadable)) lgamma(float, float *); +extern float2 __attribute__((overloadable)) lgamma(float2, float2 *); +extern float3 __attribute__((overloadable)) lgamma(float3, float3 *); +extern float4 __attribute__((overloadable)) lgamma(float4, float4 *); +extern float8 __attribute__((overloadable)) lgamma(float8, float8 *); +extern float16 __attribute__((overloadable)) lgamma(float16, float16 *); extern float __attribute__((overloadable)) log(float); -//extern float2 __attribute__((overloadable)) log(float2); -//extern float3 __attribute__((overloadable)) log(float3); -//extern float4 __attribute__((overloadable)) log(float4); -//extern float8 __attribute__((overloadable)) log(float8); -//extern float16 __attribute__((overloadable)) log(float16); +extern float2 __attribute__((overloadable)) log(float2); +extern float3 __attribute__((overloadable)) log(float3); +extern float4 __attribute__((overloadable)) log(float4); +extern float8 __attribute__((overloadable)) log(float8); +extern float16 __attribute__((overloadable)) log(float16); extern float __attribute__((overloadable)) log2(float); -//extern float2 __attribute__((overloadable)) log2(float2); -//extern float3 __attribute__((overloadable)) log2(float3); -//extern float4 __attribute__((overloadable)) log2(float4); -//extern float8 __attribute__((overloadable)) log2(float8); -//extern float16 __attribute__((overloadable)) log2(float16); +extern float2 __attribute__((overloadable)) log2(float2); +extern float3 __attribute__((overloadable)) log2(float3); +extern float4 __attribute__((overloadable)) log2(float4); +extern float8 __attribute__((overloadable)) log2(float8); +extern float16 __attribute__((overloadable)) log2(float16); extern float __attribute__((overloadable)) log10(float); -//extern float2 __attribute__((overloadable)) log10(float2); -//extern float3 __attribute__((overloadable)) log10(float3); -//extern float4 __attribute__((overloadable)) log10(float4); -//extern float8 __attribute__((overloadable)) log10(float8); -//extern float16 __attribute__((overloadable)) log10(float16); - -extern float __attribute__((overloadable)) max(float, float); -//extern float2 __attribute__((overloadable)) max(float2, float2); -//extern float3 __attribute__((overloadable)) max(float3, float3); -//extern float4 __attribute__((overloadable)) max(float4, float4); -//extern float8 __attribute__((overloadable)) max(float8, float8); -//extern float16 __attribute__((overloadable)) max(float16, float16); - -extern float __attribute__((overloadable)) min(float, float); -//extern float2 __attribute__((overloadable)) min(float2, float2); -//extern float3 __attribute__((overloadable)) min(float3, float3); -//extern float4 __attribute__((overloadable)) min(float4, float4); -//extern float8 __attribute__((overloadable)) min(float8, float8); -//extern float16 __attribute__((overloadable)) min(float16, float16); - -extern float __attribute__((overloadable)) mix(float, float, float); -//extern float2 __attribute__((overloadable)) mix(float2, float2, float2); -//extern float3 __attribute__((overloadable)) mix(float3, float3, float3); -//extern float4 __attribute__((overloadable)) mix(float4, float4, float4); -//extern float8 __attribute__((overloadable)) mix(float8, float8, float8); -//extern float16 __attribute__((overloadable)) mix(float16, float16, float16); -//extern float2 __attribute__((overloadable)) mix(float2, float2, float); -//extern float3 __attribute__((overloadable)) mix(float3, float3, float); -//extern float4 __attribute__((overloadable)) mix(float4, float4, float); -//extern float8 __attribute__((overloadable)) mix(float8, float8, float); -//extern float16 __attribute__((overloadable)) mix(float16, float16, float); +extern float2 __attribute__((overloadable)) log10(float2); +extern float3 __attribute__((overloadable)) log10(float3); +extern float4 __attribute__((overloadable)) log10(float4); +extern float8 __attribute__((overloadable)) log10(float8); +extern float16 __attribute__((overloadable)) log10(float16); + +extern float __attribute__((overloadable)) log1p(float); +extern float2 __attribute__((overloadable)) log1p(float2); +extern float3 __attribute__((overloadable)) log1p(float3); +extern float4 __attribute__((overloadable)) log1p(float4); +extern float8 __attribute__((overloadable)) log1p(float8); +extern float16 __attribute__((overloadable)) log1p(float16); + +extern float __attribute__((overloadable)) logb(float); +extern float2 __attribute__((overloadable)) logb(float2); +extern float3 __attribute__((overloadable)) logb(float3); +extern float4 __attribute__((overloadable)) logb(float4); +extern float8 __attribute__((overloadable)) logb(float8); +extern float16 __attribute__((overloadable)) logb(float16); + +extern float __attribute__((overloadable)) mad(float, float, float); +extern float2 __attribute__((overloadable)) mad(float2, float2, float2); +extern float3 __attribute__((overloadable)) mad(float3, float3, float3); +extern float4 __attribute__((overloadable)) mad(float4, float4, float4); +extern float8 __attribute__((overloadable)) mad(float8, float8, float8); +extern float16 __attribute__((overloadable)) mad(float16, float16, float16); + +extern float __attribute__((overloadable)) modf(float, float *); +extern float2 __attribute__((overloadable)) modf(float2, float2 *); +extern float3 __attribute__((overloadable)) modf(float3, float3 *); +extern float4 __attribute__((overloadable)) modf(float4, float4 *); +extern float8 __attribute__((overloadable)) modf(float8, float8 *); +extern float16 __attribute__((overloadable)) modf(float16, float16 *); + +extern float __attribute__((overloadable)) nan(uint); +extern float2 __attribute__((overloadable)) nan(uint2); +extern float3 __attribute__((overloadable)) nan(uint3); +extern float4 __attribute__((overloadable)) nan(uint4); +extern float8 __attribute__((overloadable)) nan(uint8); +extern float16 __attribute__((overloadable)) nan(uint16); + +extern float __attribute__((overloadable)) nextafter(float, float); +extern float2 __attribute__((overloadable)) nextafter(float2, float2); +extern float3 __attribute__((overloadable)) nextafter(float3, float3); +extern float4 __attribute__((overloadable)) nextafter(float4, float4); +extern float8 __attribute__((overloadable)) nextafter(float8, float8); +extern float16 __attribute__((overloadable)) nextafter(float16, float16); extern float __attribute__((overloadable)) pow(float, float); -//extern float2 __attribute__((overloadable)) pow(float2, float2); -//extern float3 __attribute__((overloadable)) pow(float3, float3); -//extern float4 __attribute__((overloadable)) pow(float4, float4); -//extern float8 __attribute__((overloadable)) pow(float8, float8); -//extern float16 __attribute__((overloadable)) pow(float16, float16); - -extern float __attribute__((overloadable)) radians(float); -//extern float2 __attribute__((overloadable)) radians(float2); -//extern float3 __attribute__((overloadable)) radians(float3); -//extern float4 __attribute__((overloadable)) radians(float4); -//extern float8 __attribute__((overloadable)) radians(float8); -//extern float16 __attribute__((overloadable)) radians(float16); +extern float2 __attribute__((overloadable)) pow(float2, float2); +extern float3 __attribute__((overloadable)) pow(float3, float3); +extern float4 __attribute__((overloadable)) pow(float4, float4); +extern float8 __attribute__((overloadable)) pow(float8, float8); +extern float16 __attribute__((overloadable)) pow(float16, float16); + +extern float __attribute__((overloadable)) pown(float, int); +extern float2 __attribute__((overloadable)) pown(float2, int2); +extern float3 __attribute__((overloadable)) pown(float3, int3); +extern float4 __attribute__((overloadable)) pown(float4, int4); +extern float8 __attribute__((overloadable)) pown(float8, int8); +extern float16 __attribute__((overloadable)) pown(float16, int16); + +extern float __attribute__((overloadable)) powr(float, float); +extern float2 __attribute__((overloadable)) powr(float2, float2); +extern float3 __attribute__((overloadable)) powr(float3, float3); +extern float4 __attribute__((overloadable)) powr(float4, float4); +extern float8 __attribute__((overloadable)) powr(float8, float8); +extern float16 __attribute__((overloadable)) powr(float16, float16); + +extern float __attribute__((overloadable)) remainder(float, float); +extern float2 __attribute__((overloadable)) remainder(float2, float2); +extern float3 __attribute__((overloadable)) remainder(float3, float3); +extern float4 __attribute__((overloadable)) remainder(float4, float4); +extern float8 __attribute__((overloadable)) remainder(float8, float8); +extern float16 __attribute__((overloadable)) remainder(float16, float16); + +extern float __attribute__((overloadable)) remquo(float, float, float *); +extern float2 __attribute__((overloadable)) remquo(float2, float2, float2 *); +extern float3 __attribute__((overloadable)) remquo(float3, float3, float3 *); +extern float4 __attribute__((overloadable)) remquo(float4, float4, float4 *); +extern float8 __attribute__((overloadable)) remquo(float8, float8, float8 *); +extern float16 __attribute__((overloadable)) remquo(float16, float16, float16 *); extern float __attribute__((overloadable)) rint(float); -//extern float2 __attribute__((overloadable)) rint(float2); -//extern float3 __attribute__((overloadable)) rint(float3); -//extern float4 __attribute__((overloadable)) rint(float4); -//extern float8 __attribute__((overloadable)) rint(float8); -//extern float16 __attribute__((overloadable)) rint(float16); +extern float2 __attribute__((overloadable)) rint(float2); +extern float3 __attribute__((overloadable)) rint(float3); +extern float4 __attribute__((overloadable)) rint(float4); +extern float8 __attribute__((overloadable)) rint(float8); +extern float16 __attribute__((overloadable)) rint(float16); + +extern float __attribute__((overloadable)) rootn(float, int); +extern float2 __attribute__((overloadable)) rootn(float2, int2); +extern float3 __attribute__((overloadable)) rootn(float3, int3); +extern float4 __attribute__((overloadable)) rootn(float4, int4); +extern float8 __attribute__((overloadable)) rootn(float8, int8); +extern float16 __attribute__((overloadable)) rootn(float16, int16); extern float __attribute__((overloadable)) round(float); -//extern float2 __attribute__((overloadable)) round(float2); -//extern float3 __attribute__((overloadable)) round(float3); -//extern float4 __attribute__((overloadable)) round(float4); -//extern float8 __attribute__((overloadable)) round(float8); -//extern float16 __attribute__((overloadable)) round(float16); +extern float2 __attribute__((overloadable)) round(float2); +extern float3 __attribute__((overloadable)) round(float3); +extern float4 __attribute__((overloadable)) round(float4); +extern float8 __attribute__((overloadable)) round(float8); +extern float16 __attribute__((overloadable)) round(float16); extern float __attribute__((overloadable)) rsqrt(float); -//extern float2 __attribute__((overloadable)) rsqrt(float2); -//extern float3 __attribute__((overloadable)) rsqrt(float3); -//extern float4 __attribute__((overloadable)) rsqrt(float4); -//extern float8 __attribute__((overloadable)) rsqrt(float8); -//extern float16 __attribute__((overloadable)) rsqrt(float16); - -extern float __attribute__((overloadable)) sign(float); -//extern float2 __attribute__((overloadable)) sign(float2); -//extern float3 __attribute__((overloadable)) sign(float3); -//extern float4 __attribute__((overloadable)) sign(float4); -//extern float8 __attribute__((overloadable)) sign(float8); -//extern float16 __attribute__((overloadable)) sign(float16); +extern float2 __attribute__((overloadable)) rsqrt(float2); +extern float3 __attribute__((overloadable)) rsqrt(float3); +extern float4 __attribute__((overloadable)) rsqrt(float4); +extern float8 __attribute__((overloadable)) rsqrt(float8); +extern float16 __attribute__((overloadable)) rsqrt(float16); extern float __attribute__((overloadable)) sin(float); -//extern float2 __attribute__((overloadable)) sin(float2); -//extern float3 __attribute__((overloadable)) sin(float3); -//extern float4 __attribute__((overloadable)) sin(float4); -//extern float8 __attribute__((overloadable)) sin(float8); -//extern float16 __attribute__((overloadable)) sin(float16); +extern float2 __attribute__((overloadable)) sin(float2); +extern float3 __attribute__((overloadable)) sin(float3); +extern float4 __attribute__((overloadable)) sin(float4); +extern float8 __attribute__((overloadable)) sin(float8); +extern float16 __attribute__((overloadable)) sin(float16); + +extern float __attribute__((overloadable)) sincos(float, float *); +extern float2 __attribute__((overloadable)) sincos(float2, float2 *); +extern float3 __attribute__((overloadable)) sincos(float3, float3 *); +extern float4 __attribute__((overloadable)) sincos(float4, float4 *); +extern float8 __attribute__((overloadable)) sincos(float8, float8 *); +extern float16 __attribute__((overloadable)) sincos(float16, float16 *); + +extern float __attribute__((overloadable)) sinh(float); +extern float2 __attribute__((overloadable)) sinh(float2); +extern float3 __attribute__((overloadable)) sinh(float3); +extern float4 __attribute__((overloadable)) sinh(float4); +extern float8 __attribute__((overloadable)) sinh(float8); +extern float16 __attribute__((overloadable)) sinh(float16); + +extern float __attribute__((overloadable)) sinpi(float); +extern float2 __attribute__((overloadable)) sinpi(float2); +extern float3 __attribute__((overloadable)) sinpi(float3); +extern float4 __attribute__((overloadable)) sinpi(float4); +extern float8 __attribute__((overloadable)) sinpi(float8); +extern float16 __attribute__((overloadable)) sinpi(float16); extern float __attribute__((overloadable)) sqrt(float); -//extern float2 __attribute__((overloadable)) sqrt(float2); -//extern float3 __attribute__((overloadable)) sqrt(float3); -//extern float4 __attribute__((overloadable)) sqrt(float4); -//extern float8 __attribute__((overloadable)) sqrt(float8); -//extern float16 __attribute__((overloadable)) sqrt(float16); +extern float2 __attribute__((overloadable)) sqrt(float2); +extern float3 __attribute__((overloadable)) sqrt(float3); +extern float4 __attribute__((overloadable)) sqrt(float4); +extern float8 __attribute__((overloadable)) sqrt(float8); +extern float16 __attribute__((overloadable)) sqrt(float16); extern float __attribute__((overloadable)) tan(float); -//extern float2 __attribute__((overloadable)) tan(float2); -//extern float3 __attribute__((overloadable)) tan(float3); -//extern float4 __attribute__((overloadable)) tan(float4); -//extern float8 __attribute__((overloadable)) tan(float8); -//extern float16 __attribute__((overloadable)) tan(float16); +extern float2 __attribute__((overloadable)) tan(float2); +extern float3 __attribute__((overloadable)) tan(float3); +extern float4 __attribute__((overloadable)) tan(float4); +extern float8 __attribute__((overloadable)) tan(float8); +extern float16 __attribute__((overloadable)) tan(float16); + +extern float __attribute__((overloadable)) tanh(float); +extern float2 __attribute__((overloadable)) tanh(float2); +extern float3 __attribute__((overloadable)) tanh(float3); +extern float4 __attribute__((overloadable)) tanh(float4); +extern float8 __attribute__((overloadable)) tanh(float8); +extern float16 __attribute__((overloadable)) tanh(float16); + +extern float __attribute__((overloadable)) tanpi(float); +extern float2 __attribute__((overloadable)) tanpi(float2); +extern float3 __attribute__((overloadable)) tanpi(float3); +extern float4 __attribute__((overloadable)) tanpi(float4); +extern float8 __attribute__((overloadable)) tanpi(float8); +extern float16 __attribute__((overloadable)) tanpi(float16); + +extern float __attribute__((overloadable)) tgamma(float); +extern float2 __attribute__((overloadable)) tgamma(float2); +extern float3 __attribute__((overloadable)) tgamma(float3); +extern float4 __attribute__((overloadable)) tgamma(float4); +extern float8 __attribute__((overloadable)) tgamma(float8); +extern float16 __attribute__((overloadable)) tgamma(float16); extern float __attribute__((overloadable)) trunc(float); -//extern float2 __attribute__((overloadable)) trunc(float2); -//extern float3 __attribute__((overloadable)) trunc(float3); -//extern float4 __attribute__((overloadable)) trunc(float4); -//extern float8 __attribute__((overloadable)) trunc(float8); -//extern float16 __attribute__((overloadable)) trunc(float16); +extern float2 __attribute__((overloadable)) trunc(float2); +extern float3 __attribute__((overloadable)) trunc(float3); +extern float4 __attribute__((overloadable)) trunc(float4); +extern float8 __attribute__((overloadable)) trunc(float8); +extern float16 __attribute__((overloadable)) trunc(float16); + + +// Int ops (partial), 6.11.3 +extern uint __attribute__((overloadable)) abs(int); +extern ushort __attribute__((overloadable)) abs(short); +extern uchar __attribute__((overloadable)) abs(char); +extern uint __attribute__((overloadable)) clz(uint); +extern int __attribute__((overloadable)) clz(int); +extern ushort __attribute__((overloadable)) clz(ushort); +extern short __attribute__((overloadable)) clz(short); +extern uchar __attribute__((overloadable)) clz(uchar); +extern char __attribute__((overloadable)) clz(char); -// Int ops +extern uint __attribute__((overloadable)) min(uint); +extern int __attribute__((overloadable)) min(int); +extern ushort __attribute__((overloadable)) min(ushort); +extern short __attribute__((overloadable)) min(short); +extern uchar __attribute__((overloadable)) min(uchar); +extern char __attribute__((overloadable)) min(char); -extern int __attribute__((overloadable)) abs(int); -//extern int2 __attribute__((overloadable)) abs(int2); -//extern int3 __attribute__((overloadable)) abs(int3); -//extern int4 __attribute__((overloadable)) abs(int4); -//extern int8 __attribute__((overloadable)) abs(int8); -//extern int16 __attribute__((overloadable)) abs(int16); +extern uint __attribute__((overloadable)) max(uint); +extern int __attribute__((overloadable)) max(int); +extern ushort __attribute__((overloadable)) max(ushort); +extern short __attribute__((overloadable)) max(short); +extern uchar __attribute__((overloadable)) max(uchar); +extern char __attribute__((overloadable)) max(char); -/* -extern float modf(float, float); + +// 6.11.4 + +extern float __attribute__((overloadable)) clamp(float, float, float); +extern float2 __attribute__((overloadable)) clamp(float2, float2, float2); +extern float3 __attribute__((overloadable)) clamp(float3, float3, float3); +extern float4 __attribute__((overloadable)) clamp(float4, float4, float4); +extern float8 __attribute__((overloadable)) clamp(float8, float8, float8); +extern float16 __attribute__((overloadable)) clamp(float16, float16, float16); +extern float2 __attribute__((overloadable)) clamp(float2, float, float); +extern float3 __attribute__((overloadable)) clamp(float3, float, float); +extern float4 __attribute__((overloadable)) clamp(float4, float, float); +extern float8 __attribute__((overloadable)) clamp(float8, float, float); +extern float16 __attribute__((overloadable)) clamp(float16, float, float); + +extern float __attribute__((overloadable)) degrees(float); +extern float2 __attribute__((overloadable)) degrees(float2); +extern float3 __attribute__((overloadable)) degrees(float3); +extern float4 __attribute__((overloadable)) degrees(float4); +extern float8 __attribute__((overloadable)) degrees(float8); +extern float16 __attribute__((overloadable)) degrees(float16); + +extern float __attribute__((overloadable)) max(float, float); +extern float2 __attribute__((overloadable)) max(float2, float2); +extern float3 __attribute__((overloadable)) max(float3, float3); +extern float4 __attribute__((overloadable)) max(float4, float4); +extern float8 __attribute__((overloadable)) max(float8, float8); +extern float16 __attribute__((overloadable)) max(float16, float16); +extern float2 __attribute__((overloadable)) max(float2, float); +extern float3 __attribute__((overloadable)) max(float3, float); +extern float4 __attribute__((overloadable)) max(float4, float); +extern float8 __attribute__((overloadable)) max(float8, float); +extern float16 __attribute__((overloadable)) max(float16, float); + +extern float __attribute__((overloadable)) min(float, float); +extern float2 __attribute__((overloadable)) min(float2, float2); +extern float3 __attribute__((overloadable)) min(float3, float3); +extern float4 __attribute__((overloadable)) min(float4, float4); +extern float8 __attribute__((overloadable)) min(float8, float8); +extern float16 __attribute__((overloadable)) min(float16, float16); +extern float2 __attribute__((overloadable)) min(float2, float); +extern float3 __attribute__((overloadable)) min(float3, float); +extern float4 __attribute__((overloadable)) min(float4, float); +extern float8 __attribute__((overloadable)) min(float8, float); +extern float16 __attribute__((overloadable)) min(float16, float); + +extern float __attribute__((overloadable)) mix(float, float, float); +extern float2 __attribute__((overloadable)) mix(float2, float2, float2); +extern float3 __attribute__((overloadable)) mix(float3, float3, float3); +extern float4 __attribute__((overloadable)) mix(float4, float4, float4); +extern float8 __attribute__((overloadable)) mix(float8, float8, float8); +extern float16 __attribute__((overloadable)) mix(float16, float16, float16); +extern float2 __attribute__((overloadable)) mix(float2, float2, float); +extern float3 __attribute__((overloadable)) mix(float3, float3, float); +extern float4 __attribute__((overloadable)) mix(float4, float4, float); +extern float8 __attribute__((overloadable)) mix(float8, float8, float); +extern float16 __attribute__((overloadable)) mix(float16, float16, float); + +extern float __attribute__((overloadable)) radians(float); +extern float2 __attribute__((overloadable)) radians(float2); +extern float3 __attribute__((overloadable)) radians(float3); +extern float4 __attribute__((overloadable)) radians(float4); +extern float8 __attribute__((overloadable)) radians(float8); +extern float16 __attribute__((overloadable)) radians(float16); + +extern float __attribute__((overloadable)) step(float, float); +extern float2 __attribute__((overloadable)) step(float2, float2); +extern float3 __attribute__((overloadable)) step(float3, float3); +extern float4 __attribute__((overloadable)) step(float4, float4); +extern float8 __attribute__((overloadable)) step(float8, float8); +extern float16 __attribute__((overloadable)) step(float16, float16); +extern float2 __attribute__((overloadable)) step(float, float2); +extern float3 __attribute__((overloadable)) step(float, float3); +extern float4 __attribute__((overloadable)) step(float, float4); +extern float8 __attribute__((overloadable)) step(float, float8); +extern float16 __attribute__((overloadable)) step(float, float16); + +extern float __attribute__((overloadable)) smoothstep(float, float, float); +extern float2 __attribute__((overloadable)) smoothstep(float2, float2, float2); +extern float3 __attribute__((overloadable)) smoothstep(float3, float3, float3); +extern float4 __attribute__((overloadable)) smoothstep(float4, float4, float4); +extern float8 __attribute__((overloadable)) smoothstep(float8, float8, float8); +extern float16 __attribute__((overloadable)) smoothstep(float16, float16, float16); +extern float2 __attribute__((overloadable)) smoothstep(float, float, float2); +extern float3 __attribute__((overloadable)) smoothstep(float, float, float3); +extern float4 __attribute__((overloadable)) smoothstep(float, float, float4); +extern float8 __attribute__((overloadable)) smoothstep(float, float, float8); +extern float16 __attribute__((overloadable)) smoothstep(float, float, float16); + +extern float __attribute__((overloadable)) sign(float); +extern float2 __attribute__((overloadable)) sign(float2); +extern float3 __attribute__((overloadable)) sign(float3); +extern float4 __attribute__((overloadable)) sign(float4); +extern float8 __attribute__((overloadable)) sign(float8); +extern float16 __attribute__((overloadable)) sign(float16); + +// 6.11.5 +extern float3 __attribute__((overloadable)) cross(float2, float2); +extern float3 __attribute__((overloadable)) cross(float3, float3); +extern float4 __attribute__((overloadable)) cross(float4, float4); + +extern float __attribute__((overloadable)) dot(float, float); +extern float __attribute__((overloadable)) dot(float2, float2); +extern float __attribute__((overloadable)) dot(float3, float3); +extern float __attribute__((overloadable)) dot(float4, float4); + +extern float __attribute__((overloadable)) distance(float, float); +extern float __attribute__((overloadable)) distance(float2, float2); +extern float __attribute__((overloadable)) distance(float3, float3); +extern float __attribute__((overloadable)) distance(float4, float4); + +extern float __attribute__((overloadable)) length(float); +extern float __attribute__((overloadable)) length(float2); +extern float __attribute__((overloadable)) length(float3); +extern float __attribute__((overloadable)) length(float4); + +extern float __attribute__((overloadable)) normalize(float); +extern float2 __attribute__((overloadable)) normalize(float2); +extern float3 __attribute__((overloadable)) normalize(float3); +extern float4 __attribute__((overloadable)) normalize(float4); + + +// RS specific functions extern float randf(float); extern float randf2(float, float); -extern float fracf(float); -extern float lerpf(float, float, float); extern float mapf(float, float, float, float, float); -*/ + +extern float __attribute__((overloadable)) frac(float); + +extern void debugP(int, void *); +extern void debugPi(int, int); +extern void debugPf(int, float); +extern void debugF(const char *, float); +extern void debugI32(const char *, int); +extern void debugHexI32(const char *, int); + +extern void matrixLoadIdentity(void *mat); +extern void matrixLoadFloat(void *mat, const float *f); +extern void matrixLoadMat(void *mat, const void *newmat); +extern void matrixLoadRotate(void *mat, float rot, float x, float y, float z); +extern void matrixLoadScale(void *mat, float x, float y, float z); +extern void matrixLoadTranslate(void *mat, float x, float y, float z); +extern void matrixLoadMultiply(void *mat, const void *lhs, const void *rhs); +extern void matrixMultiply(void *mat, const void *rhs); +extern void matrixRotate(void *mat, float rot, float x, float y, float z); +extern void matrixScale(void *mat, float x, float y, float z); +extern void matrixTranslate(void *mat, float x, float y, float z); + |