mirror of
https://gitlab.com/libeigen/eigen.git
synced 2024-12-21 07:19:46 +08:00
Fix for the HIP build+test errors.
Recent changes have introduced the following build error when compiling with HIPCC --------- unsupported/test/../../Eigen/src/Core/GenericPacketMath.h:254:58: error: 'ldexp': no overloaded function has restriction specifiers that are compatible with the ambient context 'pldexp' --------- The fix for the error is to pick the math function(s) from the global namespace (where they are declared as device functions in the HIP header files) when compiling with HIPCC.
This commit is contained in:
parent
956131d0e6
commit
312c8e77ff
@ -247,7 +247,8 @@ pshiftleft(const long int& a) { return a << N; }
|
|||||||
template <typename Packet>
|
template <typename Packet>
|
||||||
EIGEN_DEVICE_FUNC inline Packet pfrexp(const Packet& a, Packet& exponent) {
|
EIGEN_DEVICE_FUNC inline Packet pfrexp(const Packet& a, Packet& exponent) {
|
||||||
int exp;
|
int exp;
|
||||||
Packet result = std::frexp(a, &exp);
|
EIGEN_USING_STD_MATH(frexp);
|
||||||
|
Packet result = frexp(a, &exp);
|
||||||
exponent = static_cast<Packet>(exp);
|
exponent = static_cast<Packet>(exp);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -256,7 +257,10 @@ EIGEN_DEVICE_FUNC inline Packet pfrexp(const Packet& a, Packet& exponent) {
|
|||||||
* See https://en.cppreference.com/w/cpp/numeric/math/ldexp
|
* See https://en.cppreference.com/w/cpp/numeric/math/ldexp
|
||||||
*/
|
*/
|
||||||
template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
|
template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
|
||||||
pldexp(const Packet &a, const Packet &exponent) { return std::ldexp(a, static_cast<int>(exponent)); }
|
pldexp(const Packet &a, const Packet &exponent) {
|
||||||
|
EIGEN_USING_STD_MATH(ldexp);
|
||||||
|
return ldexp(a, static_cast<int>(exponent));
|
||||||
|
}
|
||||||
|
|
||||||
/** \internal \returns zeros */
|
/** \internal \returns zeros */
|
||||||
template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
|
template<typename Packet> EIGEN_DEVICE_FUNC inline Packet
|
||||||
|
Loading…
Reference in New Issue
Block a user