|
@@ -1,5 +1,11 @@
|
|
#include <kernels.h>
|
|
#include <kernels.h>
|
|
#include <template-kernels.hpp>
|
|
#include <template-kernels.hpp>
|
|
|
|
+#define VECDIM 4
|
|
|
|
+
|
|
|
|
+#ifdef __AVX512F__
|
|
|
|
+#undef VECDIM
|
|
|
|
+#define VECDIM 8
|
|
|
|
+#endif
|
|
|
|
|
|
#ifdef __cplusplus
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
extern "C" {
|
|
@@ -10,7 +16,7 @@ void helm3d_f_(const int32_t* nd, const float* zk, const float* sources, const f
|
|
}
|
|
}
|
|
|
|
|
|
void helm3d_vec_f_(const int32_t* nd, const float* zk, const float* sources, const float* charge, const int32_t* ns, const float* ztarg, const int32_t* nt, float* pot, const float* thresh) {
|
|
void helm3d_vec_f_(const int32_t* nd, const float* zk, const float* sources, const float* charge, const int32_t* ns, const float* ztarg, const int32_t* nt, float* pot, const float* thresh) {
|
|
- helm3d_vec<float,4>(nd, zk, sources, charge, ns, ztarg, nt, pot, thresh);
|
|
|
|
|
|
+ helm3d_vec<float,VECDIM>(nd, zk, sources, charge, ns, ztarg, nt, pot, thresh);
|
|
}
|
|
}
|
|
|
|
|
|
void helm3d_d_(const int32_t* nd, const double* zk, const double* sources, const double* charge, const int32_t* ns, const double* ztarg, const int32_t* nt, double* pot, const double* thresh) {
|
|
void helm3d_d_(const int32_t* nd, const double* zk, const double* sources, const double* charge, const int32_t* ns, const double* ztarg, const int32_t* nt, double* pot, const double* thresh) {
|
|
@@ -18,7 +24,7 @@ void helm3d_d_(const int32_t* nd, const double* zk, const double* sources, const
|
|
}
|
|
}
|
|
|
|
|
|
void helm3d_vec_d_(const int32_t* nd, const double* zk, const double* sources, const double* charge, const int32_t* ns, const double* ztarg, const int32_t* nt, double* pot, const double* thresh) {
|
|
void helm3d_vec_d_(const int32_t* nd, const double* zk, const double* sources, const double* charge, const int32_t* ns, const double* ztarg, const int32_t* nt, double* pot, const double* thresh) {
|
|
- helm3d_vec<double,4>(nd, zk, sources, charge, ns, ztarg, nt, pot, thresh);
|
|
|
|
|
|
+ helm3d_vec<double,VECDIM>(nd, zk, sources, charge, ns, ztarg, nt, pot, thresh);
|
|
}
|
|
}
|
|
|
|
|
|
#ifdef __cplusplus
|
|
#ifdef __cplusplus
|