Block-Structured AMR Software Framework
Loading...
Searching...
No Matches
AMReX_ParticleReduceSIMD.H File Reference
#include <AMReX_Config.H>
#include <AMReX_ParticleReduce.H>
#include <AMReX_ReduceSIMD.H>
#include <AMReX_SIMD.H>
#include <AMReX_Tuple.H>
#include <AMReX_TypeTraits.H>
#include <AMReX_Vector.H>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Namespaces

namespace  amrex
 

Functions

template<class RD , int WIDTH = static_cast<int>(simd::native_simd_size_particlereal), class PC , class F , typename... Ps>
requires (IsParticleContainer<PC>::value)
RD::Type amrex::ParticleReduceSIMD (PC const &pc, int lev_min, int lev_max, F const &f, ReduceOps< Ps... > &reduce_ops)
 A general SIMD-vectorized reduction method for the particles in a ParticleContainer. This version operates from the specified lev_min to lev_max.
 
template<class RD , int WIDTH = static_cast<int>(simd::native_simd_size_particlereal), class PC , class F , typename... Ps>
requires (IsParticleContainer<PC>::value)
RD::Type amrex::ParticleReduceSIMD (PC const &pc, int lev, F const &f, ReduceOps< Ps... > &reduce_ops)
 A general SIMD-vectorized reduction method for the particles in a ParticleContainer. This version operates only on the specified level.
 
template<class RD , int WIDTH = static_cast<int>(simd::native_simd_size_particlereal), class PC , class F , typename... Ps>
requires (IsParticleContainer<PC>::value)
RD::Type amrex::ParticleReduceSIMD (PC const &pc, F const &f, ReduceOps< Ps... > &reduce_ops)
 A general SIMD-vectorized reduction method for the particles in a ParticleContainer. This version operates over all particles on all levels.
 
template<int WIDTH = static_cast<int>(simd::native_simd_size_particlereal), class PC , class F >
requires (IsParticleContainer<PC>::value)
auto amrex::ReduceSumSIMD (PC const &pc, int lev_min, int lev_max, F const &f)
 A SIMD-vectorized sum reduction over the particles in a ParticleContainer. This version operates from the specified lev_min to lev_max.
 
template<int WIDTH = static_cast<int>(simd::native_simd_size_particlereal), class PC , class F >
requires (IsParticleContainer<PC>::value)
auto amrex::ReduceSumSIMD (PC const &pc, int lev, F const &f)
 A SIMD-vectorized sum reduction over the particles in a ParticleContainer. This version operates only on the specified level.
 
template<int WIDTH = static_cast<int>(simd::native_simd_size_particlereal), class PC , class F >
requires (IsParticleContainer<PC>::value)
auto amrex::ReduceSumSIMD (PC const &pc, F const &f)
 A SIMD-vectorized sum reduction over the particles in a ParticleContainer. This version operates over all particles on all levels.
 
template<int WIDTH = static_cast<int>(simd::native_simd_size_particlereal), class PC , class F >
requires (IsParticleContainer<PC>::value)
auto amrex::ReduceMinSIMD (PC const &pc, int lev_min, int lev_max, F const &f)
 A SIMD-vectorized min reduction over the particles in a ParticleContainer. This version operates from the specified lev_min to lev_max.
 
template<int WIDTH = static_cast<int>(simd::native_simd_size_particlereal), class PC , class F >
requires (IsParticleContainer<PC>::value)
auto amrex::ReduceMinSIMD (PC const &pc, int lev, F const &f)
 A SIMD-vectorized min reduction over the particles in a ParticleContainer. This version operates only on the specified level.
 
template<int WIDTH = static_cast<int>(simd::native_simd_size_particlereal), class PC , class F >
requires (IsParticleContainer<PC>::value)
auto amrex::ReduceMinSIMD (PC const &pc, F const &f)
 A SIMD-vectorized min reduction over the particles in a ParticleContainer. This version operates over all particles on all levels.
 
template<int WIDTH = static_cast<int>(simd::native_simd_size_particlereal), class PC , class F >
requires (IsParticleContainer<PC>::value)
auto amrex::ReduceMaxSIMD (PC const &pc, int lev_min, int lev_max, F const &f)
 A SIMD-vectorized max reduction over the particles in a ParticleContainer. This version operates from the specified lev_min to lev_max.
 
template<int WIDTH = static_cast<int>(simd::native_simd_size_particlereal), class PC , class F >
requires (IsParticleContainer<PC>::value)
auto amrex::ReduceMaxSIMD (PC const &pc, int lev, F const &f)
 A SIMD-vectorized max reduction over the particles in a ParticleContainer. This version operates only on the specified level.
 
template<int WIDTH = static_cast<int>(simd::native_simd_size_particlereal), class PC , class F >
requires (IsParticleContainer<PC>::value)
auto amrex::ReduceMaxSIMD (PC const &pc, F const &f)
 A SIMD-vectorized max reduction over the particles in a ParticleContainer. This version operates over all particles on all levels.