diff --git a/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_LA_base.h b/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_LA_base.h index 180101e7867..b5de315b902 100644 --- a/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_LA_base.h +++ b/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_LA_base.h @@ -34,16 +34,18 @@ namespace CGAL { template < typename FT_, typename Dim_, -#if 1 +#ifndef CGAL_NEWKERNEL_D_USE_EIGEN_VECTOR +# if 1 typename Vec_=Mix_vector, Vector_vector, FT_, Dim_>, -#elif 0 +# elif 0 typename Vec_=Array_vector, -#elif 0 +# else typename Vec_=Vector_vector, +# endif #else - // Dangerous because of alignment. Ok on x86_64 without AVX. + // Dangerous before C++17 because of alignment. Ok on x86_64 without AVX. typename Vec_=LA_eigen, #endif typename LA_=LA_eigen > diff --git a/NewKernel_d/include/CGAL/NewKernel_d/LA_eigen/constructors.h b/NewKernel_d/include/CGAL/NewKernel_d/LA_eigen/constructors.h index 9fb8ef02107..1bb4b2a33ef 100644 --- a/NewKernel_d/include/CGAL/NewKernel_d/LA_eigen/constructors.h +++ b/NewKernel_d/include/CGAL/NewKernel_d/LA_eigen/constructors.h @@ -91,11 +91,9 @@ namespace CGAL { }; struct Initializer_list { - // Fix T==NT? - template - result_type operator()(std::initializer_list l) const { - return Iterator()(l.size(),l.begin(),l.end()); - } + result_type operator()(std::initializer_list l) const { + return Iterator()(l.size(),l.begin(),l.end()); + } }; struct Values { diff --git a/NewKernel_d/test/NewKernel_d/Epick_d_eigen.cpp b/NewKernel_d/test/NewKernel_d/Epick_d_eigen.cpp new file mode 100644 index 00000000000..ad71d0ba46b --- /dev/null +++ b/NewKernel_d/test/NewKernel_d/Epick_d_eigen.cpp @@ -0,0 +1,6 @@ +#if __cpp_aligned_new >= 201606L +# define CGAL_NEWKERNEL_D_USE_EIGEN_VECTOR 1 +# include "Epick_d.cpp" +#else +int main(){} +#endif diff --git a/Number_types/include/CGAL/Interval_nt.h b/Number_types/include/CGAL/Interval_nt.h index ec9f7288966..8a51e7cd860 100644 --- a/Number_types/include/CGAL/Interval_nt.h +++ b/Number_types/include/CGAL/Interval_nt.h @@ -1594,6 +1594,16 @@ namespace Eigen { }; }; + templatestruct ScalarBinaryOpTraits; + template + struct ScalarBinaryOpTraits, double, BinaryOp> { + typedef CGAL::Interval_nt ReturnType; + }; + template + struct ScalarBinaryOpTraits, BinaryOp> { + typedef CGAL::Interval_nt ReturnType; + }; + namespace internal { template struct significant_decimals_impl; template