diff --git a/unsupported/Eigen/src/Splines/SplineFitting.h b/unsupported/Eigen/src/Splines/SplineFitting.h index 9567c69c2..85de38b25 100644 --- a/unsupported/Eigen/src/Splines/SplineFitting.h +++ b/unsupported/Eigen/src/Splines/SplineFitting.h @@ -74,7 +74,7 @@ namespace Eigen * Curve interpolation with directional constraints for engineering design. * Engineering with Computers **/ - template + template void KnotAveragingWithDerivatives(const ParameterVectorType& parameters, const unsigned int degree, const IndexArray& derivativeIndices, @@ -255,7 +255,7 @@ namespace Eigen * Curve interpolation with directional constraints for engineering design. * Engineering with Computers **/ - template + template static SplineType InterpolateWithDerivatives(const PointArrayType& points, const PointArrayType& derivatives, const IndexArray& derivativeIndices, @@ -277,7 +277,7 @@ namespace Eigen * Curve interpolation with directional constraints for engineering design. * Engineering with Computers */ - template + template static SplineType InterpolateWithDerivatives(const PointArrayType& points, const PointArrayType& derivatives, const IndexArray& derivativeIndices, @@ -327,7 +327,7 @@ namespace Eigen } template - template + template SplineType SplineFitting::InterpolateWithDerivatives(const PointArrayType& points, const PointArrayType& derivatives, @@ -414,7 +414,7 @@ namespace Eigen } template - template + template SplineType SplineFitting::InterpolateWithDerivatives(const PointArrayType& points, const PointArrayType& derivatives, diff --git a/unsupported/Eigen/src/Splines/SplineFwd.h b/unsupported/Eigen/src/Splines/SplineFwd.h index ec3dc0ff5..0a95fbf3e 100644 --- a/unsupported/Eigen/src/Splines/SplineFwd.h +++ b/unsupported/Eigen/src/Splines/SplineFwd.h @@ -88,8 +88,6 @@ namespace Eigen /** \brief 3D double B-spline with dynamic degree. */ typedef Spline Spline3d; - - typedef Array IndexArray; } #endif // EIGEN_SPLINES_FWD_H diff --git a/unsupported/test/splines.cpp b/unsupported/test/splines.cpp index ece23953a..0b43eefb8 100644 --- a/unsupported/test/splines.cpp +++ b/unsupported/test/splines.cpp @@ -249,7 +249,7 @@ void check_global_interpolation_with_derivatives2d() Eigen::ChordLengths(points, knots); ArrayXXd derivatives = ArrayXXd::Random(dimension, numPoints); - Eigen::IndexArray derivativeIndices(numPoints); + VectorXd derivativeIndices(numPoints); for (Eigen::DenseIndex i = 0; i < numPoints; ++i) derivativeIndices(i) = i; @@ -261,18 +261,21 @@ void check_global_interpolation_with_derivatives2d() { PointType point = spline(knots(i)); PointType referencePoint = points.col(i); - VERIFY((point - referencePoint).matrix().norm() < 1e-10); + VERIFY_IS_APPROX(point, referencePoint); PointType derivative = spline.derivatives(knots(i), 1).col(1); PointType referenceDerivative = derivatives.col(i); - VERIFY((derivative - referenceDerivative).matrix().norm() < 1e-10); + VERIFY_IS_APPROX(derivative, referenceDerivative); } } void test_splines() { - CALL_SUBTEST( eval_spline3d() ); - CALL_SUBTEST( eval_spline3d_onbrks() ); - CALL_SUBTEST( eval_closed_spline2d() ); - CALL_SUBTEST( check_global_interpolation2d() ); - CALL_SUBTEST( check_global_interpolation_with_derivatives2d() ); + for (int i = 0; i < g_repeat; ++i) + { + CALL_SUBTEST( eval_spline3d() ); + CALL_SUBTEST( eval_spline3d_onbrks() ); + CALL_SUBTEST( eval_closed_spline2d() ); + CALL_SUBTEST( check_global_interpolation2d() ); + CALL_SUBTEST( check_global_interpolation_with_derivatives2d() ); + } }