EBGeometry
Compact, header-only C++ library for fast evaluation of signed distance functions
Loading...
Searching...
No Matches
Classes | Namespaces | Functions
EBGeometry_TriangleSoA.hpp File Reference

Declaration of SoA triangle group for SIMD signed-distance evaluation. More...

#include <cstddef>
#include <cstdint>
#include <type_traits>
#include "EBGeometry_Array.hpp"
#include "EBGeometry_SIMD.hpp"
#include "EBGeometry_Triangle.hpp"
#include "EBGeometry_TriangleDistance.hpp"
#include "EBGeometry_Vec.hpp"
#include "EBGeometry_TriangleSoAImplem.hpp"
Include dependency graph for EBGeometry_TriangleSoA.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  EBGeometry::TriangleSoAT< T, W >
 SoA (Structure of Arrays) layout for W triangles, enabling SIMD evaluation. More...
 
struct  EBGeometry::TriangleSoAT< T, W >::LaneSource< V >
 The triangle accessor TriangleDistance::signedDistance() reads lanes [m_offset, m_offset + lanes of V) through: V = T reads one lane, V = SIMD::Pack<T, N> loads N lanes (m_offset a multiple of N, so the loads are aligned). More...
 

Namespaces

namespace  EBGeometry
 Namespace containing all of EBGeometry's functionality.
 
namespace  EBGeometry::TriangleSoA
 Namespace for TriangleSoAT-related compile-time utilities.
 

Functions

template<typename T >
constexpr size_t EBGeometry::TriangleSoA::HostWidth () noexcept
 The SoA width W (triangles per TriangleSoAT group) that fills one SIMD register for type T under the compiler's SIMD flags.
 
template<typename T >
constexpr size_t EBGeometry::TriangleSoA::DefaultWidth () noexcept
 The default SoA width W (triangles per TriangleSoAT group): 4, or HostWidth<T>() in a build that defines EBGEOMETRY_HOST_TUNED_DEFAULTS.
 

Detailed Description

Declaration of SoA triangle group for SIMD signed-distance evaluation.

Author
Robert Marskar