
On 04/02/2020 15:37, Alex.Durie via Boost-users wrote:
Thanks John,
The good news is that Intel on Linux does support GCC's __float128 type, so my suggestion would be to: * Remove the #define BOOST_MP_USE_QUAD * Build with -std=gnu++14 rather than -std=c++14 * Remove the -Qoption,cpp,--extended_float_type option.
Unfortunately that didn't work, I get the new compiler error;
It shouldn't be required but try adding -DBOOST_HAS_FLOAT128 to the command line. John.
/home/alex/boost/boost_1_71_0/boost/multiprecision/detail/number_base.hpp(216): error: static assertion failed with "is_integral<T>::value || is_enum<T>::value || std::numeric_limits<T>::is_specialized" BOOST_STATIC_ASSERT(is_integral<T>::value || is_enum<T>::value || std::numeric_limits<T>::is_specialized);
Are you able to help?
Many thanks,
Alex
------------------------------------------------------------------------ *From:* Boost-users <boost-users-bounces@lists.boost.org> on behalf of boost-users-request@lists.boost.org <boost-users-request@lists.boost.org> *Sent:* 04 February 2020 10:56 *To:* boost-users@lists.boost.org <boost-users@lists.boost.org> *Subject:* Boost-users Digest, Vol 5318, Issue 1 CAUTION: This mail comes from outside the University. Please consider this before opening attachments, clicking links, or acting on the content.
Send Boost-users mailing list submissions to boost-users@lists.boost.org
To subscribe or unsubscribe via the World Wide Web, visit https://lists.boost.org/mailman/listinfo.cgi/boost-users or, via email, send a message with subject or body 'help' to boost-users-request@lists.boost.org
You can reach the person managing the list at boost-users-owner@lists.boost.org
When replying, please edit your Subject line so it is more specific than "Re: Contents of Boost-users digest..."
Today's Topics:
1. boost float128 and Intel's _Quad with Tux Eigen (Alex.Durie) 2. [boost build] - How to create symbols (.pdb) files on windows using VS2017 Community Edition? (Eko palypse) 3. Re: [boost build] - How to create symbols (.pdb) files on windows using VS2017 Community Edition? (Mateusz Loskot) 4. Re: [boost build] - How to create symbols (.pdb) files on windows using VS2017 Community Edition? (Eko palypse) 5. Re: boost float128 and Intel's _Quad with Tux Eigen (John Maddock)
----------------------------------------------------------------------
Message: 1 Date: Mon, 3 Feb 2020 21:33:13 +0000 From: Alex.Durie <alex.durie@open.ac.uk> To: "boost-users@lists.boost.org" <boost-users@lists.boost.org> Subject: [Boost-users] boost float128 and Intel's _Quad with Tux Eigen Message-ID: <CWLP265MB0244A9FE67071B7EE7C7E2BFA3000@CWLP265MB0244.GBRP265.PROD.OUTLOOK.COM>
Content-Type: text/plain; charset="iso-8859-1"
Hi, I have written a short program utilising boost::float128 together with tux Eigen which successfully compiles and runs using g++, however it fails when I use icc. The compiler error is
/home/alex/boost/boost_1_71_0/boost/multiprecision/float128.hpp(727): error: no suitable constructor exists to convert from "const _Quad" to "boost::multiprecision::number<boost::multiprecision::backends::float128_backend, boost::multiprecision::et_off>" static number_type (min)() BOOST_NOEXCEPT { return BOOST_MP_QUAD_MIN; } ^ How can I resolve this?
My example code is; #include <iostream> #include <cmath> #include <Eigen/Dense> #include <Eigen/Eigenvalues> #include <iomanip> #include <boost/cstdfloat.hpp> #include <boost/multiprecision/float128.hpp> #include <boost/math/special_functions.hpp> #include <boost/math/constants/constants.hpp> #include <quadmath.h> #define BOOST_MP_USE_QUAD
using namespace Eigen; using namespace std;
int main(){ typedef Matrix<complex<boost::multiprecision::float128>, Dynamic, Dynamic> MatrixXcmp; MatrixXcmp C = MatrixXcmp::Random(8,8); cout<<setprecision(128)<<C<<endl<<endl; ComplexEigenSolver<MatrixXcmp> ces; ces.compute(C); return 0; }
It only fails compilation when I put in the line 'ces.compute(C);'.
I compile with icpc quadtest.cpp -std=c++14 -Qoption,cpp,--extended_float_type -O2 -DMKL_LP64 -lmkl_intel_lp64 -fp-model precise -lmkl_sequential -lmkl_core -lpthread -lm -ldl -lquadmath
Many thanks in advance,
Alex