Boost logo

Boost Users :

From: John Maddock (jz.maddock_at_[hidden])
Date: 2020-02-04 16:46:11


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_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 mailing list
> Boost-users_at_[hidden]
> https://lists.boost.org/mailman/listinfo.cgi/boost-users


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