2011-11-12 23:26:02 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" / >
2011-12-07 14:50:15 +00:00
2011-11-12 23:26:02 +00:00
< title > simd_vec4.hpp Source File< / title >
< link href = "tabs.css" rel = "stylesheet" type = "text/css" / >
2011-12-07 14:50:15 +00:00
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" / >
2011-11-12 23:26:02 +00:00
< / head >
< body >
2011-12-07 14:50:15 +00:00
< div id = "top" > <!-- do not remove this div! -->
2011-11-12 23:26:02 +00:00
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr style = "height: 56px;" >
2011-12-07 14:50:15 +00:00
< td id = "projectlogo" > < img alt = "Logo" src = "logo-mini.png" / > < / td >
2011-11-12 23:26:02 +00:00
< / tr >
< / tbody >
< / table >
< / div >
2011-12-07 14:50:15 +00:00
<!-- Generated by Doxygen 1.7.5 -->
2011-11-12 23:26:02 +00:00
< div id = "navrow1" class = "tabs" >
< ul class = "tablist" >
< li > < a href = "index.html" > < span > Main  Page< / span > < / a > < / li >
< li > < a href = "pages.html" > < span > Related  Pages< / span > < / a > < / li >
< li > < a href = "modules.html" > < span > Modules< / span > < / a > < / li >
< li > < a href = "annotated.html" > < span > Classes< / span > < / a > < / li >
< li class = "current" > < a href = "files.html" > < span > Files< / span > < / a > < / li >
< / ul >
< / div >
< div id = "navrow2" class = "tabs2" >
< ul class = "tablist" >
< li > < a href = "files.html" > < span > File  List< / span > < / a > < / li >
< / ul >
< / div >
< div class = "header" >
< div class = "headertitle" >
2011-12-07 14:50:15 +00:00
< div class = "title" > simd_vec4.hpp< / div > < / div >
2011-11-12 23:26:02 +00:00
< / div >
< div class = "contents" >
< a href = "a00100.html" > Go to the documentation of this file.< / a > < div class = "fragment" > < pre class = "fragment" > < a name = "l00001" > < / a > 00001
< a name = "l00002" > < / a > 00002
< a name = "l00003" > < / a > 00003
< a name = "l00004" > < / a > 00004
< a name = "l00005" > < / a > 00005
< a name = "l00006" > < / a > 00006
< a name = "l00007" > < / a > 00007
< a name = "l00008" > < / a > 00008
< a name = "l00009" > < / a > 00009
< a name = "l00010" > < / a > 00010
< a name = "l00011" > < / a > 00011
< a name = "l00012" > < / a > 00012
< a name = "l00013" > < / a > 00013
< a name = "l00014" > < / a > 00014
< a name = "l00015" > < / a > 00015
< a name = "l00016" > < / a > 00016
< a name = "l00017" > < / a > 00017
< a name = "l00018" > < / a > 00018
< a name = "l00019" > < / a > 00019
< a name = "l00020" > < / a > 00020
< a name = "l00021" > < / a > 00021
< a name = "l00022" > < / a > 00022
< a name = "l00023" > < / a > 00023
< a name = "l00024" > < / a > 00024
< a name = "l00025" > < / a > 00025
< a name = "l00026" > < / a > 00026
< a name = "l00027" > < / a > 00027
< a name = "l00028" > < / a > 00028
< a name = "l00029" > < / a > 00029
< a name = "l00030" > < / a > 00030
< a name = "l00031" > < / a > 00031
< a name = "l00032" > < / a > 00032
< a name = "l00033" > < / a > 00033
< a name = "l00034" > < / a > 00034
< a name = "l00035" > < / a > 00035
< a name = "l00036" > < / a > 00036
< a name = "l00037" > < / a > 00037
< a name = "l00038" > < / a > 00038 < span class = "preprocessor" > #ifndef GLM_GTX_simd_vec4< / span >
< a name = "l00039" > < / a > 00039 < span class = "preprocessor" > < / span > < span class = "preprocessor" > #define GLM_GTX_simd_vec4 GLM_VERSION< / span >
< a name = "l00040" > < / a > 00040 < span class = "preprocessor" > < / span >
< a name = "l00041" > < / a > 00041 < span class = "comment" > // Dependency:< / span >
2011-12-07 14:50:15 +00:00
< a name = "l00042" > < / a > 00042 < span class = "preprocessor" > #include " ../glm.hpp" < / span >
2011-11-12 23:26:02 +00:00
< a name = "l00043" > < / a > 00043
< a name = "l00044" > < / a > 00044 < span class = "preprocessor" > #if(GLM_ARCH != GLM_ARCH_PURE)< / span >
< a name = "l00045" > < / a > 00045 < span class = "preprocessor" > < / span >
< a name = "l00046" > < / a > 00046 < span class = "preprocessor" > #if(GLM_ARCH & GLM_ARCH_SSE2)< / span >
2011-12-07 14:50:15 +00:00
< a name = "l00047" > < / a > 00047 < span class = "preprocessor" > < / span > < span class = "preprocessor" > # include " ../core/intrinsic_common.hpp" < / span >
< a name = "l00048" > < / a > 00048 < span class = "preprocessor" > # include " ../core/intrinsic_geometric.hpp" < / span >
2011-11-12 23:26:02 +00:00
< a name = "l00049" > < / a > 00049 < span class = "preprocessor" > #else< / span >
< a name = "l00050" > < / a > 00050 < span class = "preprocessor" > < / span > < span class = "preprocessor" > # error " GLM: GLM_GTX_simd_vec4 requires compiler support of SSE2 through intrinsics" < / span >
< a name = "l00051" > < / a > 00051 < span class = "preprocessor" > < / span > < span class = "preprocessor" > #endif< / span >
< a name = "l00052" > < / a > 00052 < span class = "preprocessor" > < / span >
< a name = "l00053" > < / a > 00053 < span class = "preprocessor" > #if(defined(GLM_MESSAGES) & & !defined(glm_ext))< / span >
< a name = "l00054" > < / a > 00054 < span class = "preprocessor" > < / span > < span class = "preprocessor" > # pragma message(" GLM: GLM_GTX_simd_vec4 extension included" )< / span >
< a name = "l00055" > < / a > 00055 < span class = "preprocessor" > < / span > < span class = "preprocessor" > #endif< / span >
< a name = "l00056" > < / a > 00056 < span class = "preprocessor" > < / span >
< a name = "l00057" > < / a > 00057 < span class = "keyword" > namespace < / span > glm{
< a name = "l00058" > < / a > 00058 < span class = "keyword" > namespace < / span > detail
< a name = "l00059" > < / a > 00059 {
< a name = "l00062" > < / a > 00062 GLM_ALIGNED_STRUCT(16) fvec4SIMD
< a name = "l00063" > < / a > 00063 {
< a name = "l00064" > < / a > 00064 < span class = "keyword" > enum< / span > ctor{null};
< a name = "l00065" > < / a > 00065 < span class = "keyword" > typedef< / span > __m128 value_type;
< a name = "l00066" > < / a > 00066 < span class = "keyword" > typedef< / span > std::size_t size_type;
< a name = "l00067" > < / a > 00067 < span class = "keyword" > static< / span > size_type value_size();
< a name = "l00068" > < / a > 00068
< a name = "l00069" > < / a > 00069 < span class = "keyword" > typedef< / span > fvec4SIMD type;
< a name = "l00070" > < / a > 00070 < span class = "keyword" > typedef< / span > tvec4< bool> bool_type;
< a name = "l00071" > < / a > 00071
< a name = "l00072" > < / a > 00072 __m128 Data;
< a name = "l00073" > < / a > 00073
< a name = "l00075" > < / a > 00075 < span class = "comment" > // Implicit basic constructors< / span >
< a name = "l00076" > < / a > 00076
< a name = "l00077" > < / a > 00077 fvec4SIMD();
< a name = "l00078" > < / a > 00078 fvec4SIMD(__m128 < span class = "keyword" > const< / span > & Data);
< a name = "l00079" > < / a > 00079 fvec4SIMD(fvec4SIMD < span class = "keyword" > const< / span > & v);
< a name = "l00080" > < / a > 00080
< a name = "l00082" > < / a > 00082 < span class = "comment" > // Explicit basic constructors< / span >
< a name = "l00083" > < / a > 00083
< a name = "l00084" > < / a > 00084 < span class = "keyword" > explicit< / span > fvec4SIMD(
< a name = "l00085" > < / a > 00085 ctor);
< a name = "l00086" > < / a > 00086 < span class = "keyword" > explicit< / span > fvec4SIMD(
< a name = "l00087" > < / a > 00087 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00088" > < / a > 00088 < span class = "keyword" > explicit< / span > fvec4SIMD(
< a name = "l00089" > < / a > 00089 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & x,
< a name = "l00090" > < / a > 00090 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & y,
< a name = "l00091" > < / a > 00091 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & z,
< a name = "l00092" > < / a > 00092 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & w);
< a name = "l00093" > < / a > 00093 < span class = "keyword" > explicit< / span > fvec4SIMD(
< a name = "l00094" > < / a > 00094 tvec4< float> < span class = "keyword" > const< / span > & v);
< a name = "l00095" > < / a > 00095
< a name = "l00098" > < / a > 00098
2011-12-07 14:50:15 +00:00
< a name = "l00099" > < / a > 00099 fvec4SIMD(< a class = "code" href = "a00155.html#ga80139c81aa2687717598312039cea8d1" title = "2 components vector of floating-point numbers." > vec2< / a > < span class = "keyword" > const< / span > & v, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s1, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s2);
< a name = "l00100" > < / a > 00100 fvec4SIMD(< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s1, < a class = "code" href = "a00155.html#ga80139c81aa2687717598312039cea8d1" title = "2 components vector of floating-point numbers." > vec2< / a > < span class = "keyword" > const< / span > & v, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s2);
< a name = "l00101" > < / a > 00101 fvec4SIMD(< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s1, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s2, < a class = "code" href = "a00155.html#ga80139c81aa2687717598312039cea8d1" title = "2 components vector of floating-point numbers." > vec2< / a > < span class = "keyword" > const< / span > & v);
2011-11-12 23:26:02 +00:00
< a name = "l00102" > < / a > 00102 fvec4SIMD(< a class = "code" href = "a00155.html#ga8a44105c47072f9ea1413f15faa31f64" title = "3 components vector of floating-point numbers." > vec3< / a > < span class = "keyword" > const< / span > & v, < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00103" > < / a > 00103 fvec4SIMD(< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s, < a class = "code" href = "a00155.html#ga8a44105c47072f9ea1413f15faa31f64" title = "3 components vector of floating-point numbers." > vec3< / a > < span class = "keyword" > const< / span > & v);
2011-12-07 14:50:15 +00:00
< a name = "l00104" > < / a > 00104 fvec4SIMD(< a class = "code" href = "a00155.html#ga80139c81aa2687717598312039cea8d1" title = "2 components vector of floating-point numbers." > vec2< / a > < span class = "keyword" > const< / span > & v1, < a class = "code" href = "a00155.html#ga80139c81aa2687717598312039cea8d1" title = "2 components vector of floating-point numbers." > vec2< / a > < span class = "keyword" > const< / span > & v2);
2011-11-12 23:26:02 +00:00
< a name = "l00105" > < / a > 00105 < span class = "comment" > //fvec4SIMD(ivec4SIMD const & v);< / span >
< a name = "l00106" > < / a > 00106
< a name = "l00108" > < / a > 00108 < span class = "comment" > // Unary arithmetic operators< / span >
< a name = "l00109" > < / a > 00109
< a name = "l00110" > < / a > 00110 fvec4SIMD& operator= (fvec4SIMD < span class = "keyword" > const< / span > & v);
< a name = "l00111" > < / a > 00111 fvec4SIMD& operator+=(fvec4SIMD < span class = "keyword" > const< / span > & v);
< a name = "l00112" > < / a > 00112 fvec4SIMD& operator-=(fvec4SIMD < span class = "keyword" > const< / span > & v);
< a name = "l00113" > < / a > 00113 fvec4SIMD& operator*=(fvec4SIMD < span class = "keyword" > const< / span > & v);
< a name = "l00114" > < / a > 00114 fvec4SIMD& operator/=(fvec4SIMD < span class = "keyword" > const< / span > & v);
< a name = "l00115" > < / a > 00115
< a name = "l00116" > < / a > 00116 fvec4SIMD& operator+=(< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00117" > < / a > 00117 fvec4SIMD& operator-=(< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00118" > < / a > 00118 fvec4SIMD& operator*=(< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00119" > < / a > 00119 fvec4SIMD& operator/=(< span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & s);
< a name = "l00120" > < / a > 00120
< a name = "l00121" > < / a > 00121 fvec4SIMD& operator++();
< a name = "l00122" > < / a > 00122 fvec4SIMD& operator--();
< a name = "l00123" > < / a > 00123
< a name = "l00125" > < / a > 00125 < span class = "comment" > // Swizzle operators< / span >
< a name = "l00126" > < / a > 00126
< a name = "l00127" > < / a > 00127 < span class = "keyword" > template< / span > < comp X, comp Y, comp Z, comp W>
< a name = "l00128" > < / a > 00128 fvec4SIMD& swizzle();
< a name = "l00129" > < / a > 00129 < span class = "keyword" > template< / span > < comp X, comp Y, comp Z, comp W>
< a name = "l00130" > < / a > 00130 fvec4SIMD swizzle() < span class = "keyword" > const< / span > ;
< a name = "l00131" > < / a > 00131 < span class = "keyword" > template< / span > < comp X, comp Y, comp Z>
< a name = "l00132" > < / a > 00132 fvec4SIMD swizzle() < span class = "keyword" > const< / span > ;
< a name = "l00133" > < / a > 00133 < span class = "keyword" > template< / span > < comp X, comp Y>
< a name = "l00134" > < / a > 00134 fvec4SIMD swizzle() < span class = "keyword" > const< / span > ;
< a name = "l00135" > < / a > 00135 < span class = "keyword" > template< / span > < comp X>
< a name = "l00136" > < / a > 00136 fvec4SIMD swizzle() < span class = "keyword" > const< / span > ;
< a name = "l00137" > < / a > 00137 };
< a name = "l00138" > < / a > 00138 }< span class = "comment" > //namespace detail< / span >
< a name = "l00139" > < / a > 00139
< a name = "l00140" > < / a > 00140 < span class = "keyword" > typedef< / span > glm::detail::fvec4SIMD simdVec4;
< a name = "l00141" > < / a > 00141
< a name = "l00144" > < / a > 00144
< a name = "l00147" > < / a > 00147 detail::tvec4< float> vec4_cast(
< a name = "l00148" > < / a > 00148 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00149" > < / a > 00149
2011-12-07 14:50:15 +00:00
< a name = "l00152" > < / a > 00152 detail::fvec4SIMD < a class = "code" href = "a00142.html#gaeca8e195d482248f677e3905d00f11ae" title = "Returns x if x >= 0; otherwise, it returns -x." > abs< / a > (detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
2011-11-12 23:26:02 +00:00
< a name = "l00153" > < / a > 00153
2011-12-07 14:50:15 +00:00
< a name = "l00156" > < / a > 00156 detail::fvec4SIMD < a class = "code" href = "a00142.html#ga79f412e6d33cb4be13497056c2298d14" title = "Returns 1.0 if x > 0, 0.0 if x == 0, or -1.0 if x < 0." > sign< / a > (detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
2011-11-12 23:26:02 +00:00
< a name = "l00157" > < / a > 00157
2011-12-07 14:50:15 +00:00
< a name = "l00160" > < / a > 00160 detail::fvec4SIMD < a class = "code" href = "a00142.html#gac3458e950a8a716468866f841a833c77" title = "Returns a value equal to the nearest integer that is less then or equal to x." > floor< / a > (detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
2011-11-12 23:26:02 +00:00
< a name = "l00161" > < / a > 00161
2011-12-07 14:50:15 +00:00
< a name = "l00165" > < / a > 00165 detail::fvec4SIMD < a class = "code" href = "a00142.html#gae1268fe85d913d9e4054de0e046abaef" title = "Returns a value equal to the nearest integer to x whose absolute value is not larger than the absolut..." > trunc< / a > (detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
2011-11-12 23:26:02 +00:00
< a name = "l00166" > < / a > 00166
2011-12-07 14:50:15 +00:00
< a name = "l00173" > < / a > 00173 detail::fvec4SIMD < a class = "code" href = "a00142.html#ga32125c5451799e80b886ef665b947d0c" title = "Returns a value equal to the nearest integer to x." > round< / a > (detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
2011-11-12 23:26:02 +00:00
< a name = "l00174" > < / a > 00174
< a name = "l00179" > < / a > 00179 < span class = "comment" > //detail::fvec4SIMD roundEven(detail::fvec4SIMD const & x);< / span >
< a name = "l00180" > < / a > 00180
2011-12-07 14:50:15 +00:00
< a name = "l00184" > < / a > 00184 detail::fvec4SIMD < a class = "code" href = "a00142.html#ga1ce130f2934cf1d7aca83a7027422f3c" title = "Returns a value equal to the nearest integer that is greater than or equal to x." > ceil< / a > (detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
2011-11-12 23:26:02 +00:00
< a name = "l00185" > < / a > 00185
2011-12-07 14:50:15 +00:00
< a name = "l00188" > < / a > 00188 detail::fvec4SIMD < a class = "code" href = "a00142.html#gad5e3814491ff6baa4f0d16aebcabff9b" title = "Return x - floor(x)." > fract< / a > (detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
2011-11-12 23:26:02 +00:00
< a name = "l00189" > < / a > 00189
2011-12-07 14:50:15 +00:00
< a name = "l00193" > < / a > 00193 detail::fvec4SIMD < a class = "code" href = "a00142.html#ga3bdf136bc96f670965cd2f48d14356b4" title = "Modulus." > mod< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00194" > < / a > 00194 detail::fvec4SIMD < span class = "keyword" > const< / span > & x,
< a name = "l00195" > < / a > 00195 detail::fvec4SIMD < span class = "keyword" > const< / span > & y);
< a name = "l00196" > < / a > 00196
2011-12-07 14:50:15 +00:00
< a name = "l00200" > < / a > 00200 detail::fvec4SIMD < a class = "code" href = "a00142.html#ga3bdf136bc96f670965cd2f48d14356b4" title = "Modulus." > mod< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00201" > < / a > 00201 detail::fvec4SIMD < span class = "keyword" > const< / span > & x,
< a name = "l00202" > < / a > 00202 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & y);
< a name = "l00203" > < / a > 00203
< a name = "l00209" > < / a > 00209 < span class = "comment" > //detail::fvec4SIMD modf(< / span >
< a name = "l00210" > < / a > 00210 < span class = "comment" > // detail::fvec4SIMD const & x, < / span >
< a name = "l00211" > < / a > 00211 < span class = "comment" > // detail::fvec4SIMD & i);< / span >
< a name = "l00212" > < / a > 00212
2011-12-07 14:50:15 +00:00
< a name = "l00215" > < / a > 00215 detail::fvec4SIMD < a class = "code" href = "a00142.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title = "Returns y if y < x; otherwise, it returns x." > min< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00216" > < / a > 00216 detail::fvec4SIMD < span class = "keyword" > const< / span > & x,
< a name = "l00217" > < / a > 00217 detail::fvec4SIMD < span class = "keyword" > const< / span > & y);
< a name = "l00218" > < / a > 00218
2011-12-07 14:50:15 +00:00
< a name = "l00219" > < / a > 00219 detail::fvec4SIMD < a class = "code" href = "a00142.html#ga0d2bb6c2caad4acf992e6dcd41a626fe" title = "Returns y if y < x; otherwise, it returns x." > min< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00220" > < / a > 00220 detail::fvec4SIMD < span class = "keyword" > const< / span > & x,
< a name = "l00221" > < / a > 00221 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & y);
< a name = "l00222" > < / a > 00222
2011-12-07 14:50:15 +00:00
< a name = "l00225" > < / a > 00225 detail::fvec4SIMD < a class = "code" href = "a00142.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title = "Returns y if x < y; otherwise, it returns x." > max< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00226" > < / a > 00226 detail::fvec4SIMD < span class = "keyword" > const< / span > & x,
< a name = "l00227" > < / a > 00227 detail::fvec4SIMD < span class = "keyword" > const< / span > & y);
< a name = "l00228" > < / a > 00228
2011-12-07 14:50:15 +00:00
< a name = "l00229" > < / a > 00229 detail::fvec4SIMD < a class = "code" href = "a00142.html#ga3f6af26fbb056e0fc8a04ddc8871add2" title = "Returns y if x < y; otherwise, it returns x." > max< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00230" > < / a > 00230 detail::fvec4SIMD < span class = "keyword" > const< / span > & x,
< a name = "l00231" > < / a > 00231 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & y);
< a name = "l00232" > < / a > 00232
2011-12-07 14:50:15 +00:00
< a name = "l00236" > < / a > 00236 detail::fvec4SIMD < a class = "code" href = "a00142.html#ga99b1ce602a02833646e5077345858da4" title = "Returns min(max(x, minVal), maxVal) for each component in x." > clamp< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00237" > < / a > 00237 detail::fvec4SIMD < span class = "keyword" > const< / span > & x,
< a name = "l00238" > < / a > 00238 detail::fvec4SIMD < span class = "keyword" > const< / span > & minVal,
< a name = "l00239" > < / a > 00239 detail::fvec4SIMD < span class = "keyword" > const< / span > & maxVal);
< a name = "l00240" > < / a > 00240
2011-12-07 14:50:15 +00:00
< a name = "l00241" > < / a > 00241 detail::fvec4SIMD < a class = "code" href = "a00142.html#ga99b1ce602a02833646e5077345858da4" title = "Returns min(max(x, minVal), maxVal) for each component in x." > clamp< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00242" > < / a > 00242 detail::fvec4SIMD < span class = "keyword" > const< / span > & x,
< a name = "l00243" > < / a > 00243 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & minVal,
< a name = "l00244" > < / a > 00244 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & maxVal);
< a name = "l00245" > < / a > 00245
< a name = "l00269" > < / a > 00269 < span class = "comment" > // \todo Test when ' a' is a boolean.< / span >
2011-12-07 14:50:15 +00:00
< a name = "l00271" > < / a > 00271 < span class = "comment" > < / span > detail::fvec4SIMD < a class = "code" href = "a00142.html#ga3f64b3986efe205cf30300700667e761" > mix< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00272" > < / a > 00272 detail::fvec4SIMD < span class = "keyword" > const< / span > & x,
< a name = "l00273" > < / a > 00273 detail::fvec4SIMD < span class = "keyword" > const< / span > & y,
< a name = "l00274" > < / a > 00274 detail::fvec4SIMD < span class = "keyword" > const< / span > & a);
< a name = "l00275" > < / a > 00275
2011-12-07 14:50:15 +00:00
< a name = "l00278" > < / a > 00278 detail::fvec4SIMD < a class = "code" href = "a00142.html#ga3d3199dcbbb0ac8e0d9664d538702a40" title = "Returns 0.0 if x < edge, otherwise it returns 1.0." > step< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00279" > < / a > 00279 detail::fvec4SIMD < span class = "keyword" > const< / span > & edge,
< a name = "l00280" > < / a > 00280 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00281" > < / a > 00281
2011-12-07 14:50:15 +00:00
< a name = "l00282" > < / a > 00282 detail::fvec4SIMD < a class = "code" href = "a00142.html#ga3d3199dcbbb0ac8e0d9664d538702a40" title = "Returns 0.0 if x < edge, otherwise it returns 1.0." > step< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00283" > < / a > 00283 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & edge,
< a name = "l00284" > < / a > 00284 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00285" > < / a > 00285
2011-12-07 14:50:15 +00:00
< a name = "l00296" > < / a > 00296 detail::fvec4SIMD < a class = "code" href = "a00142.html#gabdfe71a62ef69b5ec834601e87588667" title = "Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a..." > smoothstep< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00297" > < / a > 00297 detail::fvec4SIMD < span class = "keyword" > const< / span > & edge0,
< a name = "l00298" > < / a > 00298 detail::fvec4SIMD < span class = "keyword" > const< / span > & edge1,
< a name = "l00299" > < / a > 00299 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00300" > < / a > 00300
2011-12-07 14:50:15 +00:00
< a name = "l00301" > < / a > 00301 detail::fvec4SIMD < a class = "code" href = "a00142.html#gabdfe71a62ef69b5ec834601e87588667" title = "Returns 0.0 if x <= edge0 and 1.0 if x >= edge1 and performs smooth Hermite interpolation between 0 a..." > smoothstep< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00302" > < / a > 00302 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & edge0,
< a name = "l00303" > < / a > 00303 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & edge1,
< a name = "l00304" > < / a > 00304 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00305" > < / a > 00305
< a name = "l00312" > < / a > 00312 < span class = "comment" > //bvec4 isnan(detail::fvec4SIMD const & x);< / span >
< a name = "l00313" > < / a > 00313
< a name = "l00320" > < / a > 00320 < span class = "comment" > //bvec4 isinf(detail::fvec4SIMD const & x);< / span >
< a name = "l00321" > < / a > 00321
< a name = "l00326" > < / a > 00326 < span class = "comment" > //detail::ivec4SIMD floatBitsToInt(detail::fvec4SIMD const & value);< / span >
< a name = "l00327" > < / a > 00327
< a name = "l00334" > < / a > 00334 < span class = "comment" > //detail::fvec4SIMD intBitsToFloat(detail::ivec4SIMD const & value);< / span >
< a name = "l00335" > < / a > 00335
2011-12-07 14:50:15 +00:00
< a name = "l00338" > < / a > 00338 detail::fvec4SIMD < a class = "code" href = "a00142.html#gae88b926eebc4d610ecdd148bf8c7bdac" title = "Computes and returns a * b + c." > fma< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00339" > < / a > 00339 detail::fvec4SIMD < span class = "keyword" > const< / span > & a,
< a name = "l00340" > < / a > 00340 detail::fvec4SIMD < span class = "keyword" > const< / span > & b,
< a name = "l00341" > < / a > 00341 detail::fvec4SIMD < span class = "keyword" > const< / span > & c);
< a name = "l00342" > < / a > 00342
< a name = "l00352" > < / a > 00352 < span class = "comment" > //detail::fvec4SIMD frexp(detail::fvec4SIMD const & x, detail::ivec4SIMD & exp);< / span >
< a name = "l00353" > < / a > 00353
< a name = "l00360" > < / a > 00360 < span class = "comment" > //detail::fvec4SIMD ldexp(detail::fvec4SIMD const & x, detail::ivec4SIMD const & exp);< / span >
< a name = "l00361" > < / a > 00361
2011-12-07 14:50:15 +00:00
< a name = "l00364" > < / a > 00364 < span class = "keywordtype" > float< / span > < a class = "code" href = "a00144.html#ga282360c8bb80b80d3c7f5bc00766d873" title = "Returns the length of x, i.e., sqrt(x * x)." > length< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00365" > < / a > 00365 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00366" > < / a > 00366
2011-12-07 14:50:15 +00:00
< a name = "l00370" > < / a > 00370 < span class = "keywordtype" > float< / span > < a class = "code" href = "a00183.html#ga2e726cc8b9f02b7c09910858ea1afac6" title = "Faster than the common length function but less accurate." > fastLength< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00371" > < / a > 00371 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00372" > < / a > 00372
< a name = "l00376" > < / a > 00376 < span class = "keywordtype" > float< / span > niceLength(
< a name = "l00377" > < / a > 00377 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00378" > < / a > 00378
< a name = "l00381" > < / a > 00381 detail::fvec4SIMD length4(
< a name = "l00382" > < / a > 00382 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00383" > < / a > 00383
< a name = "l00387" > < / a > 00387 detail::fvec4SIMD fastLength4(
< a name = "l00388" > < / a > 00388 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00389" > < / a > 00389
< a name = "l00393" > < / a > 00393 detail::fvec4SIMD niceLength4(
< a name = "l00394" > < / a > 00394 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00395" > < / a > 00395
2011-12-07 14:50:15 +00:00
< a name = "l00398" > < / a > 00398 < span class = "keywordtype" > float< / span > < a class = "code" href = "a00144.html#ga3fac0e61144f60184d961dd156709dd3" title = "Returns the distance betwwen p0 and p1, i.e., length(p0 - p1)." > distance< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00399" > < / a > 00399 detail::fvec4SIMD < span class = "keyword" > const< / span > & p0,
< a name = "l00400" > < / a > 00400 detail::fvec4SIMD < span class = "keyword" > const< / span > & p1);
< a name = "l00401" > < / a > 00401
< a name = "l00404" > < / a > 00404 detail::fvec4SIMD distance4(
< a name = "l00405" > < / a > 00405 detail::fvec4SIMD < span class = "keyword" > const< / span > & p0,
< a name = "l00406" > < / a > 00406 detail::fvec4SIMD < span class = "keyword" > const< / span > & p1);
< a name = "l00407" > < / a > 00407
< a name = "l00410" > < / a > 00410 < span class = "keywordtype" > float< / span > simdDot(
< a name = "l00411" > < / a > 00411 detail::fvec4SIMD < span class = "keyword" > const< / span > & x,
< a name = "l00412" > < / a > 00412 detail::fvec4SIMD < span class = "keyword" > const< / span > & y);
< a name = "l00413" > < / a > 00413
< a name = "l00416" > < / a > 00416 detail::fvec4SIMD dot4(
< a name = "l00417" > < / a > 00417 detail::fvec4SIMD < span class = "keyword" > const< / span > & x,
< a name = "l00418" > < / a > 00418 detail::fvec4SIMD < span class = "keyword" > const< / span > & y);
< a name = "l00419" > < / a > 00419
2011-12-07 14:50:15 +00:00
< a name = "l00422" > < / a > 00422 detail::fvec4SIMD < a class = "code" href = "a00144.html#gaa127ddc9d38f715125f91742d399eb6f" title = "Returns the cross product of x and y." > cross< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00423" > < / a > 00423 detail::fvec4SIMD < span class = "keyword" > const< / span > & x,
< a name = "l00424" > < / a > 00424 detail::fvec4SIMD < span class = "keyword" > const< / span > & y);
< a name = "l00425" > < / a > 00425
2011-12-07 14:50:15 +00:00
< a name = "l00428" > < / a > 00428 detail::fvec4SIMD < a class = "code" href = "a00144.html#ga68b931c228750eeba844c273c54ca43d" title = "Returns a vector in the same direction as x but with length of 1." > normalize< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00429" > < / a > 00429 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00430" > < / a > 00430
2011-12-07 14:50:15 +00:00
< a name = "l00434" > < / a > 00434 detail::fvec4SIMD < a class = "code" href = "a00183.html#ga2953e7426a420bb2b33affce7360ef40" title = "Faster than the common normalize function but less accurate." > fastNormalize< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00435" > < / a > 00435 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00436" > < / a > 00436
< a name = "l00439" > < / a > 00439 detail::fvec4SIMD simdFaceforward(
< a name = "l00440" > < / a > 00440 detail::fvec4SIMD < span class = "keyword" > const< / span > & N,
< a name = "l00441" > < / a > 00441 detail::fvec4SIMD < span class = "keyword" > const< / span > & I,
< a name = "l00442" > < / a > 00442 detail::fvec4SIMD < span class = "keyword" > const< / span > & Nref);
< a name = "l00443" > < / a > 00443
2011-12-07 14:50:15 +00:00
< a name = "l00447" > < / a > 00447 detail::fvec4SIMD < a class = "code" href = "a00144.html#gabe1fa0bef5f854242eb70ce56e5a7d03" title = "For the incident vector I and surface orientation N, returns the reflection direction : result = I - ..." > reflect< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00448" > < / a > 00448 detail::fvec4SIMD < span class = "keyword" > const< / span > & I,
< a name = "l00449" > < / a > 00449 detail::fvec4SIMD < span class = "keyword" > const< / span > & N);
< a name = "l00450" > < / a > 00450
2011-12-07 14:50:15 +00:00
< a name = "l00455" > < / a > 00455 detail::fvec4SIMD < a class = "code" href = "a00144.html#gabbb4909d3e99a7a2411cc63252afbbd8" title = "For the incident vector I and surface normal N, and the ratio of indices of refraction eta..." > refract< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00456" > < / a > 00456 detail::fvec4SIMD < span class = "keyword" > const< / span > & I,
< a name = "l00457" > < / a > 00457 detail::fvec4SIMD < span class = "keyword" > const< / span > & N,
< a name = "l00458" > < / a > 00458 < span class = "keywordtype" > float< / span > < span class = "keyword" > const< / span > & eta);
< a name = "l00459" > < / a > 00459
2011-12-07 14:50:15 +00:00
< a name = "l00462" > < / a > 00462 detail::fvec4SIMD < a class = "code" href = "a00143.html#ga9b2fd4f39c29e3d55c4b4087ab873f9f" title = "Returns the positive square root of x." > sqrt< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00463" > < / a > 00463 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00464" > < / a > 00464
< a name = "l00468" > < / a > 00468 detail::fvec4SIMD niceSqrt(
< a name = "l00469" > < / a > 00469 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00470" > < / a > 00470
2011-12-07 14:50:15 +00:00
< a name = "l00474" > < / a > 00474 detail::fvec4SIMD < a class = "code" href = "a00183.html#gad57c343d2362c1469043adedeb8ef8eb" title = "Faster than the common sqrt function but less accurate." > fastSqrt< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00475" > < / a > 00475 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00476" > < / a > 00476
2011-12-07 14:50:15 +00:00
< a name = "l00479" > < / a > 00479 detail::fvec4SIMD < a class = "code" href = "a00143.html#ga3fd19e045e3943b96e0cdad22fbda111" title = "Returns the reciprocal of the positive square root of x." > inversesqrt< / a > (
2011-11-12 23:26:02 +00:00
< a name = "l00480" > < / a > 00480 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00481" > < / a > 00481
< a name = "l00485" > < / a > 00485 detail::fvec4SIMD fastInversesqrt(
< a name = "l00486" > < / a > 00486 detail::fvec4SIMD < span class = "keyword" > const< / span > & x);
< a name = "l00487" > < / a > 00487
< a name = "l00489" > < / a > 00489 }< span class = "comment" > //namespace glm< / span >
< a name = "l00490" > < / a > 00490
< a name = "l00491" > < / a > 00491 < span class = "preprocessor" > #include " simd_vec4.inl" < / span >
< a name = "l00492" > < / a > 00492
< a name = "l00493" > < / a > 00493 < span class = "preprocessor" > #endif//(GLM_ARCH != GLM_ARCH_PURE)< / span >
< a name = "l00494" > < / a > 00494 < span class = "preprocessor" > < / span >
< a name = "l00495" > < / a > 00495 < span class = "preprocessor" > #endif//GLM_GTX_simd_vec4< / span >
< / pre > < / div > < / div >
< / div >
2011-12-07 14:50:15 +00:00
< hr class = "footer" / > < address class = "footer" > < small >
Generated by   < a href = "http://www.doxygen.org/index.html" >
< img class = "footer" src = "doxygen.png" alt = "doxygen" / >
< / a > 1.7.5
< / small > < / address >
2011-11-12 23:26:02 +00:00
< / body >
< / html >