diff options
author | Gael Guennebaud <g.gael@free.fr> | 2008-12-12 12:54:45 +0000 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2008-12-12 12:54:45 +0000 |
commit | 1ed17b037db20ebe8eed954d4fa975b9e0ac82f6 (patch) | |
tree | 672b08ede4939d2abbe7172d50145fd8428059e6 /Eigen/src/Core | |
parent | 5015e483613490ae65433e8eeae00dc176aeedf3 (diff) |
* fix a couple of warnings (patch from Armin Berres)
* allow Map to map null data
Diffstat (limited to 'Eigen/src/Core')
-rw-r--r-- | Eigen/src/Core/IO.h | 12 | ||||
-rw-r--r-- | Eigen/src/Core/MapBase.h | 15 | ||||
-rw-r--r-- | Eigen/src/Core/MathFunctions.h | 6 |
3 files changed, 17 insertions, 16 deletions
diff --git a/Eigen/src/Core/IO.h b/Eigen/src/Core/IO.h index b7d4c9eac..6e6d02ad4 100644 --- a/Eigen/src/Core/IO.h +++ b/Eigen/src/Core/IO.h @@ -6,12 +6,12 @@ // // Eigen is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either +// License as published by the Free Software Foundation; either // version 3 of the License, or (at your option) any later version. // // Alternatively, you can redistribute it and/or // modify it under the terms of the GNU General Public License as -// published by the Free Software Foundation; either version 2 of +// published by the Free Software Foundation; either version 2 of // the License, or (at your option) any later version. // // Eigen is distributed in the hope that it will be useful, but WITHOUT ANY @@ -19,7 +19,7 @@ // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License or the // GNU General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public +// You should have received a copy of the GNU Lesser General Public // License and a copy of the GNU General Public License along with // Eigen. If not, see <http://www.gnu.org/licenses/>. @@ -58,7 +58,7 @@ struct IOFormat coeffSeparator(_coeffSeparator), precision(_precision), flags(_flags) { rowSpacer = ""; - int i=matSuffix.length()-1; + int i = int(matSuffix.length())-1; while (i>=0 && matSuffix[i]!='\n') { rowSpacer += ' '; @@ -81,7 +81,7 @@ struct IOFormat * This class represents an expression with stream operators controlled by a given IOFormat. * It is the return type of MatrixBase::format() * and most of the time this is the only way it is used. - * + * * See class IOFormat for some examples. * * \sa MatrixBase::format(), class IOFormat @@ -135,7 +135,7 @@ std::ostream & ei_print_matrix(std::ostream & s, const MatrixBase<Derived> & _m, std::stringstream sstr; sstr.precision(fmt.precision); sstr << m.coeff(i,j); - width = std::max<int>(width, sstr.str().length()); + width = std::max<int>(width, int(sstr.str().length())); } } s.precision(fmt.precision); diff --git a/Eigen/src/Core/MapBase.h b/Eigen/src/Core/MapBase.h index 5151b7047..ceedb08cb 100644 --- a/Eigen/src/Core/MapBase.h +++ b/Eigen/src/Core/MapBase.h @@ -53,7 +53,7 @@ template<typename Derived> class MapBase ColsAtCompileTime = ei_traits<Derived>::ColsAtCompileTime, SizeAtCompileTime = Base::SizeAtCompileTime }; - + typedef typename ei_traits<Derived>::AlignedDerivedType AlignedDerivedType; typedef typename ei_traits<Derived>::Scalar Scalar; typedef typename Base::PacketScalar PacketScalar; @@ -83,7 +83,7 @@ template<typename Derived> class MapBase else // column-major return const_cast<Scalar*>(m_data)[row + col * stride()]; } - + inline const Scalar coeff(int index) const { ei_assert(Derived::IsVectorAtCompileTime || (ei_traits<Derived>::Flags & LinearAccessBit)); @@ -138,28 +138,29 @@ template<typename Derived> class MapBase m_cols(ColsAtCompileTime == Dynamic ? size : ColsAtCompileTime) { EIGEN_STATIC_ASSERT_VECTOR_ONLY(Derived) - ei_assert(size > 0); + ei_assert(size > 0 || data == 0); ei_assert(SizeAtCompileTime == Dynamic || SizeAtCompileTime == size); } inline MapBase(const Scalar* data, int rows, int cols) : m_data(data), m_rows(rows), m_cols(cols) { - ei_assert(rows > 0 && (RowsAtCompileTime == Dynamic || RowsAtCompileTime == rows) - && cols > 0 && (ColsAtCompileTime == Dynamic || ColsAtCompileTime == cols)); + ei_assert( (data == 0) + || ( rows > 0 && (RowsAtCompileTime == Dynamic || RowsAtCompileTime == rows) + && cols > 0 && (ColsAtCompileTime == Dynamic || ColsAtCompileTime == cols))); } template<typename OtherDerived> Derived& operator+=(const MatrixBase<OtherDerived>& other) { return derived() = forceAligned() + other; } - + template<typename OtherDerived> Derived& operator-=(const MatrixBase<OtherDerived>& other) { return derived() = forceAligned() - other; } Derived& operator*=(const Scalar& other) { return derived() = forceAligned() * other; } - + Derived& operator/=(const Scalar& other) { return derived() = forceAligned() / other; } diff --git a/Eigen/src/Core/MathFunctions.h b/Eigen/src/Core/MathFunctions.h index 30604db86..3b3640661 100644 --- a/Eigen/src/Core/MathFunctions.h +++ b/Eigen/src/Core/MathFunctions.h @@ -51,7 +51,7 @@ inline int ei_sin(int) { ei_assert(false); return 0; } inline int ei_cos(int) { ei_assert(false); return 0; } #if EIGEN_GNUC_AT_LEAST(4,3) -inline int ei_pow(int x, int y) { return std::pow(x, y); } +inline int ei_pow(int x, int y) { return int(std::pow(x, y)); } #else inline int ei_pow(int x, int y) { return int(std::pow(double(x), y)); } #endif @@ -103,7 +103,7 @@ template<> inline float ei_random(float a, float b) } while(i==0); return i/256.f; #else - return a + (b-a) * std::rand() / RAND_MAX; + return a + (b-a) * float(std::rand()) / float(RAND_MAX); #endif } template<> inline float ei_random() @@ -254,7 +254,7 @@ inline long double ei_pow(long double x, long double y) { return std::pow(x, y) template<> inline long double ei_random(long double a, long double b) { - return ei_random<double>(a,b); + return static_cast<long double>(ei_random<double>(a,b)); } template<> inline long double ei_random() { |