[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdesupport/eigen2
From:       Gael Guennebaud <g.gael () free ! fr>
Date:       2009-01-23 9:50:17
Message-ID: 1232704217.317423.25171.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 915513 by ggael:

* fix compilation with gcc 3.4
* add an option to disable Qt testing


 M  +26 -26    Eigen/src/Sparse/CompressedStorage.h  
 M  +1 -1      Eigen/src/Sparse/DynamicSparseMatrix.h  
 M  +5 -5      Eigen/src/Sparse/SparseMatrix.h  
 M  +10 -7     test/CMakeLists.txt  
 M  +3 -2      test/sparse_basic.cpp  
 M  +5 -0      test/testsuite.cmake  


--- trunk/kdesupport/eigen2/Eigen/src/Sparse/CompressedStorage.h #915512:915513
@@ -37,7 +37,7 @@
       : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
     {}
 
-    CompressedStorage(int size)
+    CompressedStorage(size_t size)
       : m_values(0), m_indices(0), m_size(0), m_allocatedSize(0)
     {
       resize(size);
@@ -71,9 +71,9 @@
       delete[] m_indices;
     }
 
-    void reserve(int size)
+    void reserve(size_t size)
     {
-      int newAllocatedSize = m_size + size;
+      size_t newAllocatedSize = m_size + size;
       if (newAllocatedSize > m_allocatedSize)
         reallocate(newAllocatedSize);
     }
@@ -84,10 +84,10 @@
         reallocate(m_size);
     }
 
-    void resize(int size, float reserveSizeFactor = 0)
+    void resize(size_t size, float reserveSizeFactor = 0)
     {
       if (m_allocatedSize<size)
-        reallocate(size + reserveSizeFactor*size);
+        reallocate(size + size_t(reserveSizeFactor*size));
       m_size = size;
     }
 
@@ -99,17 +99,17 @@
       m_indices[id] = i;
     }
 
-    inline int size() const { return m_size; }
-    inline int allocatedSize() const { return m_allocatedSize; }
+    inline size_t size() const { return m_size; }
+    inline size_t allocatedSize() const { return m_allocatedSize; }
     inline void clear() { m_size = 0; }
 
-    inline Scalar& value(int i) { return m_values[i]; }
-    inline const Scalar& value(int i) const { return m_values[i]; }
+    inline Scalar& value(size_t i) { return m_values[i]; }
+    inline const Scalar& value(size_t i) const { return m_values[i]; }
 
-    inline int& index(int i) { return m_indices[i]; }
-    inline const int& index(int i) const { return m_indices[i]; }
+    inline int& index(size_t i) { return m_indices[i]; }
+    inline const int& index(size_t i) const { return m_indices[i]; }
 
-    static CompressedStorage Map(int* indices, Scalar* values, int size)
+    static CompressedStorage Map(int* indices, Scalar* values, size_t size)
     {
       CompressedStorage res;
       res.m_indices = indices;
@@ -125,11 +125,11 @@
     }
     
     /** \returns the largest \c k in [start,end) such that for all \c j in [start,k) \
                index[\c j]\<\a key */
