<div dir="ltr"><div>Apologies, I botched the upload in -20 and the build failed. I've uploaded a version -21 to fix that.</div><div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><br></div></div></div></div><br></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Tue, Sep 9, 2025 at 11:47 PM Matthias Klose <<a href="mailto:doko@debian.org">doko@debian.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Control: reopen -1<br>
<br>
fyi, this still fails in Ubuntu with boost 1.88, see<br>
<a href="https://launchpad.net/ubuntu/+source/dolfin/2019.2.0~legacy20240219.1c52e83-19/+build/31141291" rel="noreferrer" target="_blank">https://launchpad.net/ubuntu/+source/dolfin/2019.2.0~legacy20240219.1c52e83-19/+build/31141291</a><br>
<br>
[...]<br>
cd "/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/dolfin" && /usr/bin/c++ <br>
-DDOLFIN_VERSION=\"2019.2.0.64.dev0\" -DHAS_CHOLMOD -DHAS_HDF5 -DHAS_MPI <br>
-DHAS_PETSC -DHAS_SCOTCH -DHAS_SLEPC -DHAS_UMFPACK -DHAS_ZLIB -DNDEBUG <br>
-Ddolfin_EXPORTS -I"/<<PKGBUILDDIR>>" <br>
-I"/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu" -isystem <br>
/usr/lib/python3/dist-packages/ffc/backends/ufc -isystem <br>
/usr/include/eigen3 -isystem /usr/include/hdf5/openmpi -isystem <br>
/usr/include/suitesparse -isystem /usr/include/scotch -isystem <br>
/usr/lib/x86_64-linux-gnu/openmpi/include -isystem <br>
/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi -isystem <br>
/usr/lib/slepcdir/slepc3.22/x86_64-linux-gnu-real/include -isystem <br>
/usr/lib/petscdir/petsc3.22/x86_64-linux-gnu-real/include -fpermissive <br>
-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer <br>
-ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong <br>
-fstack-clash-protection -Wformat -Werror=format-security <br>
-fcf-protection <br>
-fdebug-prefix-map=/<<PKGBUILDDIR>>=/usr/src/dolfin-2019.2.0~legacy20240219.1c52e83-19 <br>
-Wdate-time -D_FORTIFY_SOURCE=3 -O2 -g -DNDEBUG -std=c++11 -fPIC -MD -MT <br>
dolfin/CMakeFiles/dolfin.dir/math/Legendre.cpp.o -MF <br>
CMakeFiles/dolfin.dir/math/Legendre.cpp.o.d -o <br>
CMakeFiles/dolfin.dir/math/Legendre.cpp.o -c <br>
"/<<PKGBUILDDIR>>/dolfin/math/Legendre.cpp"<br>
In file included from <br>
/usr/include/boost/math/special_functions/math_fwd.hpp:27,<br>
                  from <br>
/usr/include/boost/math/special_functions/legendre.hpp:16,<br>
                  from /<<PKGBUILDDIR>>/dolfin/math/Legendre.cpp:24:<br>
/usr/include/boost/math/tools/config.hpp:28:6: warning: #warning <br>
"Boost.Math requires C++14" [-Wcpp]<br>
    28 | #    warning "Boost.Math requires C++14"<br>
       |      ^~~~~~~<br>
In file included from /usr/include/boost/math/tools/promotion.hpp:28,<br>
                  from <br>
/usr/include/boost/math/special_functions/math_fwd.hpp:28:<br>
/usr/include/boost/math/tools/type_traits.hpp:208:12: error: ‘is_final’ <br>
has not been declared in ‘std’<br>
   208 | using std::is_final;<br>
       |            ^~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:259:12: error: <br>
‘remove_cv_t’ has not been declared in ‘std’<br>
   259 | using std::remove_cv_t;<br>
       |            ^~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:261:12: error: <br>
‘remove_const_t’ has not been declared in ‘std’<br>
   261 | using std::remove_const_t;<br>
       |            ^~~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:263:12: error: <br>
‘remove_volatile_t’ has not been declared in ‘std’<br>
   263 | using std::remove_volatile_t;<br>
       |            ^~~~~~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:265:12: error: ‘add_cv_t’ <br>
has not been declared in ‘std’<br>
   265 | using std::add_cv_t;<br>
       |            ^~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:267:12: error: <br>
