mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-10 18:59:01 +08:00
fix a few remaining warnings
and fix commainitializer unit test with MSVC
This commit is contained in:
parent
d3dcb04f2d
commit
6a722602e6
@ -40,22 +40,34 @@ template<typename Scalar> struct StdMapTraits
|
|||||||
static void setInvalidKey(Type&, const KeyType&) {}
|
static void setInvalidKey(Type&, const KeyType&) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef _HASH_MAP
|
#ifdef EIGEN_UNORDERED_MAP_SUPPORT
|
||||||
/** Represents a __gnu_cxx::hash_map
|
/** Represents a std::unordered_map
|
||||||
|
*
|
||||||
|
* To use it you need to both define EIGEN_UNORDERED_MAP_SUPPORT and include the unordered_map header file
|
||||||
|
* yourself making sure that unordered_map is defined in the std namespace.
|
||||||
|
*
|
||||||
|
* For instance, with current version of gcc you can either enable C++0x standard (-std=c++0x) or do:
|
||||||
|
* \code
|
||||||
|
* #include <tr1/unordered_map>
|
||||||
|
* #define EIGEN_UNORDERED_MAP_SUPPORT
|
||||||
|
* namespace std {
|
||||||
|
* using std::tr1::unordered_map;
|
||||||
|
* }
|
||||||
|
* \endcode
|
||||||
*
|
*
|
||||||
* \see RandomSetter
|
* \see RandomSetter
|
||||||
*/
|
*/
|
||||||
template<typename Scalar> struct GnuHashMapTraits
|
template<typename Scalar> struct StdUnorderedMapTraits
|
||||||
{
|
{
|
||||||
typedef int KeyType;
|
typedef int KeyType;
|
||||||
typedef __gnu_cxx::hash_map<KeyType,Scalar> Type;
|
typedef std::unordered_map<KeyType,Scalar> Type;
|
||||||
enum {
|
enum {
|
||||||
IsSorted = 0
|
IsSorted = 0
|
||||||
};
|
};
|
||||||
|
|
||||||
static void setInvalidKey(Type&, const KeyType&) {}
|
static void setInvalidKey(Type&, const KeyType&) {}
|
||||||
};
|
};
|
||||||
#endif
|
#endif // EIGEN_UNORDERED_MAP_SUPPORT
|
||||||
|
|
||||||
#ifdef _DENSE_HASH_MAP_H_
|
#ifdef _DENSE_HASH_MAP_H_
|
||||||
/** Represents a google::dense_hash_map
|
/** Represents a google::dense_hash_map
|
||||||
|
@ -30,7 +30,10 @@ void test_commainitializer()
|
|||||||
Matrix4d m4;
|
Matrix4d m4;
|
||||||
|
|
||||||
VERIFY_RAISES_ASSERT( (m3 << 1, 2, 3, 4, 5, 6, 7, 8) );
|
VERIFY_RAISES_ASSERT( (m3 << 1, 2, 3, 4, 5, 6, 7, 8) );
|
||||||
|
|
||||||
|
#ifndef _MSC_VER
|
||||||
VERIFY_RAISES_ASSERT( (m3 << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) );
|
VERIFY_RAISES_ASSERT( (m3 << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) );
|
||||||
|
#endif
|
||||||
|
|
||||||
double data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
|
double data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
|
||||||
Matrix3d ref = Map<Matrix<double,3,3,RowMajor> >(data);
|
Matrix3d ref = Map<Matrix<double,3,3,RowMajor> >(data);
|
||||||
|
@ -24,15 +24,20 @@
|
|||||||
|
|
||||||
#ifndef EIGEN_TESTSPARSE_H
|
#ifndef EIGEN_TESTSPARSE_H
|
||||||
|
|
||||||
#ifdef __GNUC__
|
#include "main.h"
|
||||||
#include <ext/hash_map>
|
|
||||||
|
#if EIGEN_GNUC_AT_LEAST(4,0)
|
||||||
|
#include <tr1/unordered_map>
|
||||||
|
#define EIGEN_UNORDERED_MAP_SUPPORT
|
||||||
|
namespace std {
|
||||||
|
using std::tr1::unordered_map;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef EIGEN_GOOGLEHASH_SUPPORT
|
#ifdef EIGEN_GOOGLEHASH_SUPPORT
|
||||||
#include <google/sparse_hash_map>
|
#include <google/sparse_hash_map>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "main.h"
|
|
||||||
#include <Eigen/Cholesky>
|
#include <Eigen/Cholesky>
|
||||||
#include <Eigen/LU>
|
#include <Eigen/LU>
|
||||||
#include <Eigen/Sparse>
|
#include <Eigen/Sparse>
|
||||||
|
@ -167,8 +167,8 @@ template<typename SparseMatrixType> void sparse_basic(const SparseMatrixType& re
|
|||||||
// VERIFY_IS_APPROX(m, refMat);
|
// VERIFY_IS_APPROX(m, refMat);
|
||||||
|
|
||||||
VERIFY(( test_random_setter<RandomSetter<SparseMatrixType, StdMapTraits> >(m,refMat,nonzeroCoords) ));
|
VERIFY(( test_random_setter<RandomSetter<SparseMatrixType, StdMapTraits> >(m,refMat,nonzeroCoords) ));
|
||||||
#ifdef _HASH_MAP
|
#ifdef EIGEN_UNORDERED_MAP_SUPPORT
|
||||||
VERIFY(( test_random_setter<RandomSetter<SparseMatrixType, GnuHashMapTraits> >(m,refMat,nonzeroCoords) ));
|
VERIFY(( test_random_setter<RandomSetter<SparseMatrixType, StdUnorderedMapTraits> >(m,refMat,nonzeroCoords) ));
|
||||||
#endif
|
#endif
|
||||||
#ifdef _DENSE_HASH_MAP_H_
|
#ifdef _DENSE_HASH_MAP_H_
|
||||||
VERIFY(( test_random_setter<RandomSetter<SparseMatrixType, GoogleDenseHashMapTraits> >(m,refMat,nonzeroCoords) ));
|
VERIFY(( test_random_setter<RandomSetter<SparseMatrixType, GoogleDenseHashMapTraits> >(m,refMat,nonzeroCoords) ));
|
||||||
|
@ -57,6 +57,7 @@ template<typename MatrixType> void submatrices(const MatrixType& m)
|
|||||||
Row.h Column.h Block.h Minor.h DiagonalCoeffs.h
|
Row.h Column.h Block.h Minor.h DiagonalCoeffs.h
|
||||||
*/
|
*/
|
||||||
typedef typename MatrixType::Scalar Scalar;
|
typedef typename MatrixType::Scalar Scalar;
|
||||||
|
typedef typename MatrixType::RealScalar RealScalar;
|
||||||
typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> VectorType;
|
typedef Matrix<Scalar, MatrixType::RowsAtCompileTime, 1> VectorType;
|
||||||
typedef Matrix<Scalar, 1, MatrixType::ColsAtCompileTime> RowVectorType;
|
typedef Matrix<Scalar, 1, MatrixType::ColsAtCompileTime> RowVectorType;
|
||||||
int rows = m.rows();
|
int rows = m.rows();
|
||||||
@ -140,11 +141,11 @@ template<typename MatrixType> void submatrices(const MatrixType& m)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// stress some basic stuffs with block matrices
|
// stress some basic stuffs with block matrices
|
||||||
VERIFY(ones.col(c1).sum() == Scalar(rows));
|
VERIFY(ei_real(ones.col(c1).sum()) == RealScalar(rows));
|
||||||
VERIFY(ones.row(r1).sum() == Scalar(cols));
|
VERIFY(ei_real(ones.row(r1).sum()) == RealScalar(cols));
|
||||||
|
|
||||||
VERIFY(ones.col(c1).dot(ones.col(c2)) == Scalar(rows));
|
VERIFY(ei_real(ones.col(c1).dot(ones.col(c2))) == RealScalar(rows));
|
||||||
VERIFY(ones.row(r1).dot(ones.row(r2)) == Scalar(cols));
|
VERIFY(ei_real(ones.row(r1).dot(ones.row(r2))) == RealScalar(cols));
|
||||||
}
|
}
|
||||||
|
|
||||||
void test_submatrices()
|
void test_submatrices()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user