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;
/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 on behalf of boost-users-request@lists.boost.org
Sent: 04 February 2020 10:56
To: 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
To: "boost-users@lists.boost.org"
Subject: [Boost-users] boost float128 and Intel's _Quad with Tux Eigen
Message-ID:
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"
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
#include
#include <iomanip>
#include
#include
#include
#include
#include
#define BOOST_MP_USE_QUAD
using namespace Eigen;
using namespace std;
int main(){
typedef Matrixboost::multiprecision::float128, Dynamic, Dynamic> MatrixXcmp;
MatrixXcmp C = MatrixXcmp::Random(8,8);
cout<