mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
Special function implementations for half/bfloat16 packets.
Current implementations fail to consider half-float packets, only half-float scalars. Added specializations for packets on AVX, AVX512 and NEON. Added tests to `special_packetmath`. The current `special_functions` tests would fail for half and bfloat16 due to lack of precision. The NEON tests also fail with precision issues and due to different handling of `sqrt(inf)`, so special functions bessel, ndtri have been disabled. Tested with AVX, AVX512.
This commit is contained in:
@@ -61,23 +61,36 @@ namespace Eigen {
|
||||
}
|
||||
|
||||
#include "src/SpecialFunctions/BesselFunctionsImpl.h"
|
||||
#include "src/SpecialFunctions/BesselFunctionsPacketMath.h"
|
||||
#include "src/SpecialFunctions/BesselFunctionsBFloat16.h"
|
||||
#include "src/SpecialFunctions/BesselFunctionsHalf.h"
|
||||
#include "src/SpecialFunctions/BesselFunctionsPacketMath.h"
|
||||
#include "src/SpecialFunctions/BesselFunctionsFunctors.h"
|
||||
#include "src/SpecialFunctions/BesselFunctionsArrayAPI.h"
|
||||
#include "src/SpecialFunctions/SpecialFunctionsImpl.h"
|
||||
#if defined(EIGEN_HIPCC)
|
||||
#include "src/SpecialFunctions/HipVectorCompatibility.h"
|
||||
#endif
|
||||
#include "src/SpecialFunctions/SpecialFunctionsPacketMath.h"
|
||||
#include "src/SpecialFunctions/SpecialFunctionsBFloat16.h"
|
||||
#include "src/SpecialFunctions/SpecialFunctionsHalf.h"
|
||||
#include "src/SpecialFunctions/SpecialFunctionsPacketMath.h"
|
||||
#include "src/SpecialFunctions/SpecialFunctionsFunctors.h"
|
||||
#include "src/SpecialFunctions/SpecialFunctionsArrayAPI.h"
|
||||
|
||||
#if defined EIGEN_VECTORIZE_AVX512
|
||||
#include "src/SpecialFunctions/arch/AVX/BesselFunctions.h"
|
||||
#include "src/SpecialFunctions/arch/AVX/SpecialFunctions.h"
|
||||
#include "src/SpecialFunctions/arch/AVX512/BesselFunctions.h"
|
||||
#include "src/SpecialFunctions/arch/AVX512/SpecialFunctions.h"
|
||||
#elif defined EIGEN_VECTORIZE_AVX
|
||||
#include "src/SpecialFunctions/arch/AVX/BesselFunctions.h"
|
||||
#include "src/SpecialFunctions/arch/AVX/SpecialFunctions.h"
|
||||
#elif defined EIGEN_VECTORIZE_NEON
|
||||
#include "src/SpecialFunctions/arch/NEON/BesselFunctions.h"
|
||||
#include "src/SpecialFunctions/arch/NEON/SpecialFunctions.h"
|
||||
#endif
|
||||
|
||||
#if defined EIGEN_VECTORIZE_GPU
|
||||
#include "src/SpecialFunctions/arch/GPU/GpuSpecialFunctions.h"
|
||||
#include "src/SpecialFunctions/arch/GPU/SpecialFunctions.h"
|
||||
#endif
|
||||
|
||||
namespace Eigen {
|
||||
|
||||
Reference in New Issue
Block a user