32 #include "../api_core.h"
34 #include "../System/cl_platform.h"
51 template<
typename A,
typename B>
inline A
min(A a, B b) {
return a < b ? a : b; }
52 template<
typename A,
typename B>
inline A
max(A a, B b) {
return a > b ? a : b; }
54 template<
typename Type>
60 template<
typename Type>
66 template<
typename Type>
72 template<
typename Type>
78 template<
typename Type>
84 template<
typename Type>
90 template<
typename A,
typename B,
typename C>
91 inline C
clamp(A val, B minval, C maxval)
93 return max((A)minval,
min((A)maxval, val));
96 template<
typename A,
typename B,
typename C>
99 return a * (C(1) -
mix) + b * mix;
132 template<
typename Type>
138 template<
typename Type>
144 template<
typename Type>
150 template<
typename A,
typename B,
typename C>
inline C
smoothstep(A edge0, B edge1, C x)
152 C t =
clamp((x - edge0) / (edge1 - edge0), C(0), C(1));
153 return t * t * (C(3) - C(2) * t);
156 inline int step(
int edge,
int x)
158 return x < edge ? 0 : 1;
161 inline long long step(
long long edge,
long long x)
163 return x < edge ? 0 : 1;
166 inline float step(
float edge,
float x)
168 return x < edge ? 0.0f : 1.0f;
171 inline double step(
double edge,
double x)
173 return x < edge ? 0.0 : 1.0;
176 template<
typename Type>
182 template<
typename Type>
188 template<
typename Type>
Type x
Definition: vec3.h:81
T pow2(T value)
Definition: cl_math.h:46
C smoothstep(A edge0, B edge1, C x)
Definition: cl_math.h:150
Type y
Definition: vec3.h:82
Type z
Definition: vec4.h:83
A min(A a, B b)
Definition: cl_math.h:51
Type x
Definition: vec2.h:82
A max(A a, B b)
Definition: cl_math.h:52
2D vector
Definition: line.h:49
3D vector
Definition: line_ray.h:49
Type y
Definition: vec4.h:82
Type w
Definition: vec4.h:84
A mix(A a, B b, C mix)
Definition: cl_math.h:97
int step(int edge, int x)
Definition: cl_math.h:156
Type x
Definition: vec4.h:81
4D vector
Definition: size.h:48
int sign(int x)
Definition: cl_math.h:102
Type z
Definition: vec3.h:83
Type y
Definition: vec2.h:83
C clamp(A val, B minval, C maxval)
Definition: cl_math.h:91