‘add_const_t’ has not been declared in ‘std’<br>
   267 | using std::add_const_t;<br>
       |            ^~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:269:12: error: <br>
‘add_volatile_t’ has not been declared in ‘std’<br>
   269 | using std::add_volatile_t;<br>
       |            ^~~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:273:12: error: <br>
‘remove_reference_t’ has not been declared in ‘std’<br>
   273 | using std::remove_reference_t;<br>
       |            ^~~~~~~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:275:12: error: <br>
‘add_lvalue_reference_t’ has not been declared in ‘std’<br>
   275 | using std::add_lvalue_reference_t;<br>
       |            ^~~~~~~~~~~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:277:12: error: <br>
‘add_rvalue_reference_t’ has not been declared in ‘std’<br>
   277 | using std::add_rvalue_reference_t;<br>
       |            ^~~~~~~~~~~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:281:12: error: <br>
‘remove_pointer_t’ has not been declared in ‘std’<br>
   281 | using std::remove_pointer_t;<br>
       |            ^~~~~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:283:12: error: <br>
‘add_pointer_t’ has not been declared in ‘std’<br>
   283 | using std::add_pointer_t;<br>
       |            ^~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:287:12: error: <br>
‘make_signed_t’ has not been declared in ‘std’<br>
   287 | using std::make_signed_t;<br>
       |            ^~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:289:12: error: <br>
‘make_unsigned_t’ has not been declared in ‘std’<br>
   289 | using std::make_unsigned_t;<br>
       |            ^~~~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:293:12: error: <br>
‘remove_extent_t’ has not been declared in ‘std’<br>
   293 | using std::remove_extent_t;<br>
       |            ^~~~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:295:12: error: <br>
‘remove_all_extents_t’ has not been declared in ‘std’<br>
   295 | using std::remove_all_extents_t;<br>
       |            ^~~~~~~~~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:299:12: error: ‘decay_t’ <br>
has not been declared in ‘std’<br>
   299 | using std::decay_t;<br>
       |            ^~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:301:12: error: <br>
‘enable_if_t’ has not been declared in ‘std’<br>
   301 | using std::enable_if_t;<br>
       |            ^~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:303:12: error: <br>
‘conditional_t’ has not been declared in ‘std’<br>
   303 | using std::conditional_t;<br>
       |            ^~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:305:12: error: <br>
‘common_type_t’ has not been declared in ‘std’<br>
   305 | using std::common_type_t;<br>
       |            ^~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:307:12: error: <br>
‘underlying_type_t’ has not been declared in ‘std’<br>
   307 | using std::underlying_type_t;<br>
       |            ^~~~~~~~~~~~~~~~~<br>
/usr/include/boost/math/tools/type_traits.hpp:402:60: error: ‘is_final’ <br>
is not a member of ‘boost::math’; did you mean ‘is_final_v’?<br>
   402 | BOOST_MATH_INLINE_CONSTEXPR bool is_final_v = <br>
boost::math::is_final<T>::value;<br>
       |                                                            ^~~~~~~~<br>
       | <br>
is_final_v<br>
/usr/include/boost/math/tools/type_traits.hpp:402:70: error: expected <br>
primary-expression before ‘>’ token<br>
   402 | BOOST_MATH_INLINE_CONSTEXPR bool is_final_v = <br>
boost::math::is_final<T>::value;<br>
       | <br>
      ^<br>
/usr/include/boost/math/tools/type_traits.hpp:402:73: error: ‘::value’ <br>
has not been declared<br>
   402 | BOOST_MATH_INLINE_CONSTEXPR bool is_final_v = <br>
boost::math::is_final<T>::value;<br>
       | <br>
         ^~~~~<br>
