diff options
author | Hauke Heibel <hauke.heibel@gmail.com> | 2014-02-01 20:49:48 +0100 |
---|---|---|
committer | Hauke Heibel <hauke.heibel@gmail.com> | 2014-02-01 20:49:48 +0100 |
commit | e722f36ffa80f131e19428bab275dbc2df522093 (patch) | |
tree | 3dace36de49030046bb6cf9aa5fd1685dfbaa1a8 /unsupported/Eigen/src/Splines | |
parent | febfc7b9b43866c44d49fe0e2b8ebcfc7b8b10be (diff) |
Fixed issue #734 (thanks to Philipp Büttgenbach for reporting the issue and proposing a fix).
Kept ColMajor layout if possible in order to keep derivatives of the same order adjacent in memory.
Diffstat (limited to 'unsupported/Eigen/src/Splines')
-rw-r--r-- | unsupported/Eigen/src/Splines/SplineFwd.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/unsupported/Eigen/src/Splines/SplineFwd.h b/unsupported/Eigen/src/Splines/SplineFwd.h index 49db8d35d..5d9bfacf8 100644 --- a/unsupported/Eigen/src/Splines/SplineFwd.h +++ b/unsupported/Eigen/src/Splines/SplineFwd.h @@ -31,6 +31,8 @@ namespace Eigen enum { OrderAtCompileTime = _Degree==Dynamic ? Dynamic : _Degree+1 /*!< The spline curve's order at compile-time. */ }; enum { NumOfDerivativesAtCompileTime = OrderAtCompileTime /*!< The number of derivatives defined for the current spline. */ }; + + enum { DerivativeMemoryLayout = Dimension==1 ? RowMajor : ColMajor /*!< The derivative type's memory layout. */ }; /** \brief The data type used to store non-zero basis functions. */ typedef Array<Scalar,1,OrderAtCompileTime> BasisVectorType; @@ -39,7 +41,7 @@ namespace Eigen typedef Array<Scalar,Dynamic,Dynamic,RowMajor,NumOfDerivativesAtCompileTime,OrderAtCompileTime> BasisDerivativeType; /** \brief The data type used to store the spline's derivative values. */ - typedef Array<Scalar,Dimension,Dynamic,ColMajor,Dimension,NumOfDerivativesAtCompileTime> DerivativeType; + typedef Array<Scalar,Dimension,Dynamic,DerivativeMemoryLayout,Dimension,NumOfDerivativesAtCompileTime> DerivativeType; /** \brief The point type the spline is representing. */ typedef Array<Scalar,Dimension,1> PointType; @@ -67,7 +69,7 @@ namespace Eigen typedef Array<_Scalar,Dynamic,Dynamic,RowMajor,NumOfDerivativesAtCompileTime,OrderAtCompileTime> BasisDerivativeType; /** \brief The data type used to store the spline's derivative values. */ - typedef Array<_Scalar,_Dim,Dynamic,ColMajor,_Dim,NumOfDerivativesAtCompileTime> DerivativeType; + typedef Array<_Scalar,_Dim,Dynamic,DerivativeMemoryLayout,_Dim,NumOfDerivativesAtCompileTime> DerivativeType; }; /** \brief 2D float B-spline with dynamic degree. */ |