Hello,
I am interested in using your program, specifically to get large order (more than 50) quadrature rule on the triangle.
I have a fresh install of boost (version 1.77.0) and Eigen (3.4.0) when running make I get the error shown below.
Best regards.
[ 50%] Building CXX object CMakeFiles/polyquad.dir/src/main.cpp.o
In file included from /home/houdayer/include/Eigen/Core:304,
from /home/houdayer/include/Eigen/Dense:1,
from /home/houdayer/Polyquad-master/src/utils/io.hpp:23,
from /home/houdayer/Polyquad-master/src/actions/eval.hpp:22,
from /home/houdayer/Polyquad-master/src/main.cpp:21:
/home/houdayer/include/Eigen/src/Core/StableNorm.h: In instantiation of ‘typename Eigen::NumTraits<typename Eigen::internal::traits::Scalar>::Real Eigen::internal::blueNorm_impl(const Eigen::EigenBase&) [with Derived = Eigen::Block<Eigen::Matrix<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >, -1, -1, 0, -1, -1>, -1, 1, true>; typename Eigen::NumTraits<typename Eigen::internal::traits::Scalar>::Real = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >]’:
/home/houdayer/include/Eigen/src/Core/StableNorm.h:231:33: required from ‘typename Eigen::NumTraits<typename Eigen::internal::traits::Scalar>::Real Eigen::MatrixBase::blueNorm() const [with Derived = Eigen::Block<Eigen::Matrix<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >, -1, -1, 0, -1, -1>, -1, 1, true>; typename Eigen::NumTraits<typename Eigen::internal::traits::Scalar>::Real = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >]’
/home/houdayer/include/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h:42:14: required from ‘Eigen::LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt<_FunctorType>::minimizeOneStep(Eigen::LevenbergMarquardt<_FunctorType>::FVectorType&) [with _FunctorType = Eigen::NumericalDiff<polyquad::BaseDomain<Derived, T, Ndim, Norbits>::minimise(int) [with Derived = polyquad::TriDomain<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> > >; T = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >; int Ndim = 2; int Norbits = 3]::min_functor, Eigen::Forward>; Eigen::LevenbergMarquardt<_FunctorType>::FVectorType = Eigen::Matrix<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >, -1, 1, 0, -1, 1>; typename _FunctorType::JacobianType::Scalar = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >]’
/home/houdayer/include/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h:286:18: required from ‘Eigen::LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt<_FunctorType>::minimize(Eigen::LevenbergMarquardt<_FunctorType>::FVectorType&) [with _FunctorType = Eigen::NumericalDiff<polyquad::BaseDomain<Derived, T, Ndim, Norbits>::minimise(int) [with Derived = polyquad::TriDomain<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> > >; T = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >; int Ndim = 2; int Norbits = 3]::min_functor, Eigen::Forward>; Eigen::LevenbergMarquardt<_FunctorType>::FVectorType = Eigen::Matrix<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >, -1, 1, 0, -1, 1>; typename _FunctorType::JacobianType::Scalar = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >]’
/home/houdayer/Polyquad-master/src/shapes/base.hpp:338:5: required from ‘std::tuple<T, Eigen::Matrix<RhsScalar, -1, 1, 0, -1, 1> > polyquad::BaseDomain<Derived, T, Ndim, Norbits>::minimise(int) [with Derived = polyquad::TriDomain<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> > >; T = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >; int Ndim = 2; int Norbits = 3]’
/home/houdayer/Polyquad-master/src/actions/find.hpp:124:22: required from ‘void polyquad::process_find(const boost::program_options::variables_map&) [with Domain = polyquad::TriDomain; T = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >]’
/home/houdayer/Polyquad-master/src/main.cpp:55:32: required from ‘void process_dispatch(const boost::program_options::variables_map&) [with Domain = polyquad::TriDomain; T = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >]’
/home/houdayer/Polyquad-master/src/main.cpp:84:5: required from here
/home/houdayer/include/Eigen/src/Core/StableNorm.h:136:57: error: ‘digits’ is not a member of ‘Eigen::NumTraits<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> > >’
136 | static const int it = NumTraits::digits(); // number of base-beta digits in mantissa
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/houdayer/include/Eigen/src/Core/StableNorm.h:137:63: error: ‘min_exponent’ is not a member of ‘Eigen::NumTraits<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> > >’
137 | static const int iemin = NumTraits::min_exponent(); // minimum exponent
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/houdayer/include/Eigen/src/Core/StableNorm.h:138:63: error: ‘max_exponent’ is not a member of ‘Eigen::NumTraits<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> > >’
138 | static const int iemax = NumTraits::max_exponent(); // maximum exponent
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/houdayer/include/Eigen/src/Core/StableNorm.h: In instantiation of ‘typename Eigen::NumTraits<typename Eigen::internal::traits::Scalar>::Real Eigen::internal::blueNorm_impl(const Eigen::EigenBase&) [with Derived = Eigen::Matrix<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >, -1, 1, 0, -1, 1>; typename Eigen::NumTraits<typename Eigen::internal::traits::Scalar>::Real = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >]’:
/home/houdayer/include/Eigen/src/Core/StableNorm.h:231:33: required from ‘typename Eigen::NumTraits<typename Eigen::internal::traits::Scalar>::Real Eigen::MatrixBase::blueNorm() const [with Derived = Eigen::Matrix<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >, -1, 1, 0, -1, 1>; typename Eigen::NumTraits<typename Eigen::internal::traits::Scalar>::Real = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >]’
/home/houdayer/include/unsupported/Eigen/src/LevenbergMarquardt/LMpar.h:74:12: required from ‘void Eigen::internal::lmpar2(const QRSolver&, const VectorType&, const VectorType&, typename VectorType::Scalar, typename VectorType::Scalar&, VectorType&) [with QRSolver = Eigen::ColPivHouseholderQR<Eigen::Matrix<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >, -1, -1, 0, -1, -1> >; VectorType = Eigen::Matrix<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >, -1, 1, 0, -1, 1>; typename VectorType::Scalar = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >]’
/home/houdayer/include/unsupported/Eigen/src/LevenbergMarquardt/LMonestep.h:92:21: required from ‘Eigen::LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt<_FunctorType>::minimizeOneStep(Eigen::LevenbergMarquardt<_FunctorType>::FVectorType&) [with _FunctorType = Eigen::NumericalDiff<polyquad::BaseDomain<Derived, T, Ndim, Norbits>::minimise(int) [with Derived = polyquad::TriDomain<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> > >; T = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >; int Ndim = 2; int Norbits = 3]::min_functor, Eigen::Forward>; Eigen::LevenbergMarquardt<_FunctorType>::FVectorType = Eigen::Matrix<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >, -1, 1, 0, -1, 1>; typename _FunctorType::JacobianType::Scalar = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >]’
/home/houdayer/include/unsupported/Eigen/src/LevenbergMarquardt/LevenbergMarquardt.h:286:18: required from ‘Eigen::LevenbergMarquardtSpace::Status Eigen::LevenbergMarquardt<_FunctorType>::minimize(Eigen::LevenbergMarquardt<_FunctorType>::FVectorType&) [with _FunctorType = Eigen::NumericalDiff<polyquad::BaseDomain<Derived, T, Ndim, Norbits>::minimise(int) [with Derived = polyquad::TriDomain<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> > >; T = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >; int Ndim = 2; int Norbits = 3]::min_functor, Eigen::Forward>; Eigen::LevenbergMarquardt<_FunctorType>::FVectorType = Eigen::Matrix<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >, -1, 1, 0, -1, 1>; typename _FunctorType::JacobianType::Scalar = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >]’
/home/houdayer/Polyquad-master/src/shapes/base.hpp:338:5: required from ‘std::tuple<T, Eigen::Matrix<RhsScalar, -1, 1, 0, -1, 1> > polyquad::BaseDomain<Derived, T, Ndim, Norbits>::minimise(int) [with Derived = polyquad::TriDomain<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> > >; T = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >; int Ndim = 2; int Norbits = 3]’
/home/houdayer/Polyquad-master/src/actions/find.hpp:124:22: required from ‘void polyquad::process_find(const boost::program_options::variables_map&) [with Domain = polyquad::TriDomain; T = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >]’
/home/houdayer/Polyquad-master/src/main.cpp:55:32: required from ‘void process_dispatch(const boost::program_options::variables_map&) [with Domain = polyquad::TriDomain; T = boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> >]’
/home/houdayer/Polyquad-master/src/main.cpp:84:5: required from here
/home/houdayer/include/Eigen/src/Core/StableNorm.h:136:57: error: ‘digits’ is not a member of ‘Eigen::NumTraits<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> > >’
136 | static const int it = NumTraits::digits(); // number of base-beta digits in mantissa
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/houdayer/include/Eigen/src/Core/StableNorm.h:137:63: error: ‘min_exponent’ is not a member of ‘Eigen::NumTraits<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> > >’
137 | static const int iemin = NumTraits::min_exponent(); // minimum exponent
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
/home/houdayer/include/Eigen/src/Core/StableNorm.h:138:63: error: ‘max_exponent’ is not a member of ‘Eigen::NumTraits<boost::multiprecision::number<boost::multiprecision::backends::cpp_bin_float<100> > >’
138 | static const int iemax = NumTraits::max_exponent(); // maximum exponent
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
make[2]: *** [CMakeFiles/polyquad.dir/build.make:63 : CMakeFiles/polyquad.dir/src/main.cpp.o] Erreur 1
make[1]: *** [CMakeFiles/Makefile2:76 : CMakeFiles/polyquad.dir/all] Erreur 2
make: *** [Makefile:84 : all] Erreur 2