[ 75%] Building CXX object <br>
dolfin/CMakeFiles/dolfin.dir/mesh/BoundaryComputation.cpp.o<br>
cd "/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu/dolfin" && /usr/bin/c++ <br>
-DDOLFIN_VERSION=\"2019.2.0.64.dev0\" -DHAS_CHOLMOD -DHAS_HDF5 -DHAS_MPI <br>
-DHAS_PETSC -DHAS_SCOTCH -DHAS_SLEPC -DHAS_UMFPACK -DHAS_ZLIB -DNDEBUG <br>
-Ddolfin_EXPORTS -I"/<<PKGBUILDDIR>>" <br>
-I"/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu" -isystem <br>
/usr/lib/python3/dist-packages/ffc/backends/ufc -isystem <br>
/usr/include/eigen3 -isystem /usr/include/hdf5/openmpi -isystem <br>
/usr/include/suitesparse -isystem /usr/include/scotch -isystem <br>
/usr/lib/x86_64-linux-gnu/openmpi/include -isystem <br>
/usr/lib/x86_64-linux-gnu/openmpi/include/openmpi -isystem <br>
/usr/lib/slepcdir/slepc3.22/x86_64-linux-gnu-real/include -isystem <br>
/usr/lib/petscdir/petsc3.22/x86_64-linux-gnu-real/include -fpermissive <br>
-g -O2 -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer <br>
-ffile-prefix-map=/<<PKGBUILDDIR>>=. -fstack-protector-strong <br>
-fstack-clash-protection -Wformat -Werror=format-security <br>
-fcf-protection <br>
-fdebug-prefix-map=/<<PKGBUILDDIR>>=/usr/src/dolfin-2019.2.0~legacy20240219.1c52e83-19 <br>
-Wdate-time -D_FORTIFY_SOURCE=3 -O2 -g -DNDEBUG -std=c++11 -fPIC -MD -MT <br>
dolfin/CMakeFiles/dolfin.dir/mesh/BoundaryComputation.cpp.o -MF <br>
CMakeFiles/dolfin.dir/mesh/BoundaryComputation.cpp.o.d -o <br>
CMakeFiles/dolfin.dir/mesh/BoundaryComputation.cpp.o -c <br>
"/<<PKGBUILDDIR>>/dolfin/mesh/BoundaryComputation.cpp"<br>
In file included from <br>
/usr/include/boost/math/special_functions/gamma.hpp:30,<br>
                  from <br>
/usr/include/boost/math/special_functions/factorials.hpp:17,<br>
                  from <br>
/usr/include/boost/math/special_functions/legendre.hpp:17:<br>
/usr/include/boost/math/special_functions/trunc.hpp:324:44: error: <br>
‘enable_if_t’ in namespace ‘boost::math’ does not name a template type; <br>
did you mean ‘enable_if’?<br>
   324 | BOOST_MATH_GPU_ENABLED inline <br>
boost::math::enable_if_t<boost::math::is_constructible_v<int, T>, int><br>
       |                                            ^~~~~~~~~~~<br>
       |                                            enable_if<br>
/usr/include/boost/math/special_functions/trunc.hpp:331:44: error: <br>
‘enable_if_t’ in namespace ‘boost::math’ does not name a template type; <br>
did you mean ‘enable_if’?<br>
   331 | BOOST_MATH_GPU_ENABLED inline <br>
boost::math::enable_if_t<!boost::math::is_constructible_v<int, T>, int><br>
       |                                            ^~~~~~~~~~~<br>
       |                                            enable_if<br>
/usr/include/boost/math/special_functions/trunc.hpp:339:44: error: <br>
‘enable_if_t’ in namespace ‘boost::math’ does not name a template type; <br>
did you mean ‘enable_if’?<br>
   339 | BOOST_MATH_GPU_ENABLED inline <br>
boost::math::enable_if_t<boost::math::is_constructible_v<long, T>, long><br>
       |                                            ^~~~~~~~~~~<br>
       |                                            enable_if<br>
/usr/include/boost/math/special_functions/trunc.hpp:346:44: error: <br>
‘enable_if_t’ in namespace ‘boost::math’ does not name a template type; <br>
did you mean ‘enable_if’?<br>
   346 | BOOST_MATH_GPU_ENABLED inline <br>
boost::math::enable_if_t<!boost::math::is_constructible_v<long, T>, long><br>
       |                                            ^~~~~~~~~~~<br>
       |                                            enable_if<br>
/usr/include/boost/math/special_functions/trunc.hpp:354:44: error: <br>
‘enable_if_t’ in namespace ‘boost::math’ does not name a template type; <br>
did you mean ‘enable_if’?<br>
   354 | BOOST_MATH_GPU_ENABLED inline <br>
boost::math::enable_if_t<boost::math::is_constructible_v<long long, T>, <br>
long long><br>
       |                                            ^~~~~~~~~~~<br>
       |                                            enable_if<br>
