|
Boost Users : |
From: Alex.Durie (alex.durie_at_[hidden])
Date: 2020-02-04 15:37:32
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 <boost-users-bounces_at_[hidden]> on behalf of boost-users-request_at_[hidden] <boost-users-request_at_[hidden]>
Sent: 04 February 2020 10:56
To: boost-users_at_[hidden] <boost-users_at_[hidden]>
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_at_[hidden]
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_at_[hidden]
You can reach the person managing the list at
boost-users-owner_at_[hidden]
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_at_[hidden]>
To: "boost-users_at_[hidden]" <boost-users_at_[hidden]>
Subject: [Boost-users] boost float128 and Intel's _Quad with Tux Eigen
Message-ID:
<CWLP265MB0244A9FE67071B7EE7C7E2BFA3000_at_[hidden]>
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
-------------- next part --------------
HTML attachment scrubbed and removed
------------------------------
Message: 2
Date: Mon, 3 Feb 2020 23:23:31 +0100
From: Eko palypse <ekopalypse_at_[hidden]>
To: boost-users_at_[hidden]
Subject: [Boost-users] [boost build] - How to create symbols (.pdb)
files on windows using VS2017 Community Edition?
Message-ID:
<CAD8XV+3=PM0yvD5W+RP+dGDubUB9gJcsvS+BTci893zc7y08JQ_at_[hidden]>
Content-Type: text/plain; charset="utf-8"
How can I build pdb files using b2 tool?
If I run b2 -a --with-regex toolset=msvc-14.1 debug-symbols=on
address-model=64 architecture=ia64 variant=debug
it creates the needed lib but no pdb files are created.
Thank you
Eren
-------------- next part --------------
HTML attachment scrubbed and removed
------------------------------
Message: 3
Date: Tue, 4 Feb 2020 00:06:43 +0100
From: Mateusz Loskot <mateusz_at_[hidden]>
To: boost-users_at_[hidden]
Subject: Re: [Boost-users] [boost build] - How to create symbols
(.pdb) files on windows using VS2017 Community Edition?
Message-ID:
<CABUeae_nDj4CaC0+_gSBjEts_ebfEfkf2rVb7jXhxGVFADr64g_at_[hidden]>
Content-Type: text/plain; charset="UTF-8"
On Mon, 3 Feb 2020 at 23:23, Eko palypse via Boost-users
<boost-users_at_[hidden]> wrote:
>
> How can I build pdb files using b2 tool?
> If I run b2 -a --with-regex toolset=msvc-14.1 debug-symbols=on address-model=64 architecture=ia64 variant=debug
> it creates the needed lib but no pdb files are created.
Additionally to
debug-symbols=on
add
debug-store=database
You should find PDBs in sub-folder(s) called debug-store-database.
You may find some additional useful info here
https://github.com/boostorg/build/issues/492
Best regards,
-- Mateusz Loskot, http://mateusz.loskot.net ------------------------------ Message: 4 Date: Tue, 4 Feb 2020 00:28:37 +0100 From: Eko palypse <ekopalypse_at_[hidden]> To: boost-users_at_[hidden] Subject: Re: [Boost-users] [boost build] - How to create symbols (.pdb) files on windows using VS2017 Community Edition? Message-ID: <CAD8XV+0zHmkbsGWJzF2ToiAPWfOXfPVbZM1KbHn0-yHQtrdpEQ_at_[hidden]> Content-Type: text/plain; charset="utf-8" Thank you very much Mateusz, works like a charm. Thank you Eren -------------- next part -------------- HTML attachment scrubbed and removed ------------------------------ Message: 5 Date: Tue, 4 Feb 2020 10:56:54 +0000 From: John Maddock <jz.maddock_at_[hidden]> To: "Alex.Durie via Boost-users" <boost-users_at_[hidden]> Subject: Re: [Boost-users] boost float128 and Intel's _Quad with Tux Eigen Message-ID: <6894ea21-796d-30b9-9375-fee540fa6ef5_at_[hidden]> Content-Type: text/plain; charset=windows-1252; format=flowed On 03/02/2020 21:33, Alex.Durie via Boost-users wrote: > 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? I fear due to a lack of consistent testing support for the Intel compiler, we may well have dropped the ball and broken support for Intel's _Quad type. 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. HTH, John. > > 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 > > _______________________________________________ > Boost-users mailing list > Boost-users_at_[hidden] > https://lists.boost.org/mailman/listinfo.cgi/boost-users ------------------------------ Subject: Digest Footer _______________________________________________ Boost-users mailing list Boost-users_at_[hidden] https://lists.boost.org/mailman/listinfo.cgi/boost-users ------------------------------ End of Boost-users Digest, Vol 5318, Issue 1 ********************************************
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net