WarpX
Functions
WarpXUtilAlgo Namespace Reference

Functions

template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE const T * upper_bound (const T *first, const T *last, const T &val)
 Returns a pointer to the first element in the range [first, last) that is greater than val. More...
 
template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE T linear_interp (T x0, T x1, T f0, T f1, T x)
 Performs a linear interpolation. More...
 
template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE T bilinear_interp (T x0, T x1, T y0, T y1, T f00, T f01, T f10, T f11, T x, T y)
 Performs a bilinear interpolation. More...
 
template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE T trilinear_interp (T x0, T x1, T y0, T y1, T z0, T z1, T f000, T f001, T f010, T f011, T f100, T f101, T f110, T f111, T x, T y, T z)
 Performs a trilinear interpolation. More...
 

Function Documentation

◆ bilinear_interp()

template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE T WarpXUtilAlgo::bilinear_interp ( x0,
x1,
y0,
y1,
f00,
f01,
f10,
f11,
x,
y 
)

Performs a bilinear interpolation.

Performs a bilinear interpolation at (x,y) given the 4 points (x0, y0, f00), (x0, y1, f01), (x1, y0, f10), (x1, y1, f11).

◆ linear_interp()

template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE T WarpXUtilAlgo::linear_interp ( x0,
x1,
f0,
f1,
x 
)

Performs a linear interpolation.

Performs a linear interpolation at x given the 2 points (x0, f0) and (x1, f1)

◆ trilinear_interp()

template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE T WarpXUtilAlgo::trilinear_interp ( x0,
x1,
y0,
y1,
z0,
z1,
f000,
f001,
f010,
f011,
f100,
f101,
f110,
f111,
x,
y,
z 
)

Performs a trilinear interpolation.

Performs a trilinear interpolation at (x,y,z) given the 8 points (x0, y0, z0, f000), (x0, y0, z1, f001), (x0, y1, z0, f010), (x0, y1, z1, f011), (x1, y0, z0, f100), (x1, y0, z1, f101), (x1, y1, z0, f110), (x1, y1, z1, f111)

◆ upper_bound()

template<typename T >
AMREX_GPU_DEVICE AMREX_FORCE_INLINE const T* WarpXUtilAlgo::upper_bound ( const T *  first,
const T *  last,
const T &  val 
)

Returns a pointer to the first element in the range [first, last) that is greater than val.

A re-implementation of the upper_bound algorithm suitable for GPU kernels.

Parameters
firstpointer to left limit of the range to consider
lastpointer to right limit of the range to consider
valvalue to compare the elements of [first, last) to