/usr/include/boost/math/special_functions/trunc.hpp:361:53: error: <br>
‘enable_if_t’ in namespace ‘boost::math’ does not name a template type; <br>
did you mean ‘enable_if’?<br>
   361 | BOOST_MATH_GPU_ENABLED inline typename <br>
boost::math::enable_if_t<!boost::math::is_constructible_v<long long, T>, <br>
long long><br>
       |                                                     ^~~~~~~~~~~<br>
       |                                                     enable_if<br>
/usr/include/boost/math/special_functions/trunc.hpp:361:64: error: <br>
expected unqualified-id before ‘<’ token<br>
   361 | BOOST_MATH_GPU_ENABLED inline typename <br>
boost::math::enable_if_t<!boost::math::is_constructible_v<long long, T>, <br>
long long><br>
       |                                                                ^<br>
/usr/include/boost/math/special_functions/trunc.hpp:369:76: error: <br>
‘enable_if_t’ in namespace ‘boost::math’ does not name a template type; <br>
did you mean ‘enable_if’?<br>
   369 | BOOST_MATH_GPU_ENABLED [[deprecated("Use llconvert")]] inline <br>
boost::math::enable_if_t<boost::math::is_constructible_v<long long, T>, <br>
long long><br>
       | <br>
            ^~~~~~~~~~~<br>
       | <br>
            enable_if<br>
/usr/include/boost/math/special_functions/trunc.hpp:376:85: error: <br>
‘enable_if_t’ in namespace ‘boost::math’ does not name a template type; <br>
did you mean ‘enable_if’?<br>
   376 | BOOST_MATH_GPU_ENABLED [[deprecated("Use llconvert")]] inline <br>
typename boost::math::enable_if_t<!boost::math::is_constructible_v<long <br>
long, T>, long long><br>
       | <br>
                     ^~~~~~~~~~~<br>
       | <br>
                     enable_if<br>
/usr/include/boost/math/special_functions/trunc.hpp:376:96: error: <br>
expected unqualified-id before ‘<’ token<br>
   376 | BOOST_MATH_GPU_ENABLED [[deprecated("Use llconvert")]] inline <br>
typename boost::math::enable_if_t<!boost::math::is_constructible_v<long <br>
long, T>, long long><br>
       | <br>
                                ^<br>
In file included from <br>
/usr/include/boost/math/special_functions/detail/polygamma.hpp:24,<br>
                  from <br>
/usr/include/boost/math/special_functions/polygamma.hpp:15,<br>
                  from <br>
/usr/include/boost/math/special_functions/gamma.hpp:42:<br>
/usr/include/boost/math/special_functions/pow.hpp:126:79: error: <br>
redeclaration ‘constexpr typename <br>
boost::math::tools::promote_args<T2>::type boost::math::pow(T, const <br>
Policy&)’ differs in ‘constexpr’ from previous declaration<br>
   126 | BOOST_MATH_GPU_ENABLED constexpr inline typename <br>
tools::promote_args<T>::type pow(T base, const Policy& policy)<br>
       | <br>
               ^~~<br>
/usr/include/boost/math/special_functions/math_fwd.hpp:1173:79: note: <br>
previous declaration ‘boost::math::tools::promote_args_t<T> <br>
boost::math::pow(T, const Policy&)’<br>
  1173 |    BOOST_MATH_GPU_ENABLED BOOST_MATH_CXX14_CONSTEXPR <br>
tools::promote_args_t<T> pow(T base, const Policy& policy);<br>
       | <br>
               ^~~<br>
/usr/include/boost/math/special_functions/pow.hpp:133:79: error: <br>
redeclaration ‘constexpr typename <br>
boost::math::tools::promote_args<T2>::type boost::math::pow(T)’ differs <br>
in ‘constexpr’ from previous declaration<br>
   133 | BOOST_MATH_GPU_ENABLED constexpr inline typename <br>
tools::promote_args<T>::type pow(T base)<br>
       | <br>
               ^~~<br>
/usr/include/boost/math/special_functions/math_fwd.hpp:1176:79: note: <br>
previous declaration ‘boost::math::tools::promote_args_t<T> <br>
boost::math::pow(T)’<br>
  1176 |    BOOST_MATH_GPU_ENABLED BOOST_MATH_CXX14_CONSTEXPR <br>
tools::promote_args_t<T> pow(T base);<br>
       | <br>
               ^~~<br>
