00001
00002
00004
00005
00006
00007
00009
00010 #ifndef glm_core_func_common
00011 #define glm_core_func_common
00012
00013 #include "_fixes.hpp"
00014
00015 namespace glm
00016 {
00017 namespace test{
00018 void main_core_func_common();
00019 }
00020
00021 namespace core{
00022 namespace function{
00024 namespace common{
00025
00028
00031 template <typename genFIType>
00032 genFIType abs(genFIType const & x);
00033
00036 template <typename genFIType>
00037 genFIType sign(genFIType const & x);
00038
00041 template <typename genType>
00042 genType floor(genType const & x);
00043
00047 template <typename genType>
00048 genType trunc(genType const & x);
00049
00056 template <typename genType>
00057 genType round(genType const & x);
00058
00063 template <typename genType>
00064 genType roundEven(genType const & x);
00065
00069 template <typename genType>
00070 genType ceil(genType const & x);
00071
00074 template <typename genType>
00075 genType fract(genType const & x);
00076
00080 template <typename genType>
00081 genType mod(
00082 genType const & x,
00083 genType const & y);
00084
00088 template <typename genType>
00089 genType mod(
00090 genType const & x,
00091 typename genType::value_type const & y);
00092
00098 template <typename genType>
00099 genType modf(
00100 genType const & x,
00101 genType & i);
00102
00105 template <typename genType>
00106 genType min(
00107 genType const & x,
00108 genType const & y);
00109
00110 template <typename genType>
00111 genType min(
00112 genType const & x,
00113 typename genType::value_type const & y);
00114
00117 template <typename genType>
00118 genType max(
00119 genType const & x,
00120 genType const & y);
00121
00122 template <typename genType>
00123 genType max(
00124 genType const & x,
00125 typename genType::value_type const & y);
00126
00130 template <typename genType>
00131 genType clamp(
00132 genType const & x,
00133 genType const & minVal,
00134 genType const & maxVal);
00135
00136 template <typename genType>
00137 genType clamp(
00138 genType const & x,
00139 typename genType::value_type const & minVal,
00140 typename genType::value_type const & maxVal);
00141
00165
00166 template <typename genTypeT, typename genTypeU>
00167 genTypeT mix(genTypeT const & x, genTypeT const & y, genTypeU const & a);
00168
00171 template <typename genType>
00172 genType step(
00173 genType const & edge,
00174 genType const & x);
00175
00176 template <typename genType>
00177 genType step(
00178 typename genType::value_type const & edge,
00179 genType const & x);
00180
00191 template <typename genType>
00192 genType smoothstep(
00193 genType const & edge0,
00194 genType const & edge1,
00195 genType const & x);
00196
00197 template <typename genType>
00198 genType smoothstep(
00199 typename genType::value_type const & edge0,
00200 typename genType::value_type const & edge1,
00201 genType const & x);
00202
00209 template <typename genType>
00210 typename genType::bool_type isnan(genType const & x);
00211
00218 template <typename genType>
00219 typename genType::bool_type isinf(genType const & x);
00220
00225 template <typename genType, typename genIType>
00226 genIType floatBitsToInt(genType const & value);
00227
00232 template <typename genType, typename genUType>
00233 genUType floatBitsToInt(genType const & value);
00234
00241 template <typename genType, typename genIUType>
00242 genType intBitsToFloat(genIUType const & value);
00243
00246 template <typename genType>
00247 genType fma(genType const & a, genType const & b, genType const & c);
00248
00258 template <typename genType, typename genIType>
00259 genType frexp(genType const & x, genIType & exp);
00260
00267 template <typename genType, typename genIType>
00268 genType ldexp(genType const & x, genIType const & exp);
00269
00271
00272 }
00273 }
00274 }
00275
00276 using namespace core::function::common;
00277 }
00278
00279 #include "func_common.inl"
00280
00281 #endif//glm_core_func_common