* fix a vectorization issue in Product

* use _mm_malloc/_mm_free on other platforms than linux of MSVC (eg., cygwin, OSX)
* replace a lot of inline keywords by EIGEN_STRONG_INLINE to compensate for
  poor MSVC inlining
This commit is contained in:
Gael Guennebaud
2008-12-19 15:38:39 +00:00
parent 8679d895d3
commit 5f6fbaa0e7
13 changed files with 302 additions and 296 deletions

View File

@@ -495,15 +495,8 @@ template<typename Derived> class MatrixBase
* Notice that in the case of a plain matrix or vector (not an expression) this function just returns
* a const reference, in order to avoid a useless copy.
*/
#ifdef _MSC_VER
inline // MSVC 2008 can't force-inline this method and emits a warning, so do just 'inline'
#else
EIGEN_ALWAYS_INLINE
#endif
const typename ei_eval<Derived>::type eval() const
{
return typename ei_eval<Derived>::type(derived());
}
EIGEN_STRONG_INLINE const typename ei_eval<Derived>::type eval() const
{ return typename ei_eval<Derived>::type(derived()); }
template<typename OtherDerived>
void swap(const MatrixBase<OtherDerived>& other);