GLM Version 0.9.0

func_integer.hpp

00001 
00002 // OpenGL Mathematics Copyright (c) 2005 - 2011 G-Truc Creation (www.g-truc.net)
00004 // Created : 2010-03-17
00005 // Updated : 2010-03-31
00006 // Licence : This source is under MIT License
00007 // File    : glm/core/func_integer.hpp
00009 
00010 #ifndef glm_core_func_integer
00011 #define glm_core_func_integer
00012 
00013 namespace glm
00014 {
00015         namespace test{
00016                 void main_core_func_integer();
00017         }//namespace test
00018 
00019         namespace core{
00020         namespace function{
00022         namespace integer{
00023 
00029                 template <typename genUType>
00030                 genUType uaddCarry(
00031                         genUType const & x, 
00032                         genUType const & y, 
00033                         genUType & carry);
00034 
00040                 template <typename genUType>
00041                 genUType usubBorrow(
00042                         genUType const & x, 
00043                         genUType const & y, 
00044                         genUType & borrow);
00045                 
00050                 template <typename genUType>
00051                 void umulExtended(
00052                         genUType const & x, 
00053                         genUType const & y, 
00054                         genUType & msb, 
00055                         genUType & lsb);
00056                 
00061                 template <typename genIType>
00062                 void imulExtended(
00063                         genIType const & x, 
00064                         genIType const & y, 
00065                         genIType & msb, 
00066                         genIType & lsb);
00067 
00068 
00081                 template <typename genIUType>
00082                 genIUType bitfieldExtract(
00083                         genIUType const & Value, 
00084                         int const & Offset, 
00085                         int const & Bits);
00086 
00098                 template <typename genIUType>
00099                 genIUType bitfieldInsert(
00100                         genIUType const & Base, 
00101                         genIUType const & Insert, 
00102                         int const & Offset, 
00103                         int const & Bits);
00104 
00109                 template <typename genIUType>
00110                 genIUType bitfieldReverse(genIUType const & value);
00111                 
00114                 template <typename T, template <typename> class C>
00115                 typename C<T>::signed_type bitCount(C<T> const & Value);
00116 
00121                 template <typename T, template <typename> class C>
00122                 typename C<T>::signed_type findLSB(C<T> const & Value);
00123 
00129                 template <typename T, template <typename> class C>
00130                 typename C<T>::signed_type findMSB(C<T> const & Value);
00131 
00132         }//namespace integer
00133         }//namespace function
00134         }//namespace core
00135 
00136         using namespace core::function::integer;
00137 }//namespace glm
00138 
00139 #include "func_integer.inl"
00140 
00141 #endif//glm_core_func_integer
00142