/usr/include/boost/math/tools/promotion.hpp: In instantiation of ‘struct <br>
boost::math::tools::promote_args_permissive<long double, long double>’:<br>
/usr/include/boost/math/tools/promotion.hpp:105:16:   required from <br>
‘struct boost::math::tools::promote_args_permissive<long double, long <br>
double, long double>’<br>
   105 |          using type = typename pa2_integral_already_removed<<br>
       |                ^~~~<br>
/usr/include/boost/math/tools/promotion.hpp:119:16:   required from <br>
‘struct boost::math::tools::promote_args<long double, long double, long <br>
double>’<br>
   119 |          using type = typename <br>
promote_args_permissive<Args...>::type;<br>
       |                ^~~~<br>
/usr/include/boost/math/tools/promotion.hpp:129:13:   required by <br>
substitution of ‘template<class ... Args> using <br>
boost::math::tools::promote_args_t = typename <br>
boost::math::tools::promote_args::type [with Args = {long double, long <br>
double, long double}]’<br>
   129 |       using promote_args_t = typename promote_args<Args...>::type;<br>
       |             ^~~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:28:4:   required <br>
by substitution of ‘template<class T1, class T2, class T3> <br>
boost::math::tools::promote_args_t<RT1, RT2, A> <br>
boost::math::legendre_next(unsigned int, T1, T2, T3) [with T1 = long <br>
double; T2 = long double; T3 = long double]’<br>
    28 |    legendre_next(unsigned l, T1 x, T2 Pl, T3 Plm1)<br>
       |    ^~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:69:53:   required <br>
from ‘T boost::math::detail::legendre_imp(unsigned int, T, const <br>
Policy&, bool) [with T = long double; Policy = <br>
boost::math::policies::policy<boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy>]’<br>
    69 |       p1 = static_cast<T>(boost::math::legendre_next(n, x, p0, <br>
p1));<br>
       |                           ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:233:88: <br>
required from ‘typename <br>
std::enable_if<boost::math::policies::is_policy<Policy>::value, typename <br>
boost::math::tools::promote_args<T>::type>::type <br>
boost::math::legendre_p(int, T, const Policy&) [with T = double; Policy <br>
= policies::policy<policies::default_policy, policies::default_policy, <br>
policies::default_policy, policies::default_policy, <br>
policies::default_policy, policies::default_policy, <br>
policies::default_policy, policies::default_policy, <br>
policies::default_policy, policies::default_policy, <br>
policies::default_policy>; typename <br>
std::enable_if<policies::is_policy<Policy>::value, typename <br>
tools::promote_args<T>::type>::type = double; typename <br>
tools::promote_args<T>::type = double]’<br>
   233 |       return policies::checked_narrowing_cast<result_type, <br>
Policy>(detail::legendre_imp(-l-1, static_cast<value_type>(x), pol, <br>
false), function);<br>
       | <br>
    ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:254:34: <br>
required from ‘boost::math::tools::promote_args_t<RT> <br>
boost::math::legendre_p(int, T) [with T = double; <br>
tools::promote_args_t<RT> = double]’<br>
   254 |    return boost::math::legendre_p(l, x, policies::policy<>());<br>
       |           ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
/<<PKGBUILDDIR>>/dolfin/math/Legendre.cpp:35:33:   required from here<br>
    35 |   return boost::math::legendre_p(n, x);<br>
       |          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~<br>
/usr/include/boost/math/tools/promotion.hpp:105:16: error: no type named <br>
‘type’ in ‘struct boost::math::tools::pa2_integral_already_removed<long <br>
double, long double, true>’<br>
   105 |          using type = typename pa2_integral_already_removed<<br>
       |                ^~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp: In instantiation <br>
of ‘T boost::math::detail::legendre_imp(unsigned int, T, const Policy&, <br>
bool) [with T = long double; Policy = <br>
boost::math::policies::policy<boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy>]’:<br>
/usr/include/boost/math/special_functions/legendre.hpp:233:88: <br>
required from ‘typename <br>
std::enable_if<boost::math::policies::is_policy<Policy>::value, typename <br>
boost::math::tools::promote_args<T>::type>::type <br>
boost::math::legendre_p(int, T, const Policy&) [with T = double; Policy <br>
= policies::policy<policies::default_policy, policies::default_policy, <br>
policies::default_policy, policies::default_policy, <br>
policies::default_policy, policies::default_policy, <br>
policies::default_policy, policies::default_policy, <br>
policies::default_policy, policies::default_policy, <br>
policies::default_policy>; typename <br>
std::enable_if<policies::is_policy<Policy>::value, typename <br>
tools::promote_args<T>::type>::type = double; typename <br>
tools::promote_args<T>::type = double]’<br>
   233 |       return policies::checked_narrowing_cast<result_type, <br>