-    inline int searchLowerIndex(int start, int end, int key) const
+    inline int searchLowerIndex(size_t start, size_t end, int key) const
     {
       while(end>start)
       {
-        int mid = (end+start)>>1;
+        size_t mid = (end+start)>>1;
         if (m_indices[mid]<key)
           start = mid+1;
         else
@@ -148,12 +148,12 @@
         return m_values[m_size-1];
       // ^^  optimization: let's first check if it is the last coefficient
       // (very common in high level algorithms)
-      const int id = searchLowerIndex(0,m_size-1,key);
+      const size_t id = searchLowerIndex(0,m_size-1,key);
       return ((id<m_size) && (m_indices[id]==key)) ? m_values[id] : defaultValue;
     }
     
     /** Like at(), but the search is performed in the range [start,end) */
-    inline Scalar atInRange(int start, int end, int key, Scalar defaultValue = \
Scalar(0)) const +    inline Scalar atInRange(size_t start, size_t end, int key, \
Scalar defaultValue = Scalar(0)) const  {
       if (start==end)
         return Scalar(0);
@@ -161,7 +161,7 @@
         return m_values[end-1];
       // ^^  optimization: let's first check if it is the last coefficient
       // (very common in high level algorithms)
-      const int id = searchLowerIndex(start,end-1,key);
+      const size_t id = searchLowerIndex(start,end-1,key);
       return ((id<end) && (m_indices[id]==key)) ? m_values[id] : defaultValue;
     }
     
@@ -170,11 +170,11 @@
       * such that the keys are sorted. */
     inline Scalar& atWithInsertion(int key, Scalar defaultValue = Scalar(0))
     {
-      int id = searchLowerIndex(0,m_size,key);
+      size_t id = searchLowerIndex(0,m_size,key);
       if (id>=m_size || m_indices[id]!=key)
       {
         resize(m_size+1,1);
-        for (int j=m_size-1; j>id; --j)
+        for (size_t j=m_size-1; j>id; --j)
         {
           m_indices[j] = m_indices[j-1];
           m_values[j] = m_values[j-1];
@@ -187,9 +187,9 @@
     
     void prune(Scalar reference, RealScalar epsilon = precision<RealScalar>())
     {
-      int k = 0;
-      int n = size();
-      for (int i=0; i<n; ++i)
+      size_t k = 0;
+      size_t n = size();
+      for (size_t i=0; i<n; ++i)
       {
         if (!ei_isMuchSmallerThan(value(i), reference, epsilon))
         {
@@ -203,11 +203,11 @@
 
   protected:
 
-    inline void reallocate(int size)
+    inline void reallocate(size_t size)
     {
       Scalar* newValues  = new Scalar[size];
       int* newIndices = new int[size];
-      int copySize = std::min(size, m_size);
+      size_t copySize = std::min(size, m_size);
       // copy
       memcpy(newValues,  m_values,  copySize * sizeof(Scalar));
       memcpy(newIndices, m_indices, copySize * sizeof(int));
@@ -222,8 +222,8 @@
   protected:
     Scalar* m_values;
     int* m_indices;
-    int m_size;
-    int m_allocatedSize;
+    size_t m_size;
+    size_t m_allocatedSize;
 
 };
 
--- trunk/kdesupport/eigen2/Eigen/src/Sparse/DynamicSparseMatrix.h #915512:915513
@@ -231,7 +231,7 @@
     }
 
     inline DynamicSparseMatrix(const DynamicSparseMatrix& other)
-      : m_innerSize(0)
+      : Base(), m_innerSize(0)
     {
       *this = other.derived();
     }
--- trunk/kdesupport/eigen2/Eigen/src/Sparse/SparseMatrix.h #915512:915513
@@ -155,7 +155,7 @@
         }
         m_outerIndex[outer+1] = m_outerIndex[outer];
       }
-      assert(m_outerIndex[outer+1] == m_data.size());
+      assert(size_t(m_outerIndex[outer+1]) == m_data.size());
       int id = m_outerIndex[outer+1];
       ++m_outerIndex[outer+1];
 
@@ -183,9 +183,9 @@
         m_outerIndex[outer+1] = m_outerIndex[outer];
       }
 //       std::cerr << this << "  " << outer << " " << inner << " - " << \
                m_outerIndex[outer] << " " << m_outerIndex[outer+1] << "\n";
-      assert(m_outerIndex[outer+1] == m_data.size() && "invalid outer index");
-      int startId = m_outerIndex[outer];
-      int id = m_outerIndex[outer+1]-1;
+      assert(size_t(m_outerIndex[outer+1]) == m_data.size() && "invalid outer \
index"); +      size_t startId = m_outerIndex[outer];
+      size_t id = m_outerIndex[outer+1]-1;
       ++m_outerIndex[outer+1];
       
       float reallocRatio = 1;
@@ -292,7 +292,7 @@
     }
 
     inline SparseMatrix(const SparseMatrix& other)
-      : m_outerSize(0), m_innerSize(0), m_outerIndex(0)
+      : Base(), m_outerSize(0), m_innerSize(0), m_outerIndex(0)
     {
       *this = other.derived();
     }
--- trunk/kdesupport/eigen2/test/CMakeLists.txt #915512:915513
@@ -64,13 +64,16 @@
   set(EIGEN_MISSING_BACKENDS ${EIGEN_MISSING_BACKENDS} GoogleHash)
 endif(GOOGLEHASH_FOUND)
 
-find_package(Qt4)
-if(QT4_FOUND)
-  include(${QT_USE_FILE})
-  set(EIGEN_TESTED_BACKENDS ${EIGEN_TESTED_BACKENDS} "Qt4 support")
-else(QT4_FOUND)
-  set(EIGEN_MISSING_BACKENDS ${EIGEN_MISSING_BACKENDS} "Qt4 support")
-endif(QT4_FOUND)
+option(EIGEN_TEST_NOQT "Disable Qt support in unit tests" OFF)
+if(NOT EIGEN_TEST_NOQT)
+  find_package(Qt4)
+  if(QT4_FOUND)
+    include(${QT_USE_FILE})
+    set(EIGEN_TESTED_BACKENDS ${EIGEN_TESTED_BACKENDS} "Qt4 support")
+  else(QT4_FOUND)
+    set(EIGEN_MISSING_BACKENDS ${EIGEN_MISSING_BACKENDS} "Qt4 support")
+  endif(QT4_FOUND)
+endif(NOT EIGEN_TEST_NOQT)
 
 if(CMAKE_COMPILER_IS_GNUCXX)
   if(CMAKE_SYSTEM_NAME MATCHES Linux)
--- trunk/kdesupport/eigen2/test/sparse_basic.cpp #915512:915513
@@ -24,9 +24,10 @@
 
 #include "sparse.h"
 
-template<typename SetterType,typename DenseType, typename SparseType>
-bool test_random_setter(SparseType& sm, const DenseType& ref, const \
std::vector<Vector2i>& nonzeroCoords) +template<typename SetterType,typename \
DenseType, typename Scalar, int Options> +bool \
test_random_setter(SparseMatrix<Scalar,Options>& sm, const DenseType& ref, const \
std::vector<Vector2i>& nonzeroCoords)  {
+  typedef SparseMatrix<Scalar,Options> SparseType;
   {
     sm.setZero();
     SetterType w(sm);
--- trunk/kdesupport/eigen2/test/testsuite.cmake #915512:915513
@@ -26,6 +26,7 @@
 #      default: Nightly
 #  - EIGEN_WORK_DIR: directory used to download the source files and make the builds
 #      default: folder which contains this script
+#  - EIGEN_CMAKE_ARGS: additional arguments passed to cmake
 #  - CTEST_SOURCE_DIRECTORY: path to eigen's src (use a new and empty folder, not \
the one you are working on)  #      default: <EIGEN_WORK_DIR>/src
 #  - CTEST_BINARY_DIRECTORY: build directory
@@ -189,3 +190,7 @@
     message(FATAL_ERROR "Invalid value for EIGEN_EXPLICIT_VECTORIZATION \
(${EIGEN_EXPLICIT_VECTORIZATION}), must be: novec, SSE2, SSE3, Altivec")  \
endif(EIGEN_EXPLICIT_VECTORIZATION MATCHES SSE2)  endif(DEFINED \
EIGEN_EXPLICIT_VECTORIZATION) +
+if(DEFINED EIGEN_CMAKE_ARGS)
+  set(CTEST_CMAKE_COMMAND "${CTEST_CMAKE_COMMAND} ${EIGEN_CMAKE_ARGS}")
+endif(DEFINED EIGEN_CMAKE_ARGS)


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic