blob: ab1f7ee0e74b93eb22c5cfabd7eb67b44f822391 [file] [log] [blame]
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
// Don't edit this file! It is auto-generated by frameworks/rs/api/gen_runtime.
/** @file
*
*/
#ifndef __rs_core_math_rsh__
#define __rs_core_math_rsh__
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the integer n.
*
* For floats, use fabs().
*
* Supported by API versions 9 and newer.
*/
extern uchar __attribute__((const, overloadable))abs(char n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the integer n.
*
* For floats, use fabs().
*
* Supported by API versions 9 and newer.
*/
extern uchar2 __attribute__((const, overloadable))abs(char2 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the integer n.
*
* For floats, use fabs().
*
* Supported by API versions 9 and newer.
*/
extern uchar3 __attribute__((const, overloadable))abs(char3 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the integer n.
*
* For floats, use fabs().
*
* Supported by API versions 9 and newer.
*/
extern uchar4 __attribute__((const, overloadable))abs(char4 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the integer n.
*
* For floats, use fabs().
*
* Supported by API versions 9 and newer.
*/
extern ushort __attribute__((const, overloadable))abs(short n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the integer n.
*
* For floats, use fabs().
*
* Supported by API versions 9 and newer.
*/
extern ushort2 __attribute__((const, overloadable))abs(short2 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the integer n.
*
* For floats, use fabs().
*
* Supported by API versions 9 and newer.
*/
extern ushort3 __attribute__((const, overloadable))abs(short3 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the integer n.
*
* For floats, use fabs().
*
* Supported by API versions 9 and newer.
*/
extern ushort4 __attribute__((const, overloadable))abs(short4 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the integer n.
*
* For floats, use fabs().
*
* Supported by API versions 9 and newer.
*/
extern uint __attribute__((const, overloadable))abs(int n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the integer n.
*
* For floats, use fabs().
*
* Supported by API versions 9 and newer.
*/
extern uint2 __attribute__((const, overloadable))abs(int2 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the integer n.
*
* For floats, use fabs().
*
* Supported by API versions 9 and newer.
*/
extern uint3 __attribute__((const, overloadable))abs(int3 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the integer n.
*
* For floats, use fabs().
*
* Supported by API versions 9 and newer.
*/
extern uint4 __attribute__((const, overloadable))abs(int4 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse cosine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))acos(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse cosine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))acos(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse cosine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))acos(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse cosine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))acos(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse hyperbolic cosine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))acosh(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse hyperbolic cosine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))acosh(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse hyperbolic cosine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))acosh(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse hyperbolic cosine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))acosh(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse cosine in radians, divided by pi.
*
* To get an inverse cosine measured in degrees, use acospi(a) * 180.f.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))acospi(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse cosine in radians, divided by pi.
*
* To get an inverse cosine measured in degrees, use acospi(a) * 180.f.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))acospi(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse cosine in radians, divided by pi.
*
* To get an inverse cosine measured in degrees, use acospi(a) * 180.f.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))acospi(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse cosine in radians, divided by pi.
*
* To get an inverse cosine measured in degrees, use acospi(a) * 180.f.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))acospi(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse sine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))asin(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse sine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))asin(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse sine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))asin(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse sine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))asin(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse hyperbolic sine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))asinh(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse hyperbolic sine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))asinh(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse hyperbolic sine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))asinh(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse hyperbolic sine, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))asinh(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse sine in radians, divided by pi.
*
* To get an inverse sine measured in degrees, use asinpi(a) * 180.f.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))asinpi(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse sine in radians, divided by pi.
*
* To get an inverse sine measured in degrees, use asinpi(a) * 180.f.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))asinpi(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse sine in radians, divided by pi.
*
* To get an inverse sine measured in degrees, use asinpi(a) * 180.f.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))asinpi(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse sine in radians, divided by pi.
*
* To get an inverse sine measured in degrees, use asinpi(a) * 180.f.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))asinpi(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))atan(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))atan(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))atan(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))atan(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent of y / x, in radians.
*
* x can be 0.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))atan2(float y, float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent of y / x, in radians.
*
* x can be 0.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))atan2(float2 y, float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent of y / x, in radians.
*
* x can be 0.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))atan2(float3 y, float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent of y / x, in radians.
*
* x can be 0.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))atan2(float4 y, float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent of y / x, in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atan2pi(x, y) * 180.f.
*
* x can be 0.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))atan2pi(float y, float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent of y / x, in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atan2pi(x, y) * 180.f.
*
* x can be 0.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))atan2pi(float2 y, float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent of y / x, in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atan2pi(x, y) * 180.f.
*
* x can be 0.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))atan2pi(float3 y, float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent of y / x, in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atan2pi(x, y) * 180.f.
*
* x can be 0.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))atan2pi(float4 y, float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse hyperbolic tangent, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))atanh(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse hyperbolic tangent, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))atanh(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse hyperbolic tangent, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))atanh(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse hyperbolic tangent, in radians.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))atanh(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atanpi(a) * 180.f.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))atanpi(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atanpi(a) * 180.f.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))atanpi(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atanpi(a) * 180.f.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))atanpi(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the inverse tangent in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atanpi(a) * 180.f.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))atanpi(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the cube root.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))cbrt(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the cube root.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))cbrt(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the cube root.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))cbrt(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the cube root.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))cbrt(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the smallest integer not less than a value.
*
* For example, ceil(1.2f) returns 2.f, and ceil(-1.2f) returns -1.f.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))ceil(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the smallest integer not less than a value.
*
* For example, ceil(1.2f) returns 2.f, and ceil(-1.2f) returns -1.f.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))ceil(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the smallest integer not less than a value.
*
* For example, ceil(1.2f) returns 2.f, and ceil(-1.2f) returns -1.f.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))ceil(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the smallest integer not less than a value.
*
* For example, ceil(1.2f) returns 2.f, and ceil(-1.2f) returns -1.f.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))ceil(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))clamp(float value, float min_value, float max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))clamp(float2 value, float2 min_value, float2 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))clamp(float3 value, float3 min_value, float3 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))clamp(float4 value, float4 min_value, float4 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))clamp(float2 value, float min_value, float max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))clamp(float3 value, float min_value, float max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))clamp(float4 value, float min_value, float max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern char __attribute__((const, overloadable))clamp(char value, char min_value, char max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern char2 __attribute__((const, overloadable))clamp(char2 value, char2 min_value, char2 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern char3 __attribute__((const, overloadable))clamp(char3 value, char3 min_value, char3 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern char4 __attribute__((const, overloadable))clamp(char4 value, char4 min_value, char4 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uchar __attribute__((const, overloadable))clamp(uchar value, uchar min_value, uchar max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uchar2 __attribute__((const, overloadable))clamp(uchar2 value, uchar2 min_value, uchar2 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uchar3 __attribute__((const, overloadable))clamp(uchar3 value, uchar3 min_value, uchar3 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uchar4 __attribute__((const, overloadable))clamp(uchar4 value, uchar4 min_value, uchar4 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern short __attribute__((const, overloadable))clamp(short value, short min_value, short max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern short2 __attribute__((const, overloadable))clamp(short2 value, short2 min_value, short2 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern short3 __attribute__((const, overloadable))clamp(short3 value, short3 min_value, short3 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern short4 __attribute__((const, overloadable))clamp(short4 value, short4 min_value, short4 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ushort __attribute__((const, overloadable))clamp(ushort value, ushort min_value, ushort max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ushort2 __attribute__((const, overloadable))clamp(ushort2 value, ushort2 min_value, ushort2 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ushort3 __attribute__((const, overloadable))clamp(ushort3 value, ushort3 min_value, ushort3 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ushort4 __attribute__((const, overloadable))clamp(ushort4 value, ushort4 min_value, ushort4 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern int __attribute__((const, overloadable))clamp(int value, int min_value, int max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern int2 __attribute__((const, overloadable))clamp(int2 value, int2 min_value, int2 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern int3 __attribute__((const, overloadable))clamp(int3 value, int3 min_value, int3 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern int4 __attribute__((const, overloadable))clamp(int4 value, int4 min_value, int4 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uint __attribute__((const, overloadable))clamp(uint value, uint min_value, uint max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uint2 __attribute__((const, overloadable))clamp(uint2 value, uint2 min_value, uint2 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uint3 __attribute__((const, overloadable))clamp(uint3 value, uint3 min_value, uint3 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uint4 __attribute__((const, overloadable))clamp(uint4 value, uint4 min_value, uint4 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern long __attribute__((const, overloadable))clamp(long value, long min_value, long max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern long2 __attribute__((const, overloadable))clamp(long2 value, long2 min_value, long2 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern long3 __attribute__((const, overloadable))clamp(long3 value, long3 min_value, long3 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern long4 __attribute__((const, overloadable))clamp(long4 value, long4 min_value, long4 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ulong __attribute__((const, overloadable))clamp(ulong value, ulong min_value, ulong max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ulong2 __attribute__((const, overloadable))clamp(ulong2 value, ulong2 min_value, ulong2 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ulong3 __attribute__((const, overloadable))clamp(ulong3 value, ulong3 min_value, ulong3 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ulong4 __attribute__((const, overloadable))clamp(ulong4 value, ulong4 min_value, ulong4 max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern char2 __attribute__((const, overloadable))clamp(char2 value, char min_value, char max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern char3 __attribute__((const, overloadable))clamp(char3 value, char min_value, char max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern char4 __attribute__((const, overloadable))clamp(char4 value, char min_value, char max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uchar2 __attribute__((const, overloadable))clamp(uchar2 value, uchar min_value, uchar max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uchar3 __attribute__((const, overloadable))clamp(uchar3 value, uchar min_value, uchar max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uchar4 __attribute__((const, overloadable))clamp(uchar4 value, uchar min_value, uchar max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern short2 __attribute__((const, overloadable))clamp(short2 value, short min_value, short max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern short3 __attribute__((const, overloadable))clamp(short3 value, short min_value, short max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern short4 __attribute__((const, overloadable))clamp(short4 value, short min_value, short max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ushort2 __attribute__((const, overloadable))clamp(ushort2 value, ushort min_value, ushort max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ushort3 __attribute__((const, overloadable))clamp(ushort3 value, ushort min_value, ushort max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ushort4 __attribute__((const, overloadable))clamp(ushort4 value, ushort min_value, ushort max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern int2 __attribute__((const, overloadable))clamp(int2 value, int min_value, int max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern int3 __attribute__((const, overloadable))clamp(int3 value, int min_value, int max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern int4 __attribute__((const, overloadable))clamp(int4 value, int min_value, int max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uint2 __attribute__((const, overloadable))clamp(uint2 value, uint min_value, uint max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uint3 __attribute__((const, overloadable))clamp(uint3 value, uint min_value, uint max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern uint4 __attribute__((const, overloadable))clamp(uint4 value, uint min_value, uint max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern long2 __attribute__((const, overloadable))clamp(long2 value, long min_value, long max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern long3 __attribute__((const, overloadable))clamp(long3 value, long min_value, long max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern long4 __attribute__((const, overloadable))clamp(long4 value, long min_value, long max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ulong2 __attribute__((const, overloadable))clamp(ulong2 value, ulong min_value, ulong max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ulong3 __attribute__((const, overloadable))clamp(ulong3 value, ulong min_value, ulong max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 19))
/**
* Clamps a value to a specified high and low bound.
*
* clamp() returns min_value if value < min_value, max_value if value > max_value, otherwise value.
*
* If min_value is greater than max_value, the results are undefined.
*
* @param value Value to be clamped. Supports 1, 2, 3, 4 components.
* @param min_value Lower bound, must be scalar or matching vector.
* @param max_value High bound, must match the type of low.
*
* Supported by API versions 19 and newer.
*/
extern ulong4 __attribute__((const, overloadable))clamp(ulong4 value, ulong min_value, ulong max_value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern char __attribute__((const, overloadable))clz(char value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern char2 __attribute__((const, overloadable))clz(char2 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern char3 __attribute__((const, overloadable))clz(char3 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern char4 __attribute__((const, overloadable))clz(char4 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern uchar __attribute__((const, overloadable))clz(uchar value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern uchar2 __attribute__((const, overloadable))clz(uchar2 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern uchar3 __attribute__((const, overloadable))clz(uchar3 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern uchar4 __attribute__((const, overloadable))clz(uchar4 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern short __attribute__((const, overloadable))clz(short value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern short2 __attribute__((const, overloadable))clz(short2 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern short3 __attribute__((const, overloadable))clz(short3 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern short4 __attribute__((const, overloadable))clz(short4 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern ushort __attribute__((const, overloadable))clz(ushort value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern ushort2 __attribute__((const, overloadable))clz(ushort2 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern ushort3 __attribute__((const, overloadable))clz(ushort3 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern ushort4 __attribute__((const, overloadable))clz(ushort4 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern int __attribute__((const, overloadable))clz(int value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern int2 __attribute__((const, overloadable))clz(int2 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern int3 __attribute__((const, overloadable))clz(int3 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern int4 __attribute__((const, overloadable))clz(int4 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern uint __attribute__((const, overloadable))clz(uint value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern uint2 __attribute__((const, overloadable))clz(uint2 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern uint3 __attribute__((const, overloadable))clz(uint3 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the number of leading 0-bits in a value.
*
* For example, clz((char)0x03) returns 5.
*
* Supported by API versions 9 and newer.
*/
extern uint4 __attribute__((const, overloadable))clz(uint4 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float2 to float2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))convert_float2(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float3 to float3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))convert_float3(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float4 to float4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))convert_float4(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char2 to float2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))convert_float2(char2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char3 to float3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))convert_float3(char3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char4 to float4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))convert_float4(char4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar2 to float2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))convert_float2(uchar2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar3 to float3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))convert_float3(uchar3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar4 to float4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))convert_float4(uchar4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short2 to float2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))convert_float2(short2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short3 to float3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))convert_float3(short3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short4 to float4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))convert_float4(short4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort2 to float2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))convert_float2(ushort2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort3 to float3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))convert_float3(ushort3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort4 to float4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))convert_float4(ushort4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int2 to float2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))convert_float2(int2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int3 to float3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))convert_float3(int3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int4 to float4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))convert_float4(int4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint2 to float2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))convert_float2(uint2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint3 to float3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))convert_float3(uint3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint4 to float4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))convert_float4(uint4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float2 to char2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char2 __attribute__((const, overloadable))convert_char2(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float3 to char3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char3 __attribute__((const, overloadable))convert_char3(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float4 to char4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char4 __attribute__((const, overloadable))convert_char4(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char2 to char2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char2 __attribute__((const, overloadable))convert_char2(char2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char3 to char3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char3 __attribute__((const, overloadable))convert_char3(char3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char4 to char4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char4 __attribute__((const, overloadable))convert_char4(char4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar2 to char2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char2 __attribute__((const, overloadable))convert_char2(uchar2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar3 to char3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char3 __attribute__((const, overloadable))convert_char3(uchar3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar4 to char4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char4 __attribute__((const, overloadable))convert_char4(uchar4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short2 to char2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char2 __attribute__((const, overloadable))convert_char2(short2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short3 to char3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char3 __attribute__((const, overloadable))convert_char3(short3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short4 to char4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char4 __attribute__((const, overloadable))convert_char4(short4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort2 to char2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char2 __attribute__((const, overloadable))convert_char2(ushort2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort3 to char3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char3 __attribute__((const, overloadable))convert_char3(ushort3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort4 to char4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char4 __attribute__((const, overloadable))convert_char4(ushort4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int2 to char2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char2 __attribute__((const, overloadable))convert_char2(int2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int3 to char3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char3 __attribute__((const, overloadable))convert_char3(int3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int4 to char4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char4 __attribute__((const, overloadable))convert_char4(int4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint2 to char2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char2 __attribute__((const, overloadable))convert_char2(uint2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint3 to char3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char3 __attribute__((const, overloadable))convert_char3(uint3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint4 to char4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern char4 __attribute__((const, overloadable))convert_char4(uint4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float2 to uchar2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar2 __attribute__((const, overloadable))convert_uchar2(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float3 to uchar3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar3 __attribute__((const, overloadable))convert_uchar3(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float4 to uchar4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar4 __attribute__((const, overloadable))convert_uchar4(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char2 to uchar2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar2 __attribute__((const, overloadable))convert_uchar2(char2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char3 to uchar3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar3 __attribute__((const, overloadable))convert_uchar3(char3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char4 to uchar4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar4 __attribute__((const, overloadable))convert_uchar4(char4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar2 to uchar2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar2 __attribute__((const, overloadable))convert_uchar2(uchar2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar3 to uchar3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar3 __attribute__((const, overloadable))convert_uchar3(uchar3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar4 to uchar4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar4 __attribute__((const, overloadable))convert_uchar4(uchar4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short2 to uchar2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar2 __attribute__((const, overloadable))convert_uchar2(short2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short3 to uchar3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar3 __attribute__((const, overloadable))convert_uchar3(short3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short4 to uchar4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar4 __attribute__((const, overloadable))convert_uchar4(short4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort2 to uchar2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar2 __attribute__((const, overloadable))convert_uchar2(ushort2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort3 to uchar3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar3 __attribute__((const, overloadable))convert_uchar3(ushort3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort4 to uchar4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar4 __attribute__((const, overloadable))convert_uchar4(ushort4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int2 to uchar2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar2 __attribute__((const, overloadable))convert_uchar2(int2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int3 to uchar3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar3 __attribute__((const, overloadable))convert_uchar3(int3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int4 to uchar4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar4 __attribute__((const, overloadable))convert_uchar4(int4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint2 to uchar2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar2 __attribute__((const, overloadable))convert_uchar2(uint2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint3 to uchar3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar3 __attribute__((const, overloadable))convert_uchar3(uint3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint4 to uchar4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uchar4 __attribute__((const, overloadable))convert_uchar4(uint4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float2 to short2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short2 __attribute__((const, overloadable))convert_short2(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float3 to short3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short3 __attribute__((const, overloadable))convert_short3(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float4 to short4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short4 __attribute__((const, overloadable))convert_short4(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char2 to short2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short2 __attribute__((const, overloadable))convert_short2(char2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char3 to short3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short3 __attribute__((const, overloadable))convert_short3(char3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char4 to short4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short4 __attribute__((const, overloadable))convert_short4(char4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar2 to short2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short2 __attribute__((const, overloadable))convert_short2(uchar2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar3 to short3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short3 __attribute__((const, overloadable))convert_short3(uchar3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar4 to short4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short4 __attribute__((const, overloadable))convert_short4(uchar4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short2 to short2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short2 __attribute__((const, overloadable))convert_short2(short2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short3 to short3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short3 __attribute__((const, overloadable))convert_short3(short3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short4 to short4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short4 __attribute__((const, overloadable))convert_short4(short4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort2 to short2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short2 __attribute__((const, overloadable))convert_short2(ushort2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort3 to short3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short3 __attribute__((const, overloadable))convert_short3(ushort3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort4 to short4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short4 __attribute__((const, overloadable))convert_short4(ushort4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int2 to short2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short2 __attribute__((const, overloadable))convert_short2(int2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int3 to short3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short3 __attribute__((const, overloadable))convert_short3(int3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int4 to short4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short4 __attribute__((const, overloadable))convert_short4(int4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint2 to short2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short2 __attribute__((const, overloadable))convert_short2(uint2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint3 to short3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short3 __attribute__((const, overloadable))convert_short3(uint3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint4 to short4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern short4 __attribute__((const, overloadable))convert_short4(uint4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float2 to ushort2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort2 __attribute__((const, overloadable))convert_ushort2(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float3 to ushort3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort3 __attribute__((const, overloadable))convert_ushort3(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float4 to ushort4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort4 __attribute__((const, overloadable))convert_ushort4(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char2 to ushort2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort2 __attribute__((const, overloadable))convert_ushort2(char2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char3 to ushort3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort3 __attribute__((const, overloadable))convert_ushort3(char3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char4 to ushort4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort4 __attribute__((const, overloadable))convert_ushort4(char4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar2 to ushort2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort2 __attribute__((const, overloadable))convert_ushort2(uchar2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar3 to ushort3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort3 __attribute__((const, overloadable))convert_ushort3(uchar3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar4 to ushort4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort4 __attribute__((const, overloadable))convert_ushort4(uchar4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short2 to ushort2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort2 __attribute__((const, overloadable))convert_ushort2(short2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short3 to ushort3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort3 __attribute__((const, overloadable))convert_ushort3(short3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short4 to ushort4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort4 __attribute__((const, overloadable))convert_ushort4(short4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort2 to ushort2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort2 __attribute__((const, overloadable))convert_ushort2(ushort2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort3 to ushort3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort3 __attribute__((const, overloadable))convert_ushort3(ushort3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort4 to ushort4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort4 __attribute__((const, overloadable))convert_ushort4(ushort4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int2 to ushort2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort2 __attribute__((const, overloadable))convert_ushort2(int2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int3 to ushort3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort3 __attribute__((const, overloadable))convert_ushort3(int3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int4 to ushort4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort4 __attribute__((const, overloadable))convert_ushort4(int4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint2 to ushort2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort2 __attribute__((const, overloadable))convert_ushort2(uint2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint3 to ushort3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort3 __attribute__((const, overloadable))convert_ushort3(uint3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint4 to ushort4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern ushort4 __attribute__((const, overloadable))convert_ushort4(uint4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float2 to int2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int2 __attribute__((const, overloadable))convert_int2(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float3 to int3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int3 __attribute__((const, overloadable))convert_int3(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float4 to int4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int4 __attribute__((const, overloadable))convert_int4(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char2 to int2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int2 __attribute__((const, overloadable))convert_int2(char2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char3 to int3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int3 __attribute__((const, overloadable))convert_int3(char3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char4 to int4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int4 __attribute__((const, overloadable))convert_int4(char4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar2 to int2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int2 __attribute__((const, overloadable))convert_int2(uchar2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar3 to int3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int3 __attribute__((const, overloadable))convert_int3(uchar3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar4 to int4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int4 __attribute__((const, overloadable))convert_int4(uchar4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short2 to int2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int2 __attribute__((const, overloadable))convert_int2(short2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short3 to int3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int3 __attribute__((const, overloadable))convert_int3(short3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short4 to int4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int4 __attribute__((const, overloadable))convert_int4(short4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort2 to int2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int2 __attribute__((const, overloadable))convert_int2(ushort2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort3 to int3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int3 __attribute__((const, overloadable))convert_int3(ushort3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort4 to int4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int4 __attribute__((const, overloadable))convert_int4(ushort4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int2 to int2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int2 __attribute__((const, overloadable))convert_int2(int2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int3 to int3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int3 __attribute__((const, overloadable))convert_int3(int3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int4 to int4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int4 __attribute__((const, overloadable))convert_int4(int4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint2 to int2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int2 __attribute__((const, overloadable))convert_int2(uint2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint3 to int3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int3 __attribute__((const, overloadable))convert_int3(uint3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint4 to int4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern int4 __attribute__((const, overloadable))convert_int4(uint4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float2 to uint2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint2 __attribute__((const, overloadable))convert_uint2(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float3 to uint3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint3 __attribute__((const, overloadable))convert_uint3(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from float4 to uint4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint4 __attribute__((const, overloadable))convert_uint4(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char2 to uint2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint2 __attribute__((const, overloadable))convert_uint2(char2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char3 to uint3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint3 __attribute__((const, overloadable))convert_uint3(char3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from char4 to uint4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint4 __attribute__((const, overloadable))convert_uint4(char4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar2 to uint2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint2 __attribute__((const, overloadable))convert_uint2(uchar2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar3 to uint3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint3 __attribute__((const, overloadable))convert_uint3(uchar3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uchar4 to uint4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint4 __attribute__((const, overloadable))convert_uint4(uchar4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short2 to uint2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint2 __attribute__((const, overloadable))convert_uint2(short2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short3 to uint3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint3 __attribute__((const, overloadable))convert_uint3(short3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from short4 to uint4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint4 __attribute__((const, overloadable))convert_uint4(short4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort2 to uint2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint2 __attribute__((const, overloadable))convert_uint2(ushort2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort3 to uint3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint3 __attribute__((const, overloadable))convert_uint3(ushort3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from ushort4 to uint4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint4 __attribute__((const, overloadable))convert_uint4(ushort4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int2 to uint2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint2 __attribute__((const, overloadable))convert_uint2(int2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int3 to uint3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint3 __attribute__((const, overloadable))convert_uint3(int3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from int4 to uint4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint4 __attribute__((const, overloadable))convert_uint4(int4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint2 to uint2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint2 __attribute__((const, overloadable))convert_uint2(uint2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint3 to uint3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint3 __attribute__((const, overloadable))convert_uint3(uint3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Component wise conversion from uint4 to uint4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 9 and newer.
*/
extern uint4 __attribute__((const, overloadable))convert_uint4(uint4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double2 to double2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double2 __attribute__((const, overloadable))convert_double2(double2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double3 to double3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double3 __attribute__((const, overloadable))convert_double3(double3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double4 to double4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double4 __attribute__((const, overloadable))convert_double4(double4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long2 to double2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double2 __attribute__((const, overloadable))convert_double2(long2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long3 to double3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double3 __attribute__((const, overloadable))convert_double3(long3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long4 to double4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double4 __attribute__((const, overloadable))convert_double4(long4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong2 to double2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double2 __attribute__((const, overloadable))convert_double2(ulong2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong3 to double3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double3 __attribute__((const, overloadable))convert_double3(ulong3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong4 to double4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double4 __attribute__((const, overloadable))convert_double4(ulong4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double2 to long2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long2 __attribute__((const, overloadable))convert_long2(double2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double3 to long3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long3 __attribute__((const, overloadable))convert_long3(double3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double4 to long4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long4 __attribute__((const, overloadable))convert_long4(double4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long2 to long2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long2 __attribute__((const, overloadable))convert_long2(long2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long3 to long3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long3 __attribute__((const, overloadable))convert_long3(long3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long4 to long4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long4 __attribute__((const, overloadable))convert_long4(long4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong2 to long2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long2 __attribute__((const, overloadable))convert_long2(ulong2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong3 to long3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long3 __attribute__((const, overloadable))convert_long3(ulong3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong4 to long4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long4 __attribute__((const, overloadable))convert_long4(ulong4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double2 to ulong2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong2 __attribute__((const, overloadable))convert_ulong2(double2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double3 to ulong3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong3 __attribute__((const, overloadable))convert_ulong3(double3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double4 to ulong4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong4 __attribute__((const, overloadable))convert_ulong4(double4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long2 to ulong2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong2 __attribute__((const, overloadable))convert_ulong2(long2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long3 to ulong3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong3 __attribute__((const, overloadable))convert_ulong3(long3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long4 to ulong4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong4 __attribute__((const, overloadable))convert_ulong4(long4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong2 to ulong2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong2 __attribute__((const, overloadable))convert_ulong2(ulong2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong3 to ulong3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong3 __attribute__((const, overloadable))convert_ulong3(ulong3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong4 to ulong4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong4 __attribute__((const, overloadable))convert_ulong4(ulong4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double2 to float2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))convert_float2(double2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double3 to float3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))convert_float3(double3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double4 to float4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))convert_float4(double4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long2 to float2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))convert_float2(long2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long3 to float3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))convert_float3(long3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long4 to float4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))convert_float4(long4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong2 to float2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))convert_float2(ulong2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong3 to float3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))convert_float3(ulong3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong4 to float4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))convert_float4(ulong4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double2 to char2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern char2 __attribute__((const, overloadable))convert_char2(double2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double3 to char3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern char3 __attribute__((const, overloadable))convert_char3(double3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double4 to char4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern char4 __attribute__((const, overloadable))convert_char4(double4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long2 to char2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern char2 __attribute__((const, overloadable))convert_char2(long2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long3 to char3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern char3 __attribute__((const, overloadable))convert_char3(long3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long4 to char4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern char4 __attribute__((const, overloadable))convert_char4(long4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong2 to char2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern char2 __attribute__((const, overloadable))convert_char2(ulong2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong3 to char3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern char3 __attribute__((const, overloadable))convert_char3(ulong3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong4 to char4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern char4 __attribute__((const, overloadable))convert_char4(ulong4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double2 to uchar2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uchar2 __attribute__((const, overloadable))convert_uchar2(double2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double3 to uchar3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uchar3 __attribute__((const, overloadable))convert_uchar3(double3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double4 to uchar4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uchar4 __attribute__((const, overloadable))convert_uchar4(double4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long2 to uchar2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uchar2 __attribute__((const, overloadable))convert_uchar2(long2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long3 to uchar3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uchar3 __attribute__((const, overloadable))convert_uchar3(long3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long4 to uchar4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uchar4 __attribute__((const, overloadable))convert_uchar4(long4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong2 to uchar2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uchar2 __attribute__((const, overloadable))convert_uchar2(ulong2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong3 to uchar3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uchar3 __attribute__((const, overloadable))convert_uchar3(ulong3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong4 to uchar4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uchar4 __attribute__((const, overloadable))convert_uchar4(ulong4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double2 to short2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern short2 __attribute__((const, overloadable))convert_short2(double2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double3 to short3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern short3 __attribute__((const, overloadable))convert_short3(double3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double4 to short4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern short4 __attribute__((const, overloadable))convert_short4(double4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long2 to short2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern short2 __attribute__((const, overloadable))convert_short2(long2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long3 to short3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern short3 __attribute__((const, overloadable))convert_short3(long3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long4 to short4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern short4 __attribute__((const, overloadable))convert_short4(long4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong2 to short2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern short2 __attribute__((const, overloadable))convert_short2(ulong2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong3 to short3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern short3 __attribute__((const, overloadable))convert_short3(ulong3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong4 to short4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern short4 __attribute__((const, overloadable))convert_short4(ulong4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double2 to ushort2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ushort2 __attribute__((const, overloadable))convert_ushort2(double2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double3 to ushort3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ushort3 __attribute__((const, overloadable))convert_ushort3(double3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double4 to ushort4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ushort4 __attribute__((const, overloadable))convert_ushort4(double4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long2 to ushort2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ushort2 __attribute__((const, overloadable))convert_ushort2(long2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long3 to ushort3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ushort3 __attribute__((const, overloadable))convert_ushort3(long3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long4 to ushort4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ushort4 __attribute__((const, overloadable))convert_ushort4(long4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong2 to ushort2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ushort2 __attribute__((const, overloadable))convert_ushort2(ulong2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong3 to ushort3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ushort3 __attribute__((const, overloadable))convert_ushort3(ulong3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong4 to ushort4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ushort4 __attribute__((const, overloadable))convert_ushort4(ulong4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double2 to int2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern int2 __attribute__((const, overloadable))convert_int2(double2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double3 to int3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern int3 __attribute__((const, overloadable))convert_int3(double3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double4 to int4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern int4 __attribute__((const, overloadable))convert_int4(double4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long2 to int2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern int2 __attribute__((const, overloadable))convert_int2(long2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long3 to int3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern int3 __attribute__((const, overloadable))convert_int3(long3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long4 to int4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern int4 __attribute__((const, overloadable))convert_int4(long4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong2 to int2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern int2 __attribute__((const, overloadable))convert_int2(ulong2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong3 to int3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern int3 __attribute__((const, overloadable))convert_int3(ulong3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong4 to int4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern int4 __attribute__((const, overloadable))convert_int4(ulong4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double2 to uint2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uint2 __attribute__((const, overloadable))convert_uint2(double2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double3 to uint3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uint3 __attribute__((const, overloadable))convert_uint3(double3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from double4 to uint4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uint4 __attribute__((const, overloadable))convert_uint4(double4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long2 to uint2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uint2 __attribute__((const, overloadable))convert_uint2(long2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long3 to uint3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uint3 __attribute__((const, overloadable))convert_uint3(long3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from long4 to uint4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uint4 __attribute__((const, overloadable))convert_uint4(long4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong2 to uint2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uint2 __attribute__((const, overloadable))convert_uint2(ulong2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong3 to uint3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uint3 __attribute__((const, overloadable))convert_uint3(ulong3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ulong4 to uint4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern uint4 __attribute__((const, overloadable))convert_uint4(ulong4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from float2 to double2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double2 __attribute__((const, overloadable))convert_double2(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from float3 to double3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double3 __attribute__((const, overloadable))convert_double3(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from float4 to double4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double4 __attribute__((const, overloadable))convert_double4(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from char2 to double2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double2 __attribute__((const, overloadable))convert_double2(char2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from char3 to double3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double3 __attribute__((const, overloadable))convert_double3(char3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from char4 to double4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double4 __attribute__((const, overloadable))convert_double4(char4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uchar2 to double2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double2 __attribute__((const, overloadable))convert_double2(uchar2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uchar3 to double3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double3 __attribute__((const, overloadable))convert_double3(uchar3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uchar4 to double4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double4 __attribute__((const, overloadable))convert_double4(uchar4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from short2 to double2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double2 __attribute__((const, overloadable))convert_double2(short2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from short3 to double3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double3 __attribute__((const, overloadable))convert_double3(short3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from short4 to double4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double4 __attribute__((const, overloadable))convert_double4(short4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ushort2 to double2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double2 __attribute__((const, overloadable))convert_double2(ushort2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ushort3 to double3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double3 __attribute__((const, overloadable))convert_double3(ushort3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ushort4 to double4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double4 __attribute__((const, overloadable))convert_double4(ushort4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from int2 to double2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double2 __attribute__((const, overloadable))convert_double2(int2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from int3 to double3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double3 __attribute__((const, overloadable))convert_double3(int3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from int4 to double4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double4 __attribute__((const, overloadable))convert_double4(int4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uint2 to double2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double2 __attribute__((const, overloadable))convert_double2(uint2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uint3 to double3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double3 __attribute__((const, overloadable))convert_double3(uint3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uint4 to double4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern double4 __attribute__((const, overloadable))convert_double4(uint4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from float2 to long2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long2 __attribute__((const, overloadable))convert_long2(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from float3 to long3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long3 __attribute__((const, overloadable))convert_long3(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from float4 to long4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long4 __attribute__((const, overloadable))convert_long4(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from char2 to long2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long2 __attribute__((const, overloadable))convert_long2(char2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from char3 to long3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long3 __attribute__((const, overloadable))convert_long3(char3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from char4 to long4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long4 __attribute__((const, overloadable))convert_long4(char4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uchar2 to long2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long2 __attribute__((const, overloadable))convert_long2(uchar2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uchar3 to long3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long3 __attribute__((const, overloadable))convert_long3(uchar3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uchar4 to long4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long4 __attribute__((const, overloadable))convert_long4(uchar4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from short2 to long2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long2 __attribute__((const, overloadable))convert_long2(short2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from short3 to long3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long3 __attribute__((const, overloadable))convert_long3(short3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from short4 to long4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long4 __attribute__((const, overloadable))convert_long4(short4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ushort2 to long2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long2 __attribute__((const, overloadable))convert_long2(ushort2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ushort3 to long3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long3 __attribute__((const, overloadable))convert_long3(ushort3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ushort4 to long4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long4 __attribute__((const, overloadable))convert_long4(ushort4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from int2 to long2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long2 __attribute__((const, overloadable))convert_long2(int2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from int3 to long3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long3 __attribute__((const, overloadable))convert_long3(int3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from int4 to long4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long4 __attribute__((const, overloadable))convert_long4(int4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uint2 to long2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long2 __attribute__((const, overloadable))convert_long2(uint2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uint3 to long3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long3 __attribute__((const, overloadable))convert_long3(uint3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uint4 to long4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern long4 __attribute__((const, overloadable))convert_long4(uint4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from float2 to ulong2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong2 __attribute__((const, overloadable))convert_ulong2(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from float3 to ulong3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong3 __attribute__((const, overloadable))convert_ulong3(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from float4 to ulong4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong4 __attribute__((const, overloadable))convert_ulong4(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from char2 to ulong2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong2 __attribute__((const, overloadable))convert_ulong2(char2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from char3 to ulong3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong3 __attribute__((const, overloadable))convert_ulong3(char3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from char4 to ulong4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong4 __attribute__((const, overloadable))convert_ulong4(char4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uchar2 to ulong2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong2 __attribute__((const, overloadable))convert_ulong2(uchar2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uchar3 to ulong3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong3 __attribute__((const, overloadable))convert_ulong3(uchar3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uchar4 to ulong4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong4 __attribute__((const, overloadable))convert_ulong4(uchar4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from short2 to ulong2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong2 __attribute__((const, overloadable))convert_ulong2(short2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from short3 to ulong3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong3 __attribute__((const, overloadable))convert_ulong3(short3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from short4 to ulong4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong4 __attribute__((const, overloadable))convert_ulong4(short4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ushort2 to ulong2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong2 __attribute__((const, overloadable))convert_ulong2(ushort2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ushort3 to ulong3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong3 __attribute__((const, overloadable))convert_ulong3(ushort3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from ushort4 to ulong4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong4 __attribute__((const, overloadable))convert_ulong4(ushort4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from int2 to ulong2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong2 __attribute__((const, overloadable))convert_ulong2(int2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from int3 to ulong3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong3 __attribute__((const, overloadable))convert_ulong3(int3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from int4 to ulong4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong4 __attribute__((const, overloadable))convert_ulong4(int4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uint2 to ulong2.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong2 __attribute__((const, overloadable))convert_ulong2(uint2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uint3 to ulong3.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong3 __attribute__((const, overloadable))convert_ulong3(uint3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Component wise conversion from uint4 to ulong4.
*
* For the convert_* functions, conversions of floating point values to integer will truncate.
* Conversions of numbers too large to fit the destination type yield undefined results.
* For example, converting a float that contains 1.0e18 to a short is undefined.
*
* Supported by API versions 21 and newer.
*/
extern ulong4 __attribute__((const, overloadable))convert_ulong4(uint4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Copies the sign from y to x.
*
* The value returned is either x or -x.
*
* For example, copysign(4.0f, -2.7f) returns -4.0f and copysign(-4.0f, 2.7f) returns 4.0f.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))copysign(float x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Copies the sign from y to x.
*
* The value returned is either x or -x.
*
* For example, copysign(4.0f, -2.7f) returns -4.0f and copysign(-4.0f, 2.7f) returns 4.0f.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))copysign(float2 x, float2 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Copies the sign from y to x.
*
* The value returned is either x or -x.
*
* For example, copysign(4.0f, -2.7f) returns -4.0f and copysign(-4.0f, 2.7f) returns 4.0f.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))copysign(float3 x, float3 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Copies the sign from y to x.
*
* The value returned is either x or -x.
*
* For example, copysign(4.0f, -2.7f) returns -4.0f and copysign(-4.0f, 2.7f) returns 4.0f.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))copysign(float4 x, float4 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the cosine of an angle measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))cos(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the cosine of an angle measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))cos(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the cosine of an angle measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))cos(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the cosine of an angle measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))cos(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hypebolic cosine of x, where x is measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))cosh(float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hypebolic cosine of x, where x is measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))cosh(float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hypebolic cosine of x, where x is measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))cosh(float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hypebolic cosine of x, where x is measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))cosh(float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the cosine of (x * pi), where (x * pi) is measured in radians.
*
* To get the cosine of a value measured in degrees, call cospi(a / 180.f).
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))cospi(float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the cosine of (x * pi), where (x * pi) is measured in radians.
*
* To get the cosine of a value measured in degrees, call cospi(a / 180.f).
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))cospi(float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the cosine of (x * pi), where (x * pi) is measured in radians.
*
* To get the cosine of a value measured in degrees, call cospi(a / 180.f).
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))cospi(float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the cosine of (x * pi), where (x * pi) is measured in radians.
*
* To get the cosine of a value measured in degrees, call cospi(a / 180.f).
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))cospi(float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Computes the cross product of two vectors.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))cross(float3 lhs, float3 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Computes the cross product of two vectors.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))cross(float4 lhs, float4 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Converts from radians to degrees.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))degrees(float value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Converts from radians to degrees.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))degrees(float2 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Converts from radians to degrees.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))degrees(float3 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Converts from radians to degrees.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))degrees(float4 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Compute the distance between two points.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))distance(float lhs, float rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Compute the distance between two points.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))distance(float2 lhs, float2 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Compute the distance between two points.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))distance(float3 lhs, float3 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Compute the distance between two points.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))distance(float4 lhs, float4 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Computes the dot product of two vectors.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))dot(float lhs, float rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Computes the dot product of two vectors.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))dot(float2 lhs, float2 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Computes the dot product of two vectors.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))dot(float3 lhs, float3 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Computes the dot product of two vectors.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))dot(float4 lhs, float4 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the error function.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))erf(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the error function.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))erf(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the error function.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))erf(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the error function.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))erf(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the complementary error function.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))erfc(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the complementary error function.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))erfc(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the complementary error function.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))erfc(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the complementary error function.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))erfc(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns e raised to x, i.e. e ^ x.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))exp(float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns e raised to x, i.e. e ^ x.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))exp(float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns e raised to x, i.e. e ^ x.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))exp(float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns e raised to x, i.e. e ^ x.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))exp(float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 10 raised to x, i.e. 10.f ^ x.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))exp10(float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 10 raised to x, i.e. 10.f ^ x.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))exp10(float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 10 raised to x, i.e. 10.f ^ x.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))exp10(float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 10 raised to x, i.e. 10.f ^ x.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))exp10(float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 2 raised to x, i.e. 2.f ^ x.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))exp2(float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 2 raised to x, i.e. 2.f ^ x.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))exp2(float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 2 raised to x, i.e. 2.f ^ x.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))exp2(float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 2 raised to x, i.e. 2.f ^ x.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))exp2(float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns e raised to x minus 1, i.e. (e ^ x) - 1.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))expm1(float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns e raised to x minus 1, i.e. (e ^ x) - 1.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))expm1(float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns e raised to x minus 1, i.e. (e ^ x) - 1.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))expm1(float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns e raised to x minus 1, i.e. (e ^ x) - 1.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))expm1(float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the float x.
*
* For integers, use abs().
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))fabs(float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the float x.
*
* For integers, use abs().
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))fabs(float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the float x.
*
* For integers, use abs().
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))fabs(float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the absolute value of the float x.
*
* For integers, use abs().
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))fabs(float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Computes the approximate distance between two points.
*
* The precision is what would be expected from doing the computation using 16 bit floating point values.
*
* Supported by API versions 17 and newer.
*/
extern float __attribute__((const, overloadable))fast_distance(float lhs, float rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Computes the approximate distance between two points.
*
* The precision is what would be expected from doing the computation using 16 bit floating point values.
*
* Supported by API versions 17 and newer.
*/
extern float __attribute__((const, overloadable))fast_distance(float2 lhs, float2 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Computes the approximate distance between two points.
*
* The precision is what would be expected from doing the computation using 16 bit floating point values.
*
* Supported by API versions 17 and newer.
*/
extern float __attribute__((const, overloadable))fast_distance(float3 lhs, float3 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Computes the approximate distance between two points.
*
* The precision is what would be expected from doing the computation using 16 bit floating point values.
*
* Supported by API versions 17 and newer.
*/
extern float __attribute__((const, overloadable))fast_distance(float4 lhs, float4 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Computes the approximate length of a vector.
*
* The precision is what would be expected from doing the computation using 16 bit floating point values.
*
* Supported by API versions 17 and newer.
*/
extern float __attribute__((const, overloadable))fast_length(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Computes the approximate length of a vector.
*
* The precision is what would be expected from doing the computation using 16 bit floating point values.
*
* Supported by API versions 17 and newer.
*/
extern float __attribute__((const, overloadable))fast_length(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Computes the approximate length of a vector.
*
* The precision is what would be expected from doing the computation using 16 bit floating point values.
*
* Supported by API versions 17 and newer.
*/
extern float __attribute__((const, overloadable))fast_length(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Computes the approximate length of a vector.
*
* The precision is what would be expected from doing the computation using 16 bit floating point values.
*
* Supported by API versions 17 and newer.
*/
extern float __attribute__((const, overloadable))fast_length(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Approximately normalizes a vector.
*
* For vectors of size 1, returns -1.f for negative values, 0.f for null values, and 1.f for positive values.
*
* The precision is what would be expected from doing the computation using 16 bit floating point values.
*
* Supported by API versions 17 and newer.
*/
extern float __attribute__((const, overloadable))fast_normalize(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Approximately normalizes a vector.
*
* For vectors of size 1, returns -1.f for negative values, 0.f for null values, and 1.f for positive values.
*
* The precision is what would be expected from doing the computation using 16 bit floating point values.
*
* Supported by API versions 17 and newer.
*/
extern float2 __attribute__((const, overloadable))fast_normalize(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Approximately normalizes a vector.
*
* For vectors of size 1, returns -1.f for negative values, 0.f for null values, and 1.f for positive values.
*
* The precision is what would be expected from doing the computation using 16 bit floating point values.
*
* Supported by API versions 17 and newer.
*/
extern float3 __attribute__((const, overloadable))fast_normalize(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Approximately normalizes a vector.
*
* For vectors of size 1, returns -1.f for negative values, 0.f for null values, and 1.f for positive values.
*
* The precision is what would be expected from doing the computation using 16 bit floating point values.
*
* Supported by API versions 17 and newer.
*/
extern float4 __attribute__((const, overloadable))fast_normalize(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the positive difference between two values.
*
* If a > b, returns (a - b) otherwise returns 0f.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))fdim(float a, float b);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the positive difference between two values.
*
* If a > b, returns (a - b) otherwise returns 0f.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))fdim(float2 a, float2 b);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the positive difference between two values.
*
* If a > b, returns (a - b) otherwise returns 0f.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))fdim(float3 a, float3 b);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the positive difference between two values.
*
* If a > b, returns (a - b) otherwise returns 0f.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))fdim(float4 a, float4 b);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the smallest integer not greater than a value.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))floor(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the smallest integer not greater than a value.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))floor(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the smallest integer not greater than a value.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))floor(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the smallest integer not greater than a value.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))floor(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Multiply and add. Returns (a * b) + c.
*
* This function is identical to mad().
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))fma(float a, float b, float c);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Multiply and add. Returns (a * b) + c.
*
* This function is identical to mad().
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))fma(float2 a, float2 b, float2 c);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Multiply and add. Returns (a * b) + c.
*
* This function is identical to mad().
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))fma(float3 a, float3 b, float3 c);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Multiply and add. Returns (a * b) + c.
*
* This function is identical to mad().
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))fma(float4 a, float4 b, float4 c);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the maximum of x and y, i.e. (x < y ? y : x).
*
* The max() function returns identical results but can be applied to more data types.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))fmax(float x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the maximum of x and y, i.e. (x < y ? y : x).
*
* The max() function returns identical results but can be applied to more data types.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))fmax(float2 x, float2 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the maximum of x and y, i.e. (x < y ? y : x).
*
* The max() function returns identical results but can be applied to more data types.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))fmax(float3 x, float3 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the maximum of x and y, i.e. (x < y ? y : x).
*
* The max() function returns identical results but can be applied to more data types.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))fmax(float4 x, float4 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the maximum of x and y, i.e. (x < y ? y : x).
*
* Unlike the other variants of fmax() and max(), this function compare each element of x to the scalar y.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))fmax(float2 x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the maximum of x and y, i.e. (x < y ? y : x).
*
* Unlike the other variants of fmax() and max(), this function compare each element of x to the scalar y.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))fmax(float3 x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the maximum of x and y, i.e. (x < y ? y : x).
*
* Unlike the other variants of fmax() and max(), this function compare each element of x to the scalar y.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))fmax(float4 x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the minimum of x and y, i.e. (x > y ? y : x).
*
* The min() function returns identical results but can be applied to more data types.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))fmin(float x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the minimum of x and y, i.e. (x > y ? y : x).
*
* The min() function returns identical results but can be applied to more data types.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))fmin(float2 x, float2 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the minimum of x and y, i.e. (x > y ? y : x).
*
* The min() function returns identical results but can be applied to more data types.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))fmin(float3 x, float3 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the minimum of x and y, i.e. (x > y ? y : x).
*
* The min() function returns identical results but can be applied to more data types.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))fmin(float4 x, float4 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the minimum of x and y, i.e. (x > y ? y : x)
*
* Unlike the other variants of fmin() and min(), this function compare each element of x to the scalar y.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))fmin(float2 x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the minimum of x and y, i.e. (x > y ? y : x)
*
* Unlike the other variants of fmin() and min(), this function compare each element of x to the scalar y.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))fmin(float3 x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the minimum of x and y, i.e. (x > y ? y : x)
*
* Unlike the other variants of fmin() and min(), this function compare each element of x to the scalar y.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))fmin(float4 x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the remainder of x / y, where the quotient is rounded towards zero.
*
* The function remainder() is similar but rounds toward the closest interger.
* For example, fmod(-3.8f, 2.f) returns -1.8f (-3.8f - -1.f * 2.f)
* while remainder(-3.8f, 2.f) returns 0.2f (-3.8f - -2.f * 2.f).
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))fmod(float x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the remainder of x / y, where the quotient is rounded towards zero.
*
* The function remainder() is similar but rounds toward the closest interger.
* For example, fmod(-3.8f, 2.f) returns -1.8f (-3.8f - -1.f * 2.f)
* while remainder(-3.8f, 2.f) returns 0.2f (-3.8f - -2.f * 2.f).
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))fmod(float2 x, float2 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the remainder of x / y, where the quotient is rounded towards zero.
*
* The function remainder() is similar but rounds toward the closest interger.
* For example, fmod(-3.8f, 2.f) returns -1.8f (-3.8f - -1.f * 2.f)
* while remainder(-3.8f, 2.f) returns 0.2f (-3.8f - -2.f * 2.f).
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))fmod(float3 x, float3 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the remainder of x / y, where the quotient is rounded towards zero.
*
* The function remainder() is similar but rounds toward the closest interger.
* For example, fmod(-3.8f, 2.f) returns -1.8f (-3.8f - -1.f * 2.f)
* while remainder(-3.8f, 2.f) returns 0.2f (-3.8f - -2.f * 2.f).
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))fmod(float4 x, float4 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the positive fractional part of v, i.e. v - floor(v).
*
* For example, fract(1.3f, &val) returns 0.3f and sets val to 1.f.
* fract(-1.3f, &val) returns 0.7f and sets val to -2.f.
*
* @param v Input value.
* @param floor If floor is not null, each element of floor will be set to the floor of the corresponding element of v.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((overloadable))fract(float v, float* floor);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the positive fractional part of v, i.e. v - floor(v).
*
* For example, fract(1.3f, &val) returns 0.3f and sets val to 1.f.
* fract(-1.3f, &val) returns 0.7f and sets val to -2.f.
*
* @param v Input value.
* @param floor If floor is not null, each element of floor will be set to the floor of the corresponding element of v.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((overloadable))fract(float2 v, float2* floor);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the positive fractional part of v, i.e. v - floor(v).
*
* For example, fract(1.3f, &val) returns 0.3f and sets val to 1.f.
* fract(-1.3f, &val) returns 0.7f and sets val to -2.f.
*
* @param v Input value.
* @param floor If floor is not null, each element of floor will be set to the floor of the corresponding element of v.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((overloadable))fract(float3 v, float3* floor);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the positive fractional part of v, i.e. v - floor(v).
*
* For example, fract(1.3f, &val) returns 0.3f and sets val to 1.f.
* fract(-1.3f, &val) returns 0.7f and sets val to -2.f.
*
* @param v Input value.
* @param floor If floor is not null, each element of floor will be set to the floor of the corresponding element of v.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((overloadable))fract(float4 v, float4* floor);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the positive fractional part of v, i.e. v - floor(v).
*
* For example, fract(1.3f, &val) returns 0.3f and sets val to 1.f.
* fract(-1.3f, &val) returns 0.7f and sets val to -2.f.
*
* Supported by API versions 9 and newer.
*/
static float __attribute__((const, overloadable))fract(float v) {
float unused;
return fract(v, &unused);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the positive fractional part of v, i.e. v - floor(v).
*
* For example, fract(1.3f, &val) returns 0.3f and sets val to 1.f.
* fract(-1.3f, &val) returns 0.7f and sets val to -2.f.
*
* Supported by API versions 9 and newer.
*/
static float2 __attribute__((const, overloadable))fract(float2 v) {
float2 unused;
return fract(v, &unused);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the positive fractional part of v, i.e. v - floor(v).
*
* For example, fract(1.3f, &val) returns 0.3f and sets val to 1.f.
* fract(-1.3f, &val) returns 0.7f and sets val to -2.f.
*
* Supported by API versions 9 and newer.
*/
static float3 __attribute__((const, overloadable))fract(float3 v) {
float3 unused;
return fract(v, &unused);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the positive fractional part of v, i.e. v - floor(v).
*
* For example, fract(1.3f, &val) returns 0.3f and sets val to 1.f.
* fract(-1.3f, &val) returns 0.7f and sets val to -2.f.
*
* Supported by API versions 9 and newer.
*/
static float4 __attribute__((const, overloadable))fract(float4 v) {
float4 unused;
return fract(v, &unused);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the binary mantissa and exponent of v, e.g. v == mantissa * 2 ^ exponent.
*
* The mantissa is always between 0.5 (inclusive) and 1.0 (exclusive).
* See ldexp() for the reverse operation.
*
* @param v Supports float, float2, float3, float4.
* @param expo If expo is not null, each element of expo will be set to the exponent of the corresponding element of v.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((overloadable))frexp(float v, int* expo);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the binary mantissa and exponent of v, e.g. v == mantissa * 2 ^ exponent.
*
* The mantissa is always between 0.5 (inclusive) and 1.0 (exclusive).
* See ldexp() for the reverse operation.
*
* @param v Supports float, float2, float3, float4.
* @param expo If expo is not null, each element of expo will be set to the exponent of the corresponding element of v.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((overloadable))frexp(float2 v, int2* expo);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the binary mantissa and exponent of v, e.g. v == mantissa * 2 ^ exponent.
*
* The mantissa is always between 0.5 (inclusive) and 1.0 (exclusive).
* See ldexp() for the reverse operation.
*
* @param v Supports float, float2, float3, float4.
* @param expo If expo is not null, each element of expo will be set to the exponent of the corresponding element of v.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((overloadable))frexp(float3 v, int3* expo);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the binary mantissa and exponent of v, e.g. v == mantissa * 2 ^ exponent.
*
* The mantissa is always between 0.5 (inclusive) and 1.0 (exclusive).
* See ldexp() for the reverse operation.
*
* @param v Supports float, float2, float3, float4.
* @param expo If expo is not null, each element of expo will be set to the exponent of the corresponding element of v.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((overloadable))frexp(float4 v, int4* expo);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Returns the approximate reciprocal of a value.
*
* The precision is that of a 16 bit floating point value.
*
* Supported by API versions 17 and newer.
*/
extern float __attribute__((const, overloadable))half_recip(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Returns the approximate reciprocal of a value.
*
* The precision is that of a 16 bit floating point value.
*
* Supported by API versions 17 and newer.
*/
extern float2 __attribute__((const, overloadable))half_recip(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Returns the approximate reciprocal of a value.
*
* The precision is that of a 16 bit floating point value.
*
* Supported by API versions 17 and newer.
*/
extern float3 __attribute__((const, overloadable))half_recip(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Returns the approximate reciprocal of a value.
*
* The precision is that of a 16 bit floating point value.
*
* Supported by API versions 17 and newer.
*/
extern float4 __attribute__((const, overloadable))half_recip(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Returns the approximate value of (1.f / sqrt(value)).
*
* The precision is that of a 16 bit floating point value.
*
* Supported by API versions 17 and newer.
*/
extern float __attribute__((const, overloadable))half_rsqrt(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Returns the approximate value of (1.f / sqrt(value)).
*
* The precision is that of a 16 bit floating point value.
*
* Supported by API versions 17 and newer.
*/
extern float2 __attribute__((const, overloadable))half_rsqrt(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Returns the approximate value of (1.f / sqrt(value)).
*
* The precision is that of a 16 bit floating point value.
*
* Supported by API versions 17 and newer.
*/
extern float3 __attribute__((const, overloadable))half_rsqrt(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Returns the approximate value of (1.f / sqrt(value)).
*
* The precision is that of a 16 bit floating point value.
*
* Supported by API versions 17 and newer.
*/
extern float4 __attribute__((const, overloadable))half_rsqrt(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Returns the approximate square root of a value.
*
* The precision is that of a 16 bit floating point value.
*
* Supported by API versions 17 and newer.
*/
extern float __attribute__((const, overloadable))half_sqrt(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Returns the approximate square root of a value.
*
* The precision is that of a 16 bit floating point value.
*
* Supported by API versions 17 and newer.
*/
extern float2 __attribute__((const, overloadable))half_sqrt(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Returns the approximate square root of a value.
*
* The precision is that of a 16 bit floating point value.
*
* Supported by API versions 17 and newer.
*/
extern float3 __attribute__((const, overloadable))half_sqrt(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 17))
/**
* Returns the approximate square root of a value.
*
* The precision is that of a 16 bit floating point value.
*
* Supported by API versions 17 and newer.
*/
extern float4 __attribute__((const, overloadable))half_sqrt(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hypotenuse, i.e. sqrt(x * x + y * y).
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))hypot(float x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hypotenuse, i.e. sqrt(x * x + y * y).
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))hypot(float2 x, float2 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hypotenuse, i.e. sqrt(x * x + y * y).
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))hypot(float3 x, float3 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hypotenuse, i.e. sqrt(x * x + y * y).
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))hypot(float4 x, float4 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base two exponent of a value, where the mantissa is between 1.f (inclusive) and 2.f (exclusive).
*
* For example, ilogb(8.5f) returns 3. Because of the difference in mantissa, this number is one less than
* is returned by frexp().
*
* logb() is similar but returns a float.
*
* Supported by API versions 9 and newer.
*/
extern int __attribute__((const, overloadable))ilogb(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base two exponent of a value, where the mantissa is between 1.f (inclusive) and 2.f (exclusive).
*
* For example, ilogb(8.5f) returns 3. Because of the difference in mantissa, this number is one less than
* is returned by frexp().
*
* logb() is similar but returns a float.
*
* Supported by API versions 9 and newer.
*/
extern int2 __attribute__((const, overloadable))ilogb(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base two exponent of a value, where the mantissa is between 1.f (inclusive) and 2.f (exclusive).
*
* For example, ilogb(8.5f) returns 3. Because of the difference in mantissa, this number is one less than
* is returned by frexp().
*
* logb() is similar but returns a float.
*
* Supported by API versions 9 and newer.
*/
extern int3 __attribute__((const, overloadable))ilogb(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base two exponent of a value, where the mantissa is between 1.f (inclusive) and 2.f (exclusive).
*
* For example, ilogb(8.5f) returns 3. Because of the difference in mantissa, this number is one less than
* is returned by frexp().
*
* logb() is similar but returns a float.
*
* Supported by API versions 9 and newer.
*/
extern int4 __attribute__((const, overloadable))ilogb(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the floating point created from the mantissa and exponent, i.e. (mantissa * 2 ^ exponent).
*
* See frexp() for the reverse operation.
*
* @param mantissa Supports float, float2, float3, and float4.
* @param exponent Supports single component or matching vector.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))ldexp(float mantissa, int exponent);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the floating point created from the mantissa and exponent, i.e. (mantissa * 2 ^ exponent).
*
* See frexp() for the reverse operation.
*
* @param mantissa Supports float, float2, float3, and float4.
* @param exponent Supports single component or matching vector.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))ldexp(float2 mantissa, int2 exponent);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the floating point created from the mantissa and exponent, i.e. (mantissa * 2 ^ exponent).
*
* See frexp() for the reverse operation.
*
* @param mantissa Supports float, float2, float3, and float4.
* @param exponent Supports single component or matching vector.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))ldexp(float3 mantissa, int3 exponent);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the floating point created from the mantissa and exponent, i.e. (mantissa * 2 ^ exponent).
*
* See frexp() for the reverse operation.
*
* @param mantissa Supports float, float2, float3, and float4.
* @param exponent Supports single component or matching vector.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))ldexp(float4 mantissa, int4 exponent);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the floating point created from the mantissa and exponent, i.e. (mantissa * 2 ^ exponent).
* See frexp() for the reverse operation.
*
* @param mantissa Supports float, float2, float3, and float4.
* @param exponent Supports single component or matching vector.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))ldexp(float2 mantissa, int exponent);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the floating point created from the mantissa and exponent, i.e. (mantissa * 2 ^ exponent).
* See frexp() for the reverse operation.
*
* @param mantissa Supports float, float2, float3, and float4.
* @param exponent Supports single component or matching vector.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))ldexp(float3 mantissa, int exponent);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the floating point created from the mantissa and exponent, i.e. (mantissa * 2 ^ exponent).
* See frexp() for the reverse operation.
*
* @param mantissa Supports float, float2, float3, and float4.
* @param exponent Supports single component or matching vector.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))ldexp(float4 mantissa, int exponent);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Computes the length of a vector.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))length(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Computes the length of a vector.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))length(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Computes the length of a vector.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))length(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Computes the length of a vector.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))length(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm of the absolute value of the gamma function, i.e. log(fabs(gamma(value))).
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))lgamma(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm of the absolute value of the gamma function, i.e. log(fabs(gamma(value))).
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))lgamma(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm of the absolute value of the gamma function, i.e. log(fabs(gamma(value))).
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))lgamma(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm of the absolute value of the gamma function, i.e. log(fabs(gamma(value))).
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))lgamma(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm of the absolute value of the gamma function, i.e. log(fabs(gamma(x))).
*
* Can also return the sign of the gamma function.
*
* @param x Input value.
* @param sign If sign is not null, each element of sign will be set to -1.f if the gamma of the corresponding element of x is negative, otherwise to 1.f.
*
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((overloadable))lgamma(float x, int* sign);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm of the absolute value of the gamma function, i.e. log(fabs(gamma(x))).
*
* Can also return the sign of the gamma function.
*
* @param x Input value.
* @param sign If sign is not null, each element of sign will be set to -1.f if the gamma of the corresponding element of x is negative, otherwise to 1.f.
*
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((overloadable))lgamma(float2 x, int2* sign);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm of the absolute value of the gamma function, i.e. log(fabs(gamma(x))).
*
* Can also return the sign of the gamma function.
*
* @param x Input value.
* @param sign If sign is not null, each element of sign will be set to -1.f if the gamma of the corresponding element of x is negative, otherwise to 1.f.
*
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((overloadable))lgamma(float3 x, int3* sign);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm of the absolute value of the gamma function, i.e. log(fabs(gamma(x))).
*
* Can also return the sign of the gamma function.
*
* @param x Input value.
* @param sign If sign is not null, each element of sign will be set to -1.f if the gamma of the corresponding element of x is negative, otherwise to 1.f.
*
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((overloadable))lgamma(float4 x, int4* sign);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))log(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))log(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))log(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))log(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base 10 logarithm.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))log10(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base 10 logarithm.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))log10(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base 10 logarithm.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))log10(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base 10 logarithm.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))log10(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm of (v + 1.f).
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))log1p(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm of (v + 1.f).
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))log1p(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm of (v + 1.f).
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))log1p(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the natural logarithm of (v + 1.f).
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))log1p(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base 2 logarithm.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))log2(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base 2 logarithm.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))log2(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base 2 logarithm.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))log2(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base 2 logarithm.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))log2(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base two exponent of a value, where the mantissa is between 1.f (inclusive) and 2.f (exclusive).
*
* For example, ilogb(8.5f) returns 3.f. Because of the difference in mantissa, this number is one less than
* is returned by frexp().
*
* ilogb() is similar but returns an integer.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))logb(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base two exponent of a value, where the mantissa is between 1.f (inclusive) and 2.f (exclusive).
*
* For example, ilogb(8.5f) returns 3.f. Because of the difference in mantissa, this number is one less than
* is returned by frexp().
*
* ilogb() is similar but returns an integer.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))logb(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base two exponent of a value, where the mantissa is between 1.f (inclusive) and 2.f (exclusive).
*
* For example, ilogb(8.5f) returns 3.f. Because of the difference in mantissa, this number is one less than
* is returned by frexp().
*
* ilogb() is similar but returns an integer.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))logb(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the base two exponent of a value, where the mantissa is between 1.f (inclusive) and 2.f (exclusive).
*
* For example, ilogb(8.5f) returns 3.f. Because of the difference in mantissa, this number is one less than
* is returned by frexp().
*
* ilogb() is similar but returns an integer.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))logb(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Multiply and add. Returns (a * b) + c.
*
* This function is identical to fma().
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))mad(float a, float b, float c);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Multiply and add. Returns (a * b) + c.
*
* This function is identical to fma().
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))mad(float2 a, float2 b, float2 c);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Multiply and add. Returns (a * b) + c.
*
* This function is identical to fma().
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))mad(float3 a, float3 b, float3 c);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Multiply and add. Returns (a * b) + c.
*
* This function is identical to fma().
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))mad(float4 a, float4 b, float4 c);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))max(float, float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))max(float2, float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))max(float3, float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))max(float4, float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static char __attribute__((const, overloadable))max(char v1, char v2) {
return (v1 > v2 ? v1 : v2);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uchar __attribute__((const, overloadable))max(uchar v1, uchar v2) {
return (v1 > v2 ? v1 : v2);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static short __attribute__((const, overloadable))max(short v1, short v2) {
return (v1 > v2 ? v1 : v2);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static ushort __attribute__((const, overloadable))max(ushort v1, ushort v2) {
return (v1 > v2 ? v1 : v2);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static int __attribute__((const, overloadable))max(int v1, int v2) {
return (v1 > v2 ? v1 : v2);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uint __attribute__((const, overloadable))max(uint v1, uint v2) {
return (v1 > v2 ? v1 : v2);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static char2 __attribute__((const, overloadable))max(char2 v1, char2 v2) {
char2 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uchar2 __attribute__((const, overloadable))max(uchar2 v1, uchar2 v2) {
uchar2 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static short2 __attribute__((const, overloadable))max(short2 v1, short2 v2) {
short2 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static ushort2 __attribute__((const, overloadable))max(ushort2 v1, ushort2 v2) {
ushort2 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static int2 __attribute__((const, overloadable))max(int2 v1, int2 v2) {
int2 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uint2 __attribute__((const, overloadable))max(uint2 v1, uint2 v2) {
uint2 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static char3 __attribute__((const, overloadable))max(char3 v1, char3 v2) {
char3 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
tmp.z = (v1.z > v2.z ? v1.z : v2.z);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uchar3 __attribute__((const, overloadable))max(uchar3 v1, uchar3 v2) {
uchar3 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
tmp.z = (v1.z > v2.z ? v1.z : v2.z);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static short3 __attribute__((const, overloadable))max(short3 v1, short3 v2) {
short3 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
tmp.z = (v1.z > v2.z ? v1.z : v2.z);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static ushort3 __attribute__((const, overloadable))max(ushort3 v1, ushort3 v2) {
ushort3 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
tmp.z = (v1.z > v2.z ? v1.z : v2.z);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static int3 __attribute__((const, overloadable))max(int3 v1, int3 v2) {
int3 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
tmp.z = (v1.z > v2.z ? v1.z : v2.z);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uint3 __attribute__((const, overloadable))max(uint3 v1, uint3 v2) {
uint3 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
tmp.z = (v1.z > v2.z ? v1.z : v2.z);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static char4 __attribute__((const, overloadable))max(char4 v1, char4 v2) {
char4 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
tmp.z = (v1.z > v2.z ? v1.z : v2.z);
tmp.w = (v1.w > v2.w ? v1.w : v2.w);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uchar4 __attribute__((const, overloadable))max(uchar4 v1, uchar4 v2) {
uchar4 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
tmp.z = (v1.z > v2.z ? v1.z : v2.z);
tmp.w = (v1.w > v2.w ? v1.w : v2.w);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static short4 __attribute__((const, overloadable))max(short4 v1, short4 v2) {
short4 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
tmp.z = (v1.z > v2.z ? v1.z : v2.z);
tmp.w = (v1.w > v2.w ? v1.w : v2.w);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static ushort4 __attribute__((const, overloadable))max(ushort4 v1, ushort4 v2) {
ushort4 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
tmp.z = (v1.z > v2.z ? v1.z : v2.z);
tmp.w = (v1.w > v2.w ? v1.w : v2.w);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static int4 __attribute__((const, overloadable))max(int4 v1, int4 v2) {
int4 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
tmp.z = (v1.z > v2.z ? v1.z : v2.z);
tmp.w = (v1.w > v2.w ? v1.w : v2.w);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the maximum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uint4 __attribute__((const, overloadable))max(uint4 v1, uint4 v2) {
uint4 tmp;
tmp.x = (v1.x > v2.x ? v1.x : v2.x);
tmp.y = (v1.y > v2.y ? v1.y : v2.y);
tmp.z = (v1.z > v2.z ? v1.z : v2.z);
tmp.w = (v1.w > v2.w ? v1.w : v2.w);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern char __attribute__((const, overloadable))max(char v1, char v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern char2 __attribute__((const, overloadable))max(char2 v1, char2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern char3 __attribute__((const, overloadable))max(char3 v1, char3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern char4 __attribute__((const, overloadable))max(char4 v1, char4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uchar __attribute__((const, overloadable))max(uchar v1, uchar v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uchar2 __attribute__((const, overloadable))max(uchar2 v1, uchar2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uchar3 __attribute__((const, overloadable))max(uchar3 v1, uchar3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uchar4 __attribute__((const, overloadable))max(uchar4 v1, uchar4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern short __attribute__((const, overloadable))max(short v1, short v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern short2 __attribute__((const, overloadable))max(short2 v1, short2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern short3 __attribute__((const, overloadable))max(short3 v1, short3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern short4 __attribute__((const, overloadable))max(short4 v1, short4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ushort __attribute__((const, overloadable))max(ushort v1, ushort v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ushort2 __attribute__((const, overloadable))max(ushort2 v1, ushort2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ushort3 __attribute__((const, overloadable))max(ushort3 v1, ushort3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ushort4 __attribute__((const, overloadable))max(ushort4 v1, ushort4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern int __attribute__((const, overloadable))max(int v1, int v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern int2 __attribute__((const, overloadable))max(int2 v1, int2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern int3 __attribute__((const, overloadable))max(int3 v1, int3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern int4 __attribute__((const, overloadable))max(int4 v1, int4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uint __attribute__((const, overloadable))max(uint v1, uint v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uint2 __attribute__((const, overloadable))max(uint2 v1, uint2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uint3 __attribute__((const, overloadable))max(uint3 v1, uint3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uint4 __attribute__((const, overloadable))max(uint4 v1, uint4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern long __attribute__((const, overloadable))max(long v1, long v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern long2 __attribute__((const, overloadable))max(long2 v1, long2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern long3 __attribute__((const, overloadable))max(long3 v1, long3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern long4 __attribute__((const, overloadable))max(long4 v1, long4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ulong __attribute__((const, overloadable))max(ulong v1, ulong v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ulong2 __attribute__((const, overloadable))max(ulong2 v1, ulong2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ulong3 __attribute__((const, overloadable))max(ulong3 v1, ulong3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the maximum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ulong4 __attribute__((const, overloadable))max(ulong4 v1, ulong4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))min(float, float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))min(float2, float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))min(float3, float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))min(float4, float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static char __attribute__((const, overloadable))min(char v1, char v2) {
return (v1 < v2 ? v1 : v2);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uchar __attribute__((const, overloadable))min(uchar v1, uchar v2) {
return (v1 < v2 ? v1 : v2);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static short __attribute__((const, overloadable))min(short v1, short v2) {
return (v1 < v2 ? v1 : v2);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static ushort __attribute__((const, overloadable))min(ushort v1, ushort v2) {
return (v1 < v2 ? v1 : v2);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static int __attribute__((const, overloadable))min(int v1, int v2) {
return (v1 < v2 ? v1 : v2);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uint __attribute__((const, overloadable))min(uint v1, uint v2) {
return (v1 < v2 ? v1 : v2);
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static char2 __attribute__((const, overloadable))min(char2 v1, char2 v2) {
char2 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uchar2 __attribute__((const, overloadable))min(uchar2 v1, uchar2 v2) {
uchar2 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static short2 __attribute__((const, overloadable))min(short2 v1, short2 v2) {
short2 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static ushort2 __attribute__((const, overloadable))min(ushort2 v1, ushort2 v2) {
ushort2 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static int2 __attribute__((const, overloadable))min(int2 v1, int2 v2) {
int2 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uint2 __attribute__((const, overloadable))min(uint2 v1, uint2 v2) {
uint2 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static char3 __attribute__((const, overloadable))min(char3 v1, char3 v2) {
char3 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
tmp.z = (v1.z < v2.z ? v1.z : v2.z);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uchar3 __attribute__((const, overloadable))min(uchar3 v1, uchar3 v2) {
uchar3 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
tmp.z = (v1.z < v2.z ? v1.z : v2.z);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static short3 __attribute__((const, overloadable))min(short3 v1, short3 v2) {
short3 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
tmp.z = (v1.z < v2.z ? v1.z : v2.z);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static ushort3 __attribute__((const, overloadable))min(ushort3 v1, ushort3 v2) {
ushort3 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
tmp.z = (v1.z < v2.z ? v1.z : v2.z);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static int3 __attribute__((const, overloadable))min(int3 v1, int3 v2) {
int3 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
tmp.z = (v1.z < v2.z ? v1.z : v2.z);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uint3 __attribute__((const, overloadable))min(uint3 v1, uint3 v2) {
uint3 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
tmp.z = (v1.z < v2.z ? v1.z : v2.z);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static char4 __attribute__((const, overloadable))min(char4 v1, char4 v2) {
char4 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
tmp.z = (v1.z < v2.z ? v1.z : v2.z);
tmp.w = (v1.w < v2.w ? v1.w : v2.w);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uchar4 __attribute__((const, overloadable))min(uchar4 v1, uchar4 v2) {
uchar4 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
tmp.z = (v1.z < v2.z ? v1.z : v2.z);
tmp.w = (v1.w < v2.w ? v1.w : v2.w);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static short4 __attribute__((const, overloadable))min(short4 v1, short4 v2) {
short4 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
tmp.z = (v1.z < v2.z ? v1.z : v2.z);
tmp.w = (v1.w < v2.w ? v1.w : v2.w);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static ushort4 __attribute__((const, overloadable))min(ushort4 v1, ushort4 v2) {
ushort4 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
tmp.z = (v1.z < v2.z ? v1.z : v2.z);
tmp.w = (v1.w < v2.w ? v1.w : v2.w);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static int4 __attribute__((const, overloadable))min(int4 v1, int4 v2) {
int4 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
tmp.z = (v1.z < v2.z ? v1.z : v2.z);
tmp.w = (v1.w < v2.w ? v1.w : v2.w);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9) && (RS_VERSION <= 19))
/**
* Returns the minimum value from two arguments
*
* Suppored by API versions 9 - 19
*/
static uint4 __attribute__((const, overloadable))min(uint4 v1, uint4 v2) {
uint4 tmp;
tmp.x = (v1.x < v2.x ? v1.x : v2.x);
tmp.y = (v1.y < v2.y ? v1.y : v2.y);
tmp.z = (v1.z < v2.z ? v1.z : v2.z);
tmp.w = (v1.w < v2.w ? v1.w : v2.w);
return tmp;
}
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern char __attribute__((const, overloadable))min(char v1, char v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern char2 __attribute__((const, overloadable))min(char2 v1, char2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern char3 __attribute__((const, overloadable))min(char3 v1, char3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern char4 __attribute__((const, overloadable))min(char4 v1, char4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uchar __attribute__((const, overloadable))min(uchar v1, uchar v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uchar2 __attribute__((const, overloadable))min(uchar2 v1, uchar2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uchar3 __attribute__((const, overloadable))min(uchar3 v1, uchar3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uchar4 __attribute__((const, overloadable))min(uchar4 v1, uchar4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern short __attribute__((const, overloadable))min(short v1, short v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern short2 __attribute__((const, overloadable))min(short2 v1, short2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern short3 __attribute__((const, overloadable))min(short3 v1, short3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern short4 __attribute__((const, overloadable))min(short4 v1, short4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ushort __attribute__((const, overloadable))min(ushort v1, ushort v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ushort2 __attribute__((const, overloadable))min(ushort2 v1, ushort2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ushort3 __attribute__((const, overloadable))min(ushort3 v1, ushort3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ushort4 __attribute__((const, overloadable))min(ushort4 v1, ushort4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern int __attribute__((const, overloadable))min(int v1, int v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern int2 __attribute__((const, overloadable))min(int2 v1, int2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern int3 __attribute__((const, overloadable))min(int3 v1, int3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern int4 __attribute__((const, overloadable))min(int4 v1, int4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uint __attribute__((const, overloadable))min(uint v1, uint v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uint2 __attribute__((const, overloadable))min(uint2 v1, uint2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uint3 __attribute__((const, overloadable))min(uint3 v1, uint3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern uint4 __attribute__((const, overloadable))min(uint4 v1, uint4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern long __attribute__((const, overloadable))min(long v1, long v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern long2 __attribute__((const, overloadable))min(long2 v1, long2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern long3 __attribute__((const, overloadable))min(long3 v1, long3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern long4 __attribute__((const, overloadable))min(long4 v1, long4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ulong __attribute__((const, overloadable))min(ulong v1, ulong v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ulong2 __attribute__((const, overloadable))min(ulong2 v1, ulong2 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ulong3 __attribute__((const, overloadable))min(ulong3 v1, ulong3 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the minimum value from two arguments
*
* Supported by API versions 21 and newer.
*/
extern ulong4 __attribute__((const, overloadable))min(ulong4 v1, ulong4 v2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns start + ((stop - start) * amount).
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))mix(float start, float stop, float amount);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns start + ((stop - start) * amount).
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))mix(float2 start, float2 stop, float2 amount);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns start + ((stop - start) * amount).
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))mix(float3 start, float3 stop, float3 amount);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns start + ((stop - start) * amount).
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))mix(float4 start, float4 stop, float4 amount);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns start + ((stop - start) * amount).
*
* This can be useful for mixing two values. For example, to create a new color that is 40% color1 and 60% color2, use mix(color1, color2, 0.6f).
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))mix(float2 start, float2 stop, float amount);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns start + ((stop - start) * amount).
*
* This can be useful for mixing two values. For example, to create a new color that is 40% color1 and 60% color2, use mix(color1, color2, 0.6f).
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))mix(float3 start, float3 stop, float amount);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns start + ((stop - start) * amount).
*
* This can be useful for mixing two values. For example, to create a new color that is 40% color1 and 60% color2, use mix(color1, color2, 0.6f).
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))mix(float4 start, float4 stop, float amount);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the integral and fractional components of a number.
*
* Both components will have the same sign as x. For example, for an input of -3.72f, iret will be set to -3.f and .72f will be returned.
*
* @param x Source value
* @param iret iret[0] will be set to the integral portion of the number.
* @return The floating point portion of the value.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((overloadable))modf(float x, float* iret);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the integral and fractional components of a number.
*
* Both components will have the same sign as x. For example, for an input of -3.72f, iret will be set to -3.f and .72f will be returned.
*
* @param x Source value
* @param iret iret[0] will be set to the integral portion of the number.
* @return The floating point portion of the value.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((overloadable))modf(float2 x, float2* iret);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the integral and fractional components of a number.
*
* Both components will have the same sign as x. For example, for an input of -3.72f, iret will be set to -3.f and .72f will be returned.
*
* @param x Source value
* @param iret iret[0] will be set to the integral portion of the number.
* @return The floating point portion of the value.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((overloadable))modf(float3 x, float3* iret);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the integral and fractional components of a number.
*
* Both components will have the same sign as x. For example, for an input of -3.72f, iret will be set to -3.f and .72f will be returned.
*
* @param x Source value
* @param iret iret[0] will be set to the integral portion of the number.
* @return The floating point portion of the value.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((overloadable))modf(float4 x, float4* iret);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns a NaN value (Not a Number).
*
* The argument is embedded into the return value and can be used to distinguish various NaNs.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))nan(uint);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse cosine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_acos(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse cosine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_acos(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse cosine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_acos(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse cosine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_acos(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse hyperbolic cosine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_acosh(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse hyperbolic cosine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_acosh(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse hyperbolic cosine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_acosh(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse hyperbolic cosine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_acosh(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse cosine in radians, divided by pi.
*
* To get an inverse cosine measured in degrees, use acospi(a) * 180.f.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_acospi(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse cosine in radians, divided by pi.
*
* To get an inverse cosine measured in degrees, use acospi(a) * 180.f.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_acospi(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse cosine in radians, divided by pi.
*
* To get an inverse cosine measured in degrees, use acospi(a) * 180.f.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_acospi(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse cosine in radians, divided by pi.
*
* To get an inverse cosine measured in degrees, use acospi(a) * 180.f.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_acospi(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse sine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_asin(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse sine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_asin(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse sine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_asin(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse sine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_asin(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse hyperbolic sine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_asinh(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse hyperbolic sine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_asinh(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse hyperbolic sine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_asinh(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse hyperbolic sine, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_asinh(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse sine in radians, divided by pi.
*
* To get an inverse sine measured in degrees, use asinpi(a) * 180.f.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_asinpi(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse sine in radians, divided by pi.
*
* To get an inverse sine measured in degrees, use asinpi(a) * 180.f.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_asinpi(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse sine in radians, divided by pi.
*
* To get an inverse sine measured in degrees, use asinpi(a) * 180.f.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_asinpi(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse sine in radians, divided by pi.
*
* To get an inverse sine measured in degrees, use asinpi(a) * 180.f.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_asinpi(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_atan(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_atan(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_atan(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_atan(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent of y / x, in radians.
*
* x can be 0.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_atan2(float y, float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent of y / x, in radians.
*
* x can be 0.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_atan2(float2 y, float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent of y / x, in radians.
*
* x can be 0.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_atan2(float3 y, float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent of y / x, in radians.
*
* x can be 0.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_atan2(float4 y, float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent of y / x, in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atan2pi(x, y) * 180.f.
*
* x can be 0.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_atan2pi(float y, float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent of y / x, in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atan2pi(x, y) * 180.f.
*
* x can be 0.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_atan2pi(float2 y, float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent of y / x, in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atan2pi(x, y) * 180.f.
*
* x can be 0.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_atan2pi(float3 y, float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent of y / x, in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atan2pi(x, y) * 180.f.
*
* x can be 0.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_atan2pi(float4 y, float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse hyperbolic tangent, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_atanh(float in);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse hyperbolic tangent, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_atanh(float2 in);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse hyperbolic tangent, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_atanh(float3 in);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse hyperbolic tangent, in radians.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_atanh(float4 in);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atanpi(a) * 180.f.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_atanpi(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atanpi(a) * 180.f.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_atanpi(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atanpi(a) * 180.f.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_atanpi(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate inverse tangent in radians, divided by pi.
*
* To get an inverse tangent measured in degrees, use atanpi(a) * 180.f.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_atanpi(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate cubic root.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_cbrt(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate cubic root.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_cbrt(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate cubic root.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_cbrt(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate cubic root.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_cbrt(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate cosine of an angle measured in radians.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_cos(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate cosine of an angle measured in radians.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_cos(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate cosine of an angle measured in radians.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_cos(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate cosine of an angle measured in radians.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_cos(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate hypebolic cosine.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_cosh(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate hypebolic cosine.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_cosh(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate hypebolic cosine.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_cosh(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate hypebolic cosine.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_cosh(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate cosine of (x * pi), where (x * pi) is measured in radians.
*
* To get the cosine of a value measured in degrees, call cospi(a / 180.f).
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_cospi(float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate cosine of (x * pi), where (x * pi) is measured in radians.
*
* To get the cosine of a value measured in degrees, call cospi(a / 180.f).
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_cospi(float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate cosine of (x * pi), where (x * pi) is measured in radians.
*
* To get the cosine of a value measured in degrees, call cospi(a / 180.f).
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_cospi(float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate cosine of (x * pi), where (x * pi) is measured in radians.
*
* To get the cosine of a value measured in degrees, call cospi(a / 180.f).
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_cospi(float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Computes the approximate distance between two points.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_distance(float lhs, float rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Computes the approximate distance between two points.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_distance(float2 lhs, float2 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Computes the approximate distance between two points.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_distance(float3 lhs, float3 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Computes the approximate distance between two points.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_distance(float4 lhs, float4 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Computes the approximate division result of two values.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_divide(float lhs, float rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Computes the approximate division result of two values.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_divide(float2 lhs, float2 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Computes the approximate division result of two values.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_divide(float3 lhs, float3 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Computes the approximate division result of two values.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_divide(float4 lhs, float4 rhs);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate exp.
*
* It is valid for inputs from -86.f to 86.f. The precision is no worse than what would be expected from using 16 bit floating point values.
*
* Supported by API versions 18 and newer.
*/
extern float __attribute__((const, overloadable))native_exp(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate exp.
*
* It is valid for inputs from -86.f to 86.f. The precision is no worse than what would be expected from using 16 bit floating point values.
*
* Supported by API versions 18 and newer.
*/
extern float2 __attribute__((const, overloadable))native_exp(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate exp.
*
* It is valid for inputs from -86.f to 86.f. The precision is no worse than what would be expected from using 16 bit floating point values.
*
* Supported by API versions 18 and newer.
*/
extern float3 __attribute__((const, overloadable))native_exp(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate exp.
*
* It is valid for inputs from -86.f to 86.f. The precision is no worse than what would be expected from using 16 bit floating point values.
*
* Supported by API versions 18 and newer.
*/
extern float4 __attribute__((const, overloadable))native_exp(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate exp10.
*
* It is valid for inputs from -37.f to 37.f. The precision is no worse than what would be expected from using 16 bit floating point values.
*
* Supported by API versions 18 and newer.
*/
extern float __attribute__((const, overloadable))native_exp10(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate exp10.
*
* It is valid for inputs from -37.f to 37.f. The precision is no worse than what would be expected from using 16 bit floating point values.
*
* Supported by API versions 18 and newer.
*/
extern float2 __attribute__((const, overloadable))native_exp10(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate exp10.
*
* It is valid for inputs from -37.f to 37.f. The precision is no worse than what would be expected from using 16 bit floating point values.
*
* Supported by API versions 18 and newer.
*/
extern float3 __attribute__((const, overloadable))native_exp10(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate exp10.
*
* It is valid for inputs from -37.f to 37.f. The precision is no worse than what would be expected from using 16 bit floating point values.
*
* Supported by API versions 18 and newer.
*/
extern float4 __attribute__((const, overloadable))native_exp10(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate exp2.
*
* It is valid for inputs from -125.f to 125.f. The precision is no worse than what would be expected from using 16 bit floating point values.
*
* Supported by API versions 18 and newer.
*/
extern float __attribute__((const, overloadable))native_exp2(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate exp2.
*
* It is valid for inputs from -125.f to 125.f. The precision is no worse than what would be expected from using 16 bit floating point values.
*
* Supported by API versions 18 and newer.
*/
extern float2 __attribute__((const, overloadable))native_exp2(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate exp2.
*
* It is valid for inputs from -125.f to 125.f. The precision is no worse than what would be expected from using 16 bit floating point values.
*
* Supported by API versions 18 and newer.
*/
extern float3 __attribute__((const, overloadable))native_exp2(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate exp2.
*
* It is valid for inputs from -125.f to 125.f. The precision is no worse than what would be expected from using 16 bit floating point values.
*
* Supported by API versions 18 and newer.
*/
extern float4 __attribute__((const, overloadable))native_exp2(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate (e ^ value) - 1.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_expm1(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate (e ^ value) - 1.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_expm1(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate (e ^ value) - 1.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_expm1(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate (e ^ value) - 1.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_expm1(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate native_sqrt(x*x + y*y)
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_hypot(float x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate native_sqrt(x*x + y*y)
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_hypot(float2 x, float2 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate native_sqrt(x*x + y*y)
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_hypot(float3 x, float3 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate native_sqrt(x*x + y*y)
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_hypot(float4 x, float4 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Compute the approximate length of a vector.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_length(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Compute the approximate length of a vector.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_length(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Compute the approximate length of a vector.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_length(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Compute the approximate length of a vector.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_length(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate log.
*
* It is not accurate for values very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float __attribute__((const, overloadable))native_log(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate log.
*
* It is not accurate for values very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float2 __attribute__((const, overloadable))native_log(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate log.
*
* It is not accurate for values very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float3 __attribute__((const, overloadable))native_log(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate log.
*
* It is not accurate for values very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float4 __attribute__((const, overloadable))native_log(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate log10.
*
* It is not accurate for values very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float __attribute__((const, overloadable))native_log10(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate log10.
*
* It is not accurate for values very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float2 __attribute__((const, overloadable))native_log10(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate log10.
*
* It is not accurate for values very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float3 __attribute__((const, overloadable))native_log10(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate log10.
*
* It is not accurate for values very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float4 __attribute__((const, overloadable))native_log10(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate natural logarithm of (v + 1.0f)
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_log1p(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate natural logarithm of (v + 1.0f)
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_log1p(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate natural logarithm of (v + 1.0f)
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_log1p(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate natural logarithm of (v + 1.0f)
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_log1p(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate log2.
*
* It is not accurate for values very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float __attribute__((const, overloadable))native_log2(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate log2.
*
* It is not accurate for values very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float2 __attribute__((const, overloadable))native_log2(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate log2.
*
* It is not accurate for values very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float3 __attribute__((const, overloadable))native_log2(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate log2.
*
* It is not accurate for values very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float4 __attribute__((const, overloadable))native_log2(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Approximately normalizes a vector.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_normalize(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Approximately normalizes a vector.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_normalize(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Approximately normalizes a vector.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_normalize(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Approximately normalizes a vector.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_normalize(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate v ^ y.
*
* v must be between 0.f and 256.f.
* y must be between -15.f and 15.f.
*
* It is not accurate for values of v very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float __attribute__((const, overloadable))native_powr(float v, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate v ^ y.
*
* v must be between 0.f and 256.f.
* y must be between -15.f and 15.f.
*
* It is not accurate for values of v very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float2 __attribute__((const, overloadable))native_powr(float2 v, float2 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate v ^ y.
*
* v must be between 0.f and 256.f.
* y must be between -15.f and 15.f.
*
* It is not accurate for values of v very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float3 __attribute__((const, overloadable))native_powr(float3 v, float3 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 18))
/**
* Fast approximate v ^ y.
*
* v must be between 0.f and 256.f.
* y must be between -15.f and 15.f.
*
* It is not accurate for values of v very close to zero.
*
* Supported by API versions 18 and newer.
*/
extern float4 __attribute__((const, overloadable))native_powr(float4 v, float4 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate approximate reciprocal of a value.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_recip(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate approximate reciprocal of a value.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_recip(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate approximate reciprocal of a value.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_recip(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate approximate reciprocal of a value.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_recip(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Compute the approximate Nth root of a value.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_rootn(float v, int n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Compute the approximate Nth root of a value.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_rootn(float2 v, int2 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Compute the approximate Nth root of a value.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_rootn(float3 v, int3 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Compute the approximate Nth root of a value.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_rootn(float4 v, int4 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns approximate (1 / sqrt(value)).
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_rsqrt(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns approximate (1 / sqrt(value)).
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_rsqrt(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns approximate (1 / sqrt(value)).
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_rsqrt(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns approximate (1 / sqrt(value)).
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_rsqrt(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sine of an angle measured in radians.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_sin(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sine of an angle measured in radians.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_sin(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sine of an angle measured in radians.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_sin(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sine of an angle measured in radians.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_sin(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sine and cosine of a value.
*
* @return sine
* @param v The incoming value in radians
* @param *cosptr cosptr[0] will be set to the cosine value.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((overloadable))native_sincos(float v, float* cosptr);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sine and cosine of a value.
*
* @return sine
* @param v The incoming value in radians
* @param *cosptr cosptr[0] will be set to the cosine value.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((overloadable))native_sincos(float2 v, float2* cosptr);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sine and cosine of a value.
*
* @return sine
* @param v The incoming value in radians
* @param *cosptr cosptr[0] will be set to the cosine value.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((overloadable))native_sincos(float3 v, float3* cosptr);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sine and cosine of a value.
*
* @return sine
* @param v The incoming value in radians
* @param *cosptr cosptr[0] will be set to the cosine value.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((overloadable))native_sincos(float4 v, float4* cosptr);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate hyperbolic sine of a value specified in radians.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_sinh(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate hyperbolic sine of a value specified in radians.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_sinh(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate hyperbolic sine of a value specified in radians.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_sinh(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate hyperbolic sine of a value specified in radians.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_sinh(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sine of (x * pi), where (x * pi) is measured in radians.
*
* To get the sine of a value measured in degrees, call sinpi(a / 180.f).
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_sinpi(float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sine of (x * pi), where (x * pi) is measured in radians.
*
* To get the sine of a value measured in degrees, call sinpi(a / 180.f).
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_sinpi(float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sine of (x * pi), where (x * pi) is measured in radians.
*
* To get the sine of a value measured in degrees, call sinpi(a / 180.f).
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_sinpi(float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sine of (x * pi), where (x * pi) is measured in radians.
*
* To get the sine of a value measured in degrees, call sinpi(a / 180.f).
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_sinpi(float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sqrt(v).
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_sqrt(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sqrt(v).
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_sqrt(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sqrt(v).
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_sqrt(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate sqrt(v).
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_sqrt(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate tangent of an angle measured in radians.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_tan(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate tangent of an angle measured in radians.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_tan(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate tangent of an angle measured in radians.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_tan(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate tangent of an angle measured in radians.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_tan(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate hyperbolic tangent of a value.
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_tanh(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate hyperbolic tangent of a value.
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_tanh(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate hyperbolic tangent of a value.
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_tanh(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate hyperbolic tangent of a value.
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_tanh(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate tangent of (x * pi), where (x * pi) is measured in radians.
*
* To get the tangent of a value measured in degrees, call tanpi(a / 180.f).
*
* Supported by API versions 21 and newer.
*/
extern float __attribute__((const, overloadable))native_tanpi(float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate tangent of (x * pi), where (x * pi) is measured in radians.
*
* To get the tangent of a value measured in degrees, call tanpi(a / 180.f).
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))native_tanpi(float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate tangent of (x * pi), where (x * pi) is measured in radians.
*
* To get the tangent of a value measured in degrees, call tanpi(a / 180.f).
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))native_tanpi(float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns the approximate tangent of (x * pi), where (x * pi) is measured in radians.
*
* To get the tangent of a value measured in degrees, call tanpi(a / 180.f).
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))native_tanpi(float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the next floating point number from x towards y.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))nextafter(float x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the next floating point number from x towards y.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))nextafter(float2 x, float2 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the next floating point number from x towards y.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))nextafter(float3 x, float3 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the next floating point number from x towards y.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))nextafter(float4 x, float4 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Normalize a vector.
*
* For vectors of size 1, returns -1.f for negative values, 0.f for null values, and 1.f for positive values.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))normalize(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Normalize a vector.
*
* For vectors of size 1, returns -1.f for negative values, 0.f for null values, and 1.f for positive values.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))normalize(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Normalize a vector.
*
* For vectors of size 1, returns -1.f for negative values, 0.f for null values, and 1.f for positive values.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))normalize(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Normalize a vector.
*
* For vectors of size 1, returns -1.f for negative values, 0.f for null values, and 1.f for positive values.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))normalize(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns x raised to the power y, i.e. x ^ y.
*
* pown() and powr() are similar. pown() takes an integer exponent. powr() assumes the base to be non-negative.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))pow(float x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns x raised to the power y, i.e. x ^ y.
*
* pown() and powr() are similar. pown() takes an integer exponent. powr() assumes the base to be non-negative.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))pow(float2 x, float2 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns x raised to the power y, i.e. x ^ y.
*
* pown() and powr() are similar. pown() takes an integer exponent. powr() assumes the base to be non-negative.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))pow(float3 x, float3 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns x raised to the power y, i.e. x ^ y.
*
* pown() and powr() are similar. pown() takes an integer exponent. powr() assumes the base to be non-negative.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))pow(float4 x, float4 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns x raised to the power y, i.e. x ^ y.
*
* pow() and powr() are similar. The both take a float exponent. powr() also assumes the base to be non-negative.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))pown(float x, int y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns x raised to the power y, i.e. x ^ y.
*
* pow() and powr() are similar. The both take a float exponent. powr() also assumes the base to be non-negative.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))pown(float2 x, int2 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns x raised to the power y, i.e. x ^ y.
*
* pow() and powr() are similar. The both take a float exponent. powr() also assumes the base to be non-negative.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))pown(float3 x, int3 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns x raised to the power y, i.e. x ^ y.
*
* pow() and powr() are similar. The both take a float exponent. powr() also assumes the base to be non-negative.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))pown(float4 x, int4 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns x raised to the power y, i.e. x ^ y. x must be >= 0.
*
* pow() and pown() are similar. They both make no assumptions about the base. pow() takes a float exponent while pown() take an integer.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))powr(float x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns x raised to the power y, i.e. x ^ y. x must be >= 0.
*
* pow() and pown() are similar. They both make no assumptions about the base. pow() takes a float exponent while pown() take an integer.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))powr(float2 x, float2 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns x raised to the power y, i.e. x ^ y. x must be >= 0.
*
* pow() and pown() are similar. They both make no assumptions about the base. pow() takes a float exponent while pown() take an integer.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))powr(float3 x, float3 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns x raised to the power y, i.e. x ^ y. x must be >= 0.
*
* pow() and pown() are similar. They both make no assumptions about the base. pow() takes a float exponent while pown() take an integer.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))powr(float4 x, float4 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Converts from degrees to radians.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))radians(float value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Converts from degrees to radians.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))radians(float2 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Converts from degrees to radians.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))radians(float3 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Converts from degrees to radians.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))radians(float4 value);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the remainder of x / y, where the quotient is rounded towards the nearest integer.
*
* The function fmod() is similar but rounds toward the closest interger.
* For example, fmod(-3.8f, 2.f) returns -1.8f (-3.8f - -1.f * 2.f)
* while remainder(-3.8f, 2.f) returns 0.2f (-3.8f - -2.f * 2.f).
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))remainder(float x, float y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the remainder of x / y, where the quotient is rounded towards the nearest integer.
*
* The function fmod() is similar but rounds toward the closest interger.
* For example, fmod(-3.8f, 2.f) returns -1.8f (-3.8f - -1.f * 2.f)
* while remainder(-3.8f, 2.f) returns 0.2f (-3.8f - -2.f * 2.f).
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))remainder(float2 x, float2 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the remainder of x / y, where the quotient is rounded towards the nearest integer.
*
* The function fmod() is similar but rounds toward the closest interger.
* For example, fmod(-3.8f, 2.f) returns -1.8f (-3.8f - -1.f * 2.f)
* while remainder(-3.8f, 2.f) returns 0.2f (-3.8f - -2.f * 2.f).
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))remainder(float3 x, float3 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the remainder of x / y, where the quotient is rounded towards the nearest integer.
*
* The function fmod() is similar but rounds toward the closest interger.
* For example, fmod(-3.8f, 2.f) returns -1.8f (-3.8f - -1.f * 2.f)
* while remainder(-3.8f, 2.f) returns 0.2f (-3.8f - -2.f * 2.f).
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))remainder(float4 x, float4 y);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the quotient and the remainder of b / c.
*
* Only the sign and lowest three bits of the quotient are guaranteed to be accurate.
*
* This function is useful for implementing periodic functions. The low three bits of the quotient gives the quadrant and the remainder the distance within the quadrant. For example, an implementation of sin(x) could call remquo(x, PI / 2.f, &quadrant) to reduce very large value of x to something within a limited range.
*
* Example: remquo(-23.5f, 8.f, &quot) sets the lowest three bits of quot to 3 and the sign negative. It returns 0.5f.
*
* @param b The numerator.
* @param c The denominator.
* @param *d d[0] will be set to the integer quotient.
* @return The remainder, precise only for the low three bits.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((overloadable))remquo(float b, float c, int* d);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the quotient and the remainder of b / c.
*
* Only the sign and lowest three bits of the quotient are guaranteed to be accurate.
*
* This function is useful for implementing periodic functions. The low three bits of the quotient gives the quadrant and the remainder the distance within the quadrant. For example, an implementation of sin(x) could call remquo(x, PI / 2.f, &quadrant) to reduce very large value of x to something within a limited range.
*
* Example: remquo(-23.5f, 8.f, &quot) sets the lowest three bits of quot to 3 and the sign negative. It returns 0.5f.
*
* @param b The numerator.
* @param c The denominator.
* @param *d d[0] will be set to the integer quotient.
* @return The remainder, precise only for the low three bits.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((overloadable))remquo(float2 b, float2 c, int2* d);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the quotient and the remainder of b / c.
*
* Only the sign and lowest three bits of the quotient are guaranteed to be accurate.
*
* This function is useful for implementing periodic functions. The low three bits of the quotient gives the quadrant and the remainder the distance within the quadrant. For example, an implementation of sin(x) could call remquo(x, PI / 2.f, &quadrant) to reduce very large value of x to something within a limited range.
*
* Example: remquo(-23.5f, 8.f, &quot) sets the lowest three bits of quot to 3 and the sign negative. It returns 0.5f.
*
* @param b The numerator.
* @param c The denominator.
* @param *d d[0] will be set to the integer quotient.
* @return The remainder, precise only for the low three bits.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((overloadable))remquo(float3 b, float3 c, int3* d);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the quotient and the remainder of b / c.
*
* Only the sign and lowest three bits of the quotient are guaranteed to be accurate.
*
* This function is useful for implementing periodic functions. The low three bits of the quotient gives the quadrant and the remainder the distance within the quadrant. For example, an implementation of sin(x) could call remquo(x, PI / 2.f, &quadrant) to reduce very large value of x to something within a limited range.
*
* Example: remquo(-23.5f, 8.f, &quot) sets the lowest three bits of quot to 3 and the sign negative. It returns 0.5f.
*
* @param b The numerator.
* @param c The denominator.
* @param *d d[0] will be set to the integer quotient.
* @return The remainder, precise only for the low three bits.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((overloadable))remquo(float4 b, float4 c, int4* d);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Rounds to the nearest integral value.
*
* rint() rounds half values to even. For example, rint(0.5f) returns 0.f and rint(1.5f) returns 2.f. Similarly, rint(-0.5f) returns -0.f and rint(-1.5f) returns -2.f.
*
* round() is similar but rounds away from zero. trunc() truncates the decimal fraction.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))rint(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Rounds to the nearest integral value.
*
* rint() rounds half values to even. For example, rint(0.5f) returns 0.f and rint(1.5f) returns 2.f. Similarly, rint(-0.5f) returns -0.f and rint(-1.5f) returns -2.f.
*
* round() is similar but rounds away from zero. trunc() truncates the decimal fraction.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))rint(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Rounds to the nearest integral value.
*
* rint() rounds half values to even. For example, rint(0.5f) returns 0.f and rint(1.5f) returns 2.f. Similarly, rint(-0.5f) returns -0.f and rint(-1.5f) returns -2.f.
*
* round() is similar but rounds away from zero. trunc() truncates the decimal fraction.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))rint(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Rounds to the nearest integral value.
*
* rint() rounds half values to even. For example, rint(0.5f) returns 0.f and rint(1.5f) returns 2.f. Similarly, rint(-0.5f) returns -0.f and rint(-1.5f) returns -2.f.
*
* round() is similar but rounds away from zero. trunc() truncates the decimal fraction.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))rint(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Compute the Nth root of a value.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))rootn(float v, int n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Compute the Nth root of a value.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))rootn(float2 v, int2 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Compute the Nth root of a value.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))rootn(float3 v, int3 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Compute the Nth root of a value.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))rootn(float4 v, int4 n);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Round to the nearest integral value.
*
* round() rounds half values away from zero. For example, round(0.5f) returns 1.f and round(1.5f) returns 2.f. Similarly, round(-0.5f) returns -1.f and round(-1.5f) returns -2.f.
*
* rint() is similar but rounds half values toward even. trunc() truncates the decimal fraction.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))round(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Round to the nearest integral value.
*
* round() rounds half values away from zero. For example, round(0.5f) returns 1.f and round(1.5f) returns 2.f. Similarly, round(-0.5f) returns -1.f and round(-1.5f) returns -2.f.
*
* rint() is similar but rounds half values toward even. trunc() truncates the decimal fraction.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))round(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Round to the nearest integral value.
*
* round() rounds half values away from zero. For example, round(0.5f) returns 1.f and round(1.5f) returns 2.f. Similarly, round(-0.5f) returns -1.f and round(-1.5f) returns -2.f.
*
* rint() is similar but rounds half values toward even. trunc() truncates the decimal fraction.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))round(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Round to the nearest integral value.
*
* round() rounds half values away from zero. For example, round(0.5f) returns 1.f and round(1.5f) returns 2.f. Similarly, round(-0.5f) returns -1.f and round(-1.5f) returns -2.f.
*
* rint() is similar but rounds half values toward even. trunc() truncates the decimal fraction.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))round(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns (1 / sqrt(value)).
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))rsqrt(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns (1 / sqrt(value)).
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))rsqrt(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns (1 / sqrt(value)).
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))rsqrt(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns (1 / sqrt(value)).
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))rsqrt(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sign of a value.
*
* if (v < 0) return -1.f;
* else if (v > 0) return 1.f;
* else return 0.f;
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))sign(float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sign of a value.
*
* if (v < 0) return -1.f;
* else if (v > 0) return 1.f;
* else return 0.f;
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))sign(float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sign of a value.
*
* if (v < 0) return -1.f;
* else if (v > 0) return 1.f;
* else return 0.f;
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))sign(float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sign of a value.
*
* if (v < 0) return -1.f;
* else if (v > 0) return 1.f;
* else return 0.f;
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))sign(float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sine of an angle measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))sin(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sine of an angle measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))sin(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sine of an angle measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))sin(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sine of an angle measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))sin(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sine and cosine of a value.
*
* @return sine of v
* @param v The incoming value in radians
* @param *cosptr cosptr[0] will be set to the cosine value.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((overloadable))sincos(float v, float* cosptr);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sine and cosine of a value.
*
* @return sine of v
* @param v The incoming value in radians
* @param *cosptr cosptr[0] will be set to the cosine value.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((overloadable))sincos(float2 v, float2* cosptr);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sine and cosine of a value.
*
* @return sine of v
* @param v The incoming value in radians
* @param *cosptr cosptr[0] will be set to the cosine value.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((overloadable))sincos(float3 v, float3* cosptr);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sine and cosine of a value.
*
* @return sine of v
* @param v The incoming value in radians
* @param *cosptr cosptr[0] will be set to the cosine value.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((overloadable))sincos(float4 v, float4* cosptr);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hyperbolic sine of x, where x is measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))sinh(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hyperbolic sine of x, where x is measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))sinh(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hyperbolic sine of x, where x is measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))sinh(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hyperbolic sine of x, where x is measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))sinh(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sine of (x * pi), where (x * pi) is measured in radians.
*
* To get the sine of a value measured in degrees, call sinpi(a / 180.f).
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))sinpi(float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sine of (x * pi), where (x * pi) is measured in radians.
*
* To get the sine of a value measured in degrees, call sinpi(a / 180.f).
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))sinpi(float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sine of (x * pi), where (x * pi) is measured in radians.
*
* To get the sine of a value measured in degrees, call sinpi(a / 180.f).
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))sinpi(float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the sine of (x * pi), where (x * pi) is measured in radians.
*
* To get the sine of a value measured in degrees, call sinpi(a / 180.f).
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))sinpi(float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the square root of a value.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))sqrt(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the square root of a value.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))sqrt(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the square root of a value.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))sqrt(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the square root of a value.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))sqrt(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 0.f if v < edge, 1.f otherwise.
*
* This can be useful to create conditional computations without using loops and branching instructions. For example, instead of computing (a[i] < b[i]) ? 0.f : atan2(a[i], b[i]) for the corresponding elements of a vector, you could instead use step(a, b) * atan2(a, b).
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))step(float edge, float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 0.f if v < edge, 1.f otherwise.
*
* This can be useful to create conditional computations without using loops and branching instructions. For example, instead of computing (a[i] < b[i]) ? 0.f : atan2(a[i], b[i]) for the corresponding elements of a vector, you could instead use step(a, b) * atan2(a, b).
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))step(float2 edge, float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 0.f if v < edge, 1.f otherwise.
*
* This can be useful to create conditional computations without using loops and branching instructions. For example, instead of computing (a[i] < b[i]) ? 0.f : atan2(a[i], b[i]) for the corresponding elements of a vector, you could instead use step(a, b) * atan2(a, b).
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))step(float3 edge, float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 0.f if v < edge, 1.f otherwise.
*
* This can be useful to create conditional computations without using loops and branching instructions. For example, instead of computing (a[i] < b[i]) ? 0.f : atan2(a[i], b[i]) for the corresponding elements of a vector, you could instead use step(a, b) * atan2(a, b).
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))step(float4 edge, float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 0.f if v < edge, 1.f otherwise.
*
* This can be useful to create conditional computations without using loops and branching instructions. For example, instead of computing (a[i] < b) ? 0.f : atan2(a[i], b) for each element of a vector, you could instead use step(a, b) * atan2(a, b).
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))step(float2 edge, float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 0.f if v < edge, 1.f otherwise.
*
* This can be useful to create conditional computations without using loops and branching instructions. For example, instead of computing (a[i] < b) ? 0.f : atan2(a[i], b) for each element of a vector, you could instead use step(a, b) * atan2(a, b).
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))step(float3 edge, float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns 0.f if v < edge, 1.f otherwise.
*
* This can be useful to create conditional computations without using loops and branching instructions. For example, instead of computing (a[i] < b) ? 0.f : atan2(a[i], b) for each element of a vector, you could instead use step(a, b) * atan2(a, b).
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))step(float4 edge, float v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns 0.f if v < edge, 1.f otherwise.
*
* This can be useful to create conditional computations without using loops and branching instructions. For example, instead of computing (a < b[i]) ? 0.f : atan2(a, b[i]) for each element of a vector, you could instead use step(a, b) * atan2(a, b).
*
* Supported by API versions 21 and newer.
*/
extern float2 __attribute__((const, overloadable))step(float edge, float2 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns 0.f if v < edge, 1.f otherwise.
*
* This can be useful to create conditional computations without using loops and branching instructions. For example, instead of computing (a < b[i]) ? 0.f : atan2(a, b[i]) for each element of a vector, you could instead use step(a, b) * atan2(a, b).
*
* Supported by API versions 21 and newer.
*/
extern float3 __attribute__((const, overloadable))step(float edge, float3 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 21))
/**
* Returns 0.f if v < edge, 1.f otherwise.
*
* This can be useful to create conditional computations without using loops and branching instructions. For example, instead of computing (a < b[i]) ? 0.f : atan2(a, b[i]) for each element of a vector, you could instead use step(a, b) * atan2(a, b).
*
* Supported by API versions 21 and newer.
*/
extern float4 __attribute__((const, overloadable))step(float edge, float4 v);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the tangent of an angle measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))tan(float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the tangent of an angle measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))tan(float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the tangent of an angle measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))tan(float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the tangent of an angle measured in radians.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))tan(float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hyperbolic tangent of a value.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))tanh(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hyperbolic tangent of a value.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))tanh(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hyperbolic tangent of a value.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))tanh(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the hyperbolic tangent of a value.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))tanh(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the tangent of (x * pi), where (x * pi) is measured in radians.
*
* To get the tangent of a value measured in degrees, call tanpi(a / 180.f).
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))tanpi(float x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the tangent of (x * pi), where (x * pi) is measured in radians.
*
* To get the tangent of a value measured in degrees, call tanpi(a / 180.f).
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))tanpi(float2 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the tangent of (x * pi), where (x * pi) is measured in radians.
*
* To get the tangent of a value measured in degrees, call tanpi(a / 180.f).
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))tanpi(float3 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the tangent of (x * pi), where (x * pi) is measured in radians.
*
* To get the tangent of a value measured in degrees, call tanpi(a / 180.f).
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))tanpi(float4 x);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the gamma function of a value.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))tgamma(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the gamma function of a value.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))tgamma(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the gamma function of a value.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))tgamma(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Returns the gamma function of a value.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))tgamma(float4);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Rounds to integral using truncation.
*
* For example, trunc(1.7f) returns 1.f and trunc(-1.7f) returns -1.f.
*
* See rint() and round() for other rounding options.
*
* Supported by API versions 9 and newer.
*/
extern float __attribute__((const, overloadable))trunc(float);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Rounds to integral using truncation.
*
* For example, trunc(1.7f) returns 1.f and trunc(-1.7f) returns -1.f.
*
* See rint() and round() for other rounding options.
*
* Supported by API versions 9 and newer.
*/
extern float2 __attribute__((const, overloadable))trunc(float2);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Rounds to integral using truncation.
*
* For example, trunc(1.7f) returns 1.f and trunc(-1.7f) returns -1.f.
*
* See rint() and round() for other rounding options.
*
* Supported by API versions 9 and newer.
*/
extern float3 __attribute__((const, overloadable))trunc(float3);
#endif
#if (defined(RS_VERSION) && (RS_VERSION >= 9))
/**
* Rounds to integral using truncation.
*
* For example, trunc(1.7f) returns 1.f and trunc(-1.7f) returns -1.f.
*
* See rint() and round() for other rounding options.
*
* Supported by API versions 9 and newer.
*/
extern float4 __attribute__((const, overloadable))trunc(float4);
#endif
#endif // __rs_core_math_rsh__