Add Array<T>::Abs()

- static assert of arithmetic type of T
This commit is contained in:
Gabriel Pinochet-Soto
2025-03-28 22:13:22 -07:00
parent 99f88877e6
commit 73014e34c5
2 changed files with 14 additions and 0 deletions
+11
View File
@@ -15,6 +15,7 @@
#include "array.hpp"
#include "../general/forall.hpp"
#include <fstream>
#include <type_traits>
namespace mfem
{
@@ -110,6 +111,16 @@ void Array<T>::PartialSum()
}
}
template <class T>
void Array<T>::Abs()
{
static_assert(std::is_arithmetic<T>::value, "Use with arithmetic types!");
const bool useDevice = UseDevice();
const int N = size;
auto y = ReadWrite(useDevice);
mfem::forall_switch(useDevice, N, [=] MFEM_HOST_DEVICE (int i) { y[i] = std::abs(y[i]); });
}
// Sum
template <class T>
T Array<T>::Sum() const