diff --git a/Kernel_23/include/CGAL/determinant.h b/Kernel_23/include/CGAL/determinant.h index c91ea8d32e5..a88d697894a 100644 --- a/Kernel_23/include/CGAL/determinant.h +++ b/Kernel_23/include/CGAL/determinant.h @@ -211,6 +211,83 @@ determinant( return m012345; } +template +RT +determinant( + const RT& a00, const RT& a01, const RT& a02, const RT& a03, const RT& a04, + const RT& a05, const RT& a06, + const RT& a10, const RT& a11, const RT& a12, const RT& a13, const RT& a14, + const RT& a15, const RT& a16, + const RT& a20, const RT& a21, const RT& a22, const RT& a23, const RT& a24, + const RT& a25, const RT& a26, + const RT& a30, const RT& a31, const RT& a32, const RT& a33, const RT& a34, + const RT& a35, const RT& a36, + const RT& a40, const RT& a41, const RT& a42, const RT& a43, const RT& a44, + const RT& a45, const RT& a46, + const RT& a50, const RT& a51, const RT& a52, const RT& a53, const RT& a54, + const RT& a55, const RT& a56, + const RT& a60, const RT& a61, const RT& a62, const RT& a63, const RT& a64, + const RT& a65, const RT& a66) +{ + return a00 * determinant( + a11, a12, a13, a14, a15, a16, + a21, a22, a23, a24, a25, a26, + a31, a32, a33, a34, a35, a36, + a41, a42, a43, a44, a45, a46, + a51, a52, a53, a54, a55, a56, + a61, a62, a63, a64, a65, a66) + + - a10 * determinant(a01, a02, a03, a04, a05, a06, + + a21, a22, a23, a24, a25, a26, + a31, a32, a33, a34, a35, a36, + a41, a42, a43, a44, a45, a46, + a51, a52, a53, a54, a55, a56, + a61, a62, a63, a64, a65, a66) + + + a20 * determinant(a01, a02, a03, a04, a05, a06, + a11, a12, a13, a14, a15, a16, + + a31, a32, a33, a34, a35, a36, + a41, a42, a43, a44, a45, a46, + a51, a52, a53, a54, a55, a56, + a61, a62, a63, a64, a65, a66) + + - a30 * determinant(a01, a02, a03, a04, a05, a06, + a11, a12, a13, a14, a15, a16, + a21, a22, a23, a24, a25, a26, + + a41, a42, a43, a44, a45, a46, + a51, a52, a53, a54, a55, a56, + a61, a62, a63, a64, a65, a66) + + + a40 * determinant(a01, a02, a03, a04, a05, a06, + a11, a12, a13, a14, a15, a16, + a21, a22, a23, a24, a25, a26, + a31, a32, a33, a34, a35, a36, + + a51, a52, a53, a54, a55, a56, + a61, a62, a63, a64, a65, a66) + + - a50 * determinant(a01, a02, a03, a04, a05, a06, + a11, a12, a13, a14, a15, a16, + a21, a22, a23, a24, a25, a26, + a31, a32, a33, a34, a35, a36, + a41, a42, a43, a44, a45, a46, + + a61, a62, a63, a64, a65, a66) + + + a60 * determinant(a01, a02, a03, a04, a05, a06, + a11, a12, a13, a14, a15, a16, + a21, a22, a23, a24, a25, a26, + a31, a32, a33, a34, a35, a36, + a41, a42, a43, a44, a45, a46, + a51, a52, a53, a54, a55, a56 + + ); +} + + } //namespace CGAL #endif // CGAL_DETERMINANT_H diff --git a/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_filter_K.h b/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_filter_K.h index f931da3f15d..baff656bc69 100644 --- a/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_filter_K.h +++ b/NewKernel_d/include/CGAL/NewKernel_d/Cartesian_filter_K.h @@ -49,7 +49,7 @@ template<> struct Functors_without_division > { template<> struct Functors_without_division > { typedef typeset type; }; - + template < typename Base_, typename AK_, typename EK_, typename Pred_list = typeset_all > struct Cartesian_filter_K : public Base_, private Store_kernel diff --git a/NewKernel_d/include/CGAL/NewKernel_d/LA_eigen/LA.h b/NewKernel_d/include/CGAL/NewKernel_d/LA_eigen/LA.h index 082e84263b5..9261ed89609 100644 --- a/NewKernel_d/include/CGAL/NewKernel_d/LA_eigen/LA.h +++ b/NewKernel_d/include/CGAL/NewKernel_d/LA_eigen/LA.h @@ -151,6 +151,15 @@ template struct LA_eigen { m(3,0),m(3,1),m(3,2),m(3,3),m(3,4),m(3,5), m(4,0),m(4,1),m(4,2),m(4,3),m(4,4),m(4,5), m(5,0),m(5,1),m(5,2),m(5,3),m(5,4),m(5,5)); + case 7: + return CGAL::determinant( + m(0,0),m(0,1),m(0,2),m(0,3),m(0,4),m(0,5),m(0,6), + m(1,0),m(1,1),m(1,2),m(1,3),m(1,4),m(1,5),m(1,6), + m(2,0),m(2,1),m(2,2),m(2,3),m(2,4),m(2,5),m(2,6), + m(3,0),m(3,1),m(3,2),m(3,3),m(3,4),m(3,5),m(3,6), + m(4,0),m(4,1),m(4,2),m(4,3),m(4,4),m(4,5),m(4,6), + m(5,0),m(5,1),m(5,2),m(5,3),m(5,4),m(5,5),m(5,6), + m(6,0),m(6,1),m(6,2),m(6,3),m(6,4),m(6,5),m(6,6)); default: #if _MSC_VER >= 1911 || __cpp_if_constexpr >= 201606L // Avoid compiling the LU decomposition for nothing