Policy>(detail::legendre_imp(-l-1, static_cast<value_type>(x), pol, <br>
false), function);<br>
       | <br>
    ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:254:34: <br>
required from ‘boost::math::tools::promote_args_t<RT> <br>
boost::math::legendre_p(int, T) [with T = double; <br>
tools::promote_args_t<RT> = double]’<br>
   254 |    return boost::math::legendre_p(l, x, policies::policy<>());<br>
       |           ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
/<<PKGBUILDDIR>>/dolfin/math/Legendre.cpp:35:33:   required from here<br>
    35 |   return boost::math::legendre_p(n, x);<br>
       |          ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:69:53: error: no <br>
matching function for call to ‘legendre_next(unsigned int&, long <br>
double&, long double&, long double&)’<br>
    69 |       p1 = static_cast<T>(boost::math::legendre_next(n, x, p0, <br>
p1));<br>
       |                           ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:69:53: note: <br>
there are 2 candidates<br>
/usr/include/boost/math/special_functions/legendre.hpp:28:4: note: <br>
candidate 1: ‘template<class T1, class T2, class T3> <br>
boost::math::tools::promote_args_t<RT1, RT2, A> <br>
boost::math::legendre_next(unsigned int, T1, T2, T3)’<br>
    28 |    legendre_next(unsigned l, T1 x, T2 Pl, T3 Plm1)<br>
       |    ^~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:28:4: note: <br>
substitution of deduced template arguments resulted in errors seen above<br>
/usr/include/boost/math/special_functions/legendre.hpp:299:4: note: <br>
candidate 2: ‘template<class T1, class T2, class T3> <br>
boost::math::tools::promote_args_t<RT1, RT2, A> <br>
boost::math::legendre_next(unsigned int, unsigned int, T1, T2, T3)’<br>
   299 |    legendre_next(unsigned l, unsigned m, T1 x, T2 Pl, T3 Plm1)<br>
       |    ^~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:299:4: note: <br>
candidate expects 5 arguments, 4 provided<br>
/usr/include/boost/math/special_functions/legendre.hpp: In instantiation <br>
of ‘T boost::math::detail::legendre_p_imp(int, int, T, T, const Policy&) <br>
[with T = long double; Policy = <br>
boost::math::policies::policy<boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy>]’:<br>
/usr/include/boost/math/special_functions/legendre.hpp:368:25: <br>
required from ‘T boost::math::detail::legendre_p_imp(int, int, T, const <br>
Policy&) [with T = long double; Policy = <br>
boost::math::policies::policy<boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy>]’<br>
   368 |    return legendre_p_imp(l, m, x, static_cast<T>(pow(1 - x*x, <br>
T(abs(m))/2)), pol);<br>
       | <br>
~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:379:87: <br>
required from ‘boost::math::tools::promote_args_t<RT> <br>
boost::math::legendre_p(int, int, T, const Policy&) [with T = double; <br>
Policy = policies::policy<policies::default_policy, <br>
policies::default_policy, policies::default_policy, <br>
policies::default_policy, policies::default_policy, <br>
policies::default_policy, policies::default_policy, <br>
policies::default_policy, policies::default_policy, <br>
policies::default_policy, policies::default_policy>; <br>
tools::promote_args_t<RT> = double]’<br>
   379 |    return policies::checked_narrowing_cast<result_type, <br>
Policy>(detail::legendre_p_imp(l, m, static_cast<value_type>(x), pol), <br>
"boost::math::legendre_p<%1%>(int, int, %1%)");<br>
       | <br>
~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:386:34: <br>
required from ‘boost::math::tools::promote_args_t<RT> <br>
boost::math::legendre_p(int, int, T) [with T = double; <br>
tools::promote_args_t<RT> = double]’<br>
   386 |    return boost::math::legendre_p(l, m, x, policies::policy<>());<br>
       |           ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
/<<PKGBUILDDIR>>/dolfin/math/Legendre.cpp:41:34:   required from here<br>
    41 |   return -boost::math::legendre_p(n, 1, x)/(std::sqrt(1.0 - x*x));<br>
       |           ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:335:46: error: no <br>
matching function for call to ‘tgamma_ratio(long double, long double, <br>
const <br>
boost::math::policies::policy<boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy, <br>
boost::math::policies::default_policy>&)’<br>
   335 |       return sign * <br>
boost::math::tgamma_ratio(static_cast<T>(l+m+1), static_cast<T>(l+1-m), <br>
pol) * legendre_p_imp(l, -m, x, sin_theta_power, pol);<br>
       | <br>
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:335:46: note: <br>
there are 2 candidates<br>
/usr/include/boost/math/special_functions/gamma.hpp:2514:4: note: <br>
candidate 1: ‘template<class T1, class T2> <br>
boost::math::tools::promote_args_t<RT1, RT2> <br>
boost::math::tgamma_ratio(T1, T2)’<br>
  2514 |    tgamma_ratio(T1 a, T2 b)<br>
       |    ^~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/gamma.hpp:2514:4: note: <br>
candidate expects 2 arguments, 3 provided<br>
/usr/include/boost/math/special_functions/gamma.hpp:2499:4: note: <br>
candidate 2: ‘template<class T1, class T2, class Policy> <br>
boost::math::tools::promote_args_t<RT1, RT2> <br>
boost::math::tgamma_ratio(T1, T2, const Policy&)’<br>
  2499 |    tgamma_ratio(T1 a, T2 b, const Policy&)<br>
       |    ^~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/gamma.hpp:2499:4: note: <br>
template argument deduction/substitution failed:<br>
/usr/include/boost/math/special_functions/legendre.hpp:357:38: error: no <br>
matching function for call to ‘legendre_next(int&, int&, long double&, <br>
long double&, long double&)’<br>
   357 |       p1 = boost::math::legendre_next(n, m, x, p0, p1);<br>
       |            ~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:357:38: note: <br>
there are 2 candidates<br>
/usr/include/boost/math/special_functions/legendre.hpp:28:4: note: <br>
candidate 1: ‘template<class T1, class T2, class T3> <br>
boost::math::tools::promote_args_t<RT1, RT2, A> <br>
boost::math::legendre_next(unsigned int, T1, T2, T3)’<br>
    28 |    legendre_next(unsigned l, T1 x, T2 Pl, T3 Plm1)<br>
       |    ^~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:28:4: note: <br>
candidate expects 4 arguments, 5 provided<br>
/usr/include/boost/math/special_functions/legendre.hpp:299:4: note: <br>
candidate 2: ‘template<class T1, class T2, class T3> <br>
boost::math::tools::promote_args_t<RT1, RT2, A> <br>
boost::math::legendre_next(unsigned int, unsigned int, T1, T2, T3)’<br>
   299 |    legendre_next(unsigned l, unsigned m, T1 x, T2 Pl, T3 Plm1)<br>
       |    ^~~~~~~~~~~~~<br>
/usr/include/boost/math/special_functions/legendre.hpp:299:4: note: <br>
template argument deduction/substitution failed:<br>
make[4]: *** [dolfin/CMakeFiles/dolfin.dir/build.make:2462: <br>
dolfin/CMakeFiles/dolfin.dir/math/Legendre.cpp.o] Error 1<br>
make[4]: *** Waiting for unfinished jobs....<br>
make[4]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'<br>
make[3]: *** [CMakeFiles/Makefile2:1888: <br>
dolfin/CMakeFiles/dolfin.dir/all] Error 2<br>
make[3]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'<br>
make[2]: *** [Makefile:149: all] Error 2<br>
make[2]: Leaving directory '/<<PKGBUILDDIR>>/obj-x86_64-linux-gnu'<br>
dh_auto_build: error: cd obj-x86_64-linux-gnu && make -j4 <br>
"INSTALL=install --strip-program=true" VERBOSE=1 returned exit code 2<br>
make[1]: *** [debian/rules:256: override_dh_auto_build] Error 25<br>
make[1]: Leaving directory '/<<PKGBUILDDIR>>'<br>
make: *** [debian/rules:213: binary] Error 2<br>
dpkg-buildpackage: error: debian/rules binary subprocess returned exit <br>
status 2<br>
</blockquote></div>