Nektar++
Loading...
Searching...
No Matches
Namespaces | Classes | Typedefs | Functions | Variables
tinysimd Namespace Reference

Namespaces

namespace  abi
 
namespace  details
 

Classes

struct  first_not_void_of
 
struct  first_not_void_of< T, Rest... >
 
struct  first_not_void_of< void, Rest... >
 
struct  is_aligned_t
 
struct  is_load_tag
 
struct  is_not_aligned_t
 
struct  is_not_reused_t
 
struct  is_requiring_alignment
 
struct  is_streaming
 
struct  is_vector
 
struct  is_vector_floating_point
 
struct  is_vector_floating_point< T, typename std::enable_if< is_vector_v< T > >::type >
 
struct  is_vector_integral
 
struct  is_vector_integral< T, typename std::enable_if< is_vector_v< T > >::type >
 
struct  scalarMask
 
struct  scalarT
 
struct  width_or_zero
 
struct  width_or_zero< T, std::void_t< decltype(T::width)> >
 
struct  width_tag
 

Typedefs

template<typename T , typename = typename std::enable_if<is_vector_v<T>>::type>
using allocator = boost::alignment::aligned_allocator< T, T::alignment >
 
template<typename ScalarType , int width = 0, template< typename, int > class abi = abi::default_abi>
using simd = typename abi< ScalarType, width >::type
 
template<typename ScalarType , int width = 0, template< typename, int > class abi = abi::default_abi>
using longsimd = typename details::longsimd_selector< ScalarType, width, abi >::type
 

Functions

template<class T , typename = typename std::enable_if<tinysimd::is_vector_v<T>>::type>
std::ostream & operator<< (std::ostream &os, const T &avec)
 
template<typename T >
scalarT< T > operator+ (scalarT< T > lhs, scalarT< T > rhs)
 
template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > operator+ (U lhs, scalarT< T > rhs)
 
template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > operator+ (scalarT< T > lhs, U rhs)
 
template<typename T >
scalarT< T > operator- (scalarT< T > lhs, scalarT< T > rhs)
 
template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > operator- (U lhs, scalarT< T > rhs)
 
template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > operator- (scalarT< T > lhs, U rhs)
 
template<typename T >
scalarT< T > operator- (scalarT< T > in)
 
template<typename T >
scalarT< T > operator* (scalarT< T > lhs, scalarT< T > rhs)
 
template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > operator* (U lhs, scalarT< T > rhs)
 
template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > operator* (scalarT< T > lhs, U rhs)
 
template<typename T >
scalarT< T > operator/ (scalarT< T > lhs, scalarT< T > rhs)
 
template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > operator/ (U lhs, scalarT< T > rhs)
 
template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > operator/ (scalarT< T > lhs, U rhs)
 
template<typename T >
scalarT< T > sqrt (scalarT< T > in)
 
template<typename T >
scalarT< T > abs (scalarT< T > in)
 
template<typename T >
scalarT< T > min (scalarT< T > lhs, scalarT< T > rhs)
 
template<typename T >
scalarT< T > max (scalarT< T > lhs, scalarT< T > rhs)
 
template<typename T >
scalarT< T > log (scalarT< T > in)
 
template<typename T >
void load_unalign_interleave (const T *in, const size_t dataLen, std::vector< scalarT< T >, allocator< scalarT< T > > > &out)
 
template<typename T >
void load_unalign_interleave_skipPads (const T *in, const size_t dataLen, const size_t skipPads, std::vector< scalarT< T >, allocator< scalarT< T > > > &out)
 
template<typename T >
void load_interleave (const T *in, const size_t dataLen, std::vector< scalarT< T >, allocator< scalarT< T > > > &out)
 
template<typename T >
void deinterleave_unalign_store (const std::vector< scalarT< T >, allocator< scalarT< T > > > &in, const size_t dataLen, T *out)
 
template<typename T >
void deinterleave_unalign_store_skipPads (const std::vector< scalarT< T >, allocator< scalarT< T > > > &in, const size_t dataLen, const size_t skipPads, T *out)
 
template<typename T >
void deinterleave_store (const std::vector< scalarT< T >, allocator< scalarT< T > > > &in, const size_t dataLen, T *out)
 
scalarMask operator> (scalarT< double > lhs, scalarT< double > rhs)
 
scalarMask operator> (scalarT< float > lhs, scalarT< float > rhs)
 
bool operator&& (scalarMask lhs, bool rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > operator+ (details::long_simd< SimdType, Width > lhs, const details::long_simd< SimdType, Width > &rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > operator+ (details::long_simd< SimdType, Width > lhs, const typename details::long_simd< SimdType, Width >::chunkType &rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > operator+ (const typename details::long_simd< SimdType, Width >::chunkType &lhs, details::long_simd< SimdType, Width > rhs)
 
template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > operator+ (details::long_simd< SimdType, Width > lhs, U rhs)
 
template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > operator+ (U lhs, details::long_simd< SimdType, Width > rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > operator- (details::long_simd< SimdType, Width > lhs, const details::long_simd< SimdType, Width > &rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > operator- (details::long_simd< SimdType, Width > lhs, const typename details::long_simd< SimdType, Width >::chunkType &rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > operator- (const typename details::long_simd< SimdType, Width >::chunkType &lhs, details::long_simd< SimdType, Width > rhs)
 
template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > operator- (details::long_simd< SimdType, Width > lhs, U rhs)
 
template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > operator- (U lhs, details::long_simd< SimdType, Width > rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > operator- (details::long_simd< SimdType, Width > in)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > operator* (details::long_simd< SimdType, Width > lhs, const details::long_simd< SimdType, Width > &rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > operator* (details::long_simd< SimdType, Width > lhs, const typename details::long_simd< SimdType, Width >::chunkType &rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > operator* (const typename details::long_simd< SimdType, Width >::chunkType &lhs, details::long_simd< SimdType, Width > rhs)
 
template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > operator* (details::long_simd< SimdType, Width > lhs, U rhs)
 
template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > operator* (U lhs, details::long_simd< SimdType, Width > rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > operator/ (details::long_simd< SimdType, Width > lhs, const details::long_simd< SimdType, Width > &rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > operator/ (details::long_simd< SimdType, Width > lhs, const typename details::long_simd< SimdType, Width >::chunkType &rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > operator/ (const typename details::long_simd< SimdType, Width >::chunkType &lhs, details::long_simd< SimdType, Width > rhs)
 
template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > operator/ (details::long_simd< SimdType, Width > lhs, U rhs)
 
template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > operator/ (U lhs, details::long_simd< SimdType, Width > rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > sqrt (details::long_simd< SimdType, Width > in)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > abs (details::long_simd< SimdType, Width > in)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > min (details::long_simd< SimdType, Width > lhs, const details::long_simd< SimdType, Width > &rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > max (details::long_simd< SimdType, Width > lhs, const details::long_simd< SimdType, Width > &rhs)
 
template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > log (details::long_simd< SimdType, Width > in)
 
template<typename SimdType , unsigned int Width>
void load_unalign_interleave (const typename details::long_simd< SimdType, Width >::scalarType *in, const std::uint32_t dataLen, std::vector< details::long_simd< SimdType, Width >, allocator< details::long_simd< SimdType, Width > > > &out)
 
template<typename SimdType , unsigned int Width>
void load_unalign_interleave_skipPads (const typename details::long_simd< SimdType, Width >::scalarType *in, const std::uint32_t dataLen, const std::uint32_t skipPads, std::vector< details::long_simd< SimdType, Width >, allocator< details::long_simd< SimdType, Width > > > &out)
 
template<typename SimdType , unsigned int Width>
void load_interleave (const typename details::long_simd< SimdType, Width >::scalarType *in, std::uint32_t dataLen, std::vector< details::long_simd< SimdType, Width >, allocator< details::long_simd< SimdType, Width > > > &out)
 
template<typename SimdType , unsigned int Width>
void deinterleave_unalign_store (const std::vector< details::long_simd< SimdType, Width >, allocator< details::long_simd< SimdType, Width > > > &in, const std::uint32_t dataLen, typename details::long_simd< SimdType, Width >::scalarType *out)
 
template<typename SimdType , unsigned int Width>
void deinterleave_unalign_store_skipPads (const std::vector< details::long_simd< SimdType, Width >, allocator< details::long_simd< SimdType, Width > > > &in, const std::uint32_t dataLen, const std::uint32_t skipPads, typename details::long_simd< SimdType, Width >::scalarType *out)
 
template<typename SimdType , unsigned int Width>
void deinterleave_store (const std::vector< details::long_simd< SimdType, Width >, allocator< details::long_simd< SimdType, Width > > > &in, std::uint32_t dataLen, typename details::long_simd< SimdType, Width >::scalarType *out)
 

Variables

static constexpr unsigned int PACKMULTIPLIER = 1
 
static constexpr unsigned int PACKSIZE
 
static constexpr struct tinysimd::is_aligned_t is_aligned
 
static constexpr struct tinysimd::is_not_aligned_t is_not_aligned
 
static constexpr struct tinysimd::is_not_reused_t is_not_reused
 
template<class T >
constexpr bool is_load_tag_v = is_load_tag<T>::value
 
template<class T >
constexpr bool is_streaming_v = is_streaming<T>::value
 
template<class T >
constexpr bool is_requiring_alignment_v
 
template<class T >
constexpr bool is_vector_v = is_vector<T>::value
 
template<class T >
constexpr bool is_vector_floating_point_v
 
template<class T >
constexpr bool is_vector_integral_v = is_vector_integral<T>::value
 

Typedef Documentation

◆ allocator

template<typename T , typename = typename std::enable_if<is_vector_v<T>>::type>
using tinysimd::allocator = typedef boost::alignment::aligned_allocator<T, T::alignment>

Definition at line 48 of file allocator.hpp.

◆ longsimd

template<typename ScalarType , int width = 0, template< typename, int > class abi = abi::default_abi>
using tinysimd::longsimd = typedef typename details::longsimd_selector<ScalarType, width, abi>::type

Definition at line 484 of file tinysimd.hpp.

◆ simd

template<typename ScalarType , int width = 0, template< typename, int > class abi = abi::default_abi>
using tinysimd::simd = typedef typename abi<ScalarType, width>::type

Definition at line 132 of file tinysimd.hpp.

Function Documentation

◆ abs() [1/2]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::abs ( details::long_simd< SimdType, Width >  in)
inline

Definition at line 716 of file tinysimd.hpp.

718{
720 for (size_t i = 0; i < in.numChunks; ++i)
721 {
722 in._data[i] = abs(in._data[i]);
723 }
724 return in;
725}
scalarT< T > abs(scalarT< T > in)
Definition scalar.hpp:295
chunkType _data[numChunks]
Definition tinysimd.hpp:177
static constexpr unsigned int numChunks
Definition tinysimd.hpp:160
#define TINYSIMD_PRAGMA_UNROLL
Definition tinysimd.hpp:126

References tinysimd::details::long_simd< SimdType, Width >::_data, abs(), tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.

◆ abs() [2/2]

template<typename T >
scalarT< T > tinysimd::abs ( scalarT< T >  in)
inline

Definition at line 295 of file scalar.hpp.

296{
297 return std::abs(in._data);
298}
vectorType _data
Definition scalar.hpp:119

References tinysimd::scalarT< T, typename >::_data.

Referenced by abs(), Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE(), Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE(), Nektar::MultiRegions::LocTraceToTraceMap::CalcLocTracePhysToTraceIDMap_2D(), Nektar::MultiRegions::LocTraceToTraceMap::CalcLocTracePhysToTraceIDMap_3D(), Nektar::VortexWaveInteraction::CheckIfAtNeutralPoint(), CheckSingularQuads(), Nektar::SolverUtils::ForcingSyntheticEddy::ComputeGaussian(), Computestreakpositions(), Computestreakpositions(), Nektar::CoupledLocalToGlobalC0ContMap::CoupledLocalToGlobalC0ContMap(), Nektar::LibUtilities::NekLinSysIterGMRES::DoGivensRotation(), Nektar::LibUtilities::NekLinSysIterGMRESLoc::DoGivensRotation(), Nektar::SolverUtils::DriverSteadyState::EvalEV_ScalarSFD(), GenerateAddPointsNewtonIt(), Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetBandwidth(), Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetBandwidth(), Nektar::CompressibleFlowSystem::GetExactRinglebFlow(), Nektar::RedlichKwongEoS::GetTemperatureKernel(), Nektar::SolverUtils::DriverSteadyState::GradientDescentMethod(), main(), MappingEVids(), MoveLayersvertically(), MoveOutsidePointsfixedxpos(), MoveOutsidePointsNnormpos(), Nektar::CFSImplicit::PointFluxJacobianPoint(), Nektar::RoeKernel(), Nektar::RinglebFlowBC::v_Apply(), Nektar::SolverUtils::DriverAdaptive::v_Execute(), Nektar::SpatialDomains::Geometry2D::v_FindDistance(), Nektar::RedlichKwongEoS::v_GetEFromRhoP(), Nektar::RedlichKwongEoS::v_GetRhoFromPT(), Nektar::VanDerWaalsEoS::v_GetRhoFromPT(), and Nektar::MetricRegex::v_Test().

◆ deinterleave_store() [1/2]

template<typename SimdType , unsigned int Width>
void tinysimd::deinterleave_store ( const std::vector< details::long_simd< SimdType, Width >, allocator< details::long_simd< SimdType, Width > > > &  in,
std::uint32_t  dataLen,
typename details::long_simd< SimdType, Width >::scalarType *  out 
)
inline

Definition at line 930 of file tinysimd.hpp.

935{
937 using index_t = typename vec_t::chunkIndexType;
938
939 alignas(index_t::alignment) typename index_t::scalarArray tmp;
940 index_t index[vec_t::numChunks];
941
942 for (size_t chunk = 0; chunk < vec_t::numChunks; ++chunk)
943 {
944 for (size_t lane = 0; lane < index_t::width; ++lane)
945 {
946 tmp[lane] = static_cast<typename vec_t::scalarIndexType>(
947 (chunk * index_t::width + lane) * dataLen);
948 }
949 index[chunk].load(tmp);
950 }
951
952 for (size_t i = 0; i < dataLen; ++i)
953 {
954 in[i].scatter(out, index);
955 for (auto &idx : index)
956 {
957 idx = idx + index_t(1);
958 }
959 }
960}
void load(const scalarType *p)
Definition tinysimd.hpp:238

References tinysimd::details::long_simd< SimdType, Width >::load().

◆ deinterleave_store() [2/2]

template<typename T >
void tinysimd::deinterleave_store ( const std::vector< scalarT< T >, allocator< scalarT< T > > > &  in,
const size_t  dataLen,
T *  out 
)
inline

Definition at line 370 of file scalar.hpp.

373{
374 for (size_t i = 0; i < dataLen; ++i)
375 {
376 out[i] = in[i]._data;
377 }
378}

Referenced by Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE(), Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE(), Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE(), and Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE().

◆ deinterleave_unalign_store() [1/2]

template<typename SimdType , unsigned int Width>
void tinysimd::deinterleave_unalign_store ( const std::vector< details::long_simd< SimdType, Width >, allocator< details::long_simd< SimdType, Width > > > &  in,
const std::uint32_t  dataLen,
typename details::long_simd< SimdType, Width >::scalarType *  out 
)
inline

Definition at line 868 of file tinysimd.hpp.

873{
875
876 alignas(vec_t::alignment) typename vec_t::scalarArray tmp;
877 for (size_t i = 0; i < dataLen; ++i)
878 {
879 in[i].store(tmp);
880 for (size_t j = 0; j < vec_t::width; ++j)
881 {
882 out[i + j * dataLen] = tmp[j];
883 }
884 }
885}
void store(scalarType *p) const
Definition tinysimd.hpp:218

References tinysimd::details::long_simd< SimdType, Width >::store().

◆ deinterleave_unalign_store() [2/2]

template<typename T >
void tinysimd::deinterleave_unalign_store ( const std::vector< scalarT< T >, allocator< scalarT< T > > > &  in,
const size_t  dataLen,
T *  out 
)
inline

Definition at line 348 of file scalar.hpp.

351{
352 for (size_t i = 0; i < dataLen; ++i)
353 {
354 out[i] = in[i]._data;
355 }
356}

Referenced by Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE().

◆ deinterleave_unalign_store_skipPads() [1/2]

template<typename SimdType , unsigned int Width>
void tinysimd::deinterleave_unalign_store_skipPads ( const std::vector< details::long_simd< SimdType, Width >, allocator< details::long_simd< SimdType, Width > > > &  in,
const std::uint32_t  dataLen,
const std::uint32_t  skipPads,
typename details::long_simd< SimdType, Width >::scalarType *  out 
)
inline

Definition at line 888 of file tinysimd.hpp.

893{
895
896 alignas(vec_t::alignment) typename vec_t::scalarArray tmp;
897 alignas(vec_t::alignment) typename vec_t::scalarArray tmp1;
898 alignas(vec_t::alignment) typename vec_t::scalarArray tmp2;
899 alignas(vec_t::alignment) typename vec_t::scalarArray tmp3;
900
901 size_t nBlocks = dataLen / 4;
902
903 for (size_t i = 0; i < nBlocks; ++i)
904 {
905 in[4 * i].store(tmp);
906 in[4 * i + 1].store(tmp1);
907 in[4 * i + 2].store(tmp2);
908 in[4 * i + 3].store(tmp3);
909
910 for (size_t j = 0; j < vec_t::width - skipPads; ++j)
911 {
912 out[j * dataLen + 4 * i] = tmp[j];
913 out[j * dataLen + 4 * i + 1] = tmp1[j];
914 out[j * dataLen + 4 * i + 2] = tmp2[j];
915 out[j * dataLen + 4 * i + 3] = tmp3[j];
916 }
917 }
918
919 for (size_t i = nBlocks * 4; i < dataLen; ++i)
920 {
921 in[i].store(tmp);
922 for (size_t j = 0; j < vec_t::width - skipPads; ++j)
923 {
924 out[j * dataLen + i] = tmp[j];
925 }
926 }
927}

References tinysimd::details::long_simd< SimdType, Width >::store().

◆ deinterleave_unalign_store_skipPads() [2/2]

template<typename T >
void tinysimd::deinterleave_unalign_store_skipPads ( const std::vector< scalarT< T >, allocator< scalarT< T > > > &  in,
const size_t  dataLen,
const size_t  skipPads,
T *  out 
)
inline

Definition at line 359 of file scalar.hpp.

362{
363 for (size_t i = 0; i < dataLen; ++i)
364 {
365 out[i] = in[i]._data;
366 }
367}

Referenced by Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE().

◆ load_interleave() [1/2]

template<typename T >
void tinysimd::load_interleave ( const T *  in,
const size_t  dataLen,
std::vector< scalarT< T >, allocator< scalarT< T > > > &  out 
)
inline

Definition at line 338 of file scalar.hpp.

340{
341 for (size_t i = 0; i < dataLen; ++i)
342 {
343 out[i] = in[i];
344 }
345}

Referenced by Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE(), Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE(), Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE(), and Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE().

◆ load_interleave() [2/2]

template<typename SimdType , unsigned int Width>
void tinysimd::load_interleave ( const typename details::long_simd< SimdType, Width >::scalarType *  in,
std::uint32_t  dataLen,
std::vector< details::long_simd< SimdType, Width >, allocator< details::long_simd< SimdType, Width > > > &  out 
)
inline

Definition at line 835 of file tinysimd.hpp.

840{
842 using index_t = typename vec_t::chunkIndexType;
843
844 alignas(index_t::alignment) typename index_t::scalarArray tmp;
845 index_t index[vec_t::numChunks];
846
847 for (size_t chunk = 0; chunk < vec_t::numChunks; ++chunk)
848 {
849 for (size_t lane = 0; lane < index_t::width; ++lane)
850 {
851 tmp[lane] = static_cast<typename vec_t::scalarIndexType>(
852 (chunk * index_t::width + lane) * dataLen);
853 }
854 index[chunk].load(tmp);
855 }
856
857 for (size_t i = 0; i < dataLen; ++i)
858 {
859 out[i].gather(in, index);
860 for (auto &idx : index)
861 {
862 idx = idx + index_t(1);
863 }
864 }
865}

References tinysimd::details::long_simd< SimdType, Width >::load().

◆ load_unalign_interleave() [1/2]

template<typename T >
void tinysimd::load_unalign_interleave ( const T *  in,
const size_t  dataLen,
std::vector< scalarT< T >, allocator< scalarT< T > > > &  out 
)
inline

Definition at line 316 of file scalar.hpp.

319{
320 for (size_t i = 0; i < dataLen; ++i)
321 {
322 out[i] = in[i];
323 }
324}

Referenced by Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE().

◆ load_unalign_interleave() [2/2]

template<typename SimdType , unsigned int Width>
void tinysimd::load_unalign_interleave ( const typename details::long_simd< SimdType, Width >::scalarType *  in,
const std::uint32_t  dataLen,
std::vector< details::long_simd< SimdType, Width >, allocator< details::long_simd< SimdType, Width > > > &  out 
)
inline

Definition at line 766 of file tinysimd.hpp.

771{
773
774 alignas(vec_t::alignment) typename vec_t::scalarArray tmp;
775 for (size_t i = 0; i < dataLen; ++i)
776 {
777 for (size_t j = 0; j < vec_t::width; ++j)
778 {
779 tmp[j] = in[i + j * dataLen];
780 }
781 out[i].load(tmp);
782 }
783}

References tinysimd::details::long_simd< SimdType, Width >::load().

◆ load_unalign_interleave_skipPads() [1/2]

template<typename T >
void tinysimd::load_unalign_interleave_skipPads ( const T *  in,
const size_t  dataLen,
const size_t  skipPads,
std::vector< scalarT< T >, allocator< scalarT< T > > > &  out 
)
inline

Definition at line 327 of file scalar.hpp.

330{
331 for (size_t i = 0; i < dataLen; ++i)
332 {
333 out[i] = in[i];
334 }
335}

Referenced by Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE().

◆ load_unalign_interleave_skipPads() [2/2]

template<typename SimdType , unsigned int Width>
void tinysimd::load_unalign_interleave_skipPads ( const typename details::long_simd< SimdType, Width >::scalarType *  in,
const std::uint32_t  dataLen,
const std::uint32_t  skipPads,
std::vector< details::long_simd< SimdType, Width >, allocator< details::long_simd< SimdType, Width > > > &  out 
)
inline

Definition at line 786 of file tinysimd.hpp.

791{
793
794 alignas(vec_t::alignment) typename vec_t::scalarArray tmp;
795 alignas(vec_t::alignment) typename vec_t::scalarArray tmp1;
796 alignas(vec_t::alignment) typename vec_t::scalarArray tmp2;
797 alignas(vec_t::alignment) typename vec_t::scalarArray tmp3;
798
799 size_t nBlocks = dataLen / 4;
800 const vec_t zero{static_cast<typename vec_t::scalarType>(0)};
801
802 for (size_t i = 0; i < nBlocks; ++i)
803 {
804 zero.store(tmp);
805 zero.store(tmp1);
806 zero.store(tmp2);
807 zero.store(tmp3);
808
809 for (size_t j = 0; j < vec_t::width - skipPads; ++j)
810 {
811 tmp[j] = in[j * dataLen + 4 * i];
812 tmp1[j] = in[j * dataLen + 4 * i + 1];
813 tmp2[j] = in[j * dataLen + 4 * i + 2];
814 tmp3[j] = in[j * dataLen + 4 * i + 3];
815 }
816
817 out[4 * i].load(tmp);
818 out[4 * i + 1].load(tmp1);
819 out[4 * i + 2].load(tmp2);
820 out[4 * i + 3].load(tmp3);
821 }
822
823 for (size_t i = nBlocks * 4; i < dataLen; ++i)
824 {
825 zero.store(tmp);
826 for (size_t j = 0; j < vec_t::width - skipPads; ++j)
827 {
828 tmp[j] = in[i + j * dataLen];
829 }
830 out[i].load(tmp);
831 }
832}

References tinysimd::details::long_simd< SimdType, Width >::load().

◆ log() [1/2]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::log ( details::long_simd< SimdType, Width >  in)
inline

Definition at line 754 of file tinysimd.hpp.

756{
758 for (size_t i = 0; i < in.numChunks; ++i)
759 {
760 in._data[i] = log(in._data[i]);
761 }
762 return in;
763}
scalarT< T > log(scalarT< T > in)
Definition scalar.hpp:310

References tinysimd::details::long_simd< SimdType, Width >::_data, log(), tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.

◆ log() [2/2]

template<typename T >
scalarT< T > tinysimd::log ( scalarT< T >  in)
inline

◆ max() [1/2]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::max ( details::long_simd< SimdType, Width >  lhs,
const details::long_simd< SimdType, Width > &  rhs 
)
inline

Definition at line 741 of file tinysimd.hpp.

744{
746 for (size_t i = 0; i < lhs.numChunks; ++i)
747 {
748 lhs._data[i] = max(lhs._data[i], rhs._data[i]);
749 }
750 return lhs;
751}
scalarT< T > max(scalarT< T > lhs, scalarT< T > rhs)
Definition scalar.hpp:305

References tinysimd::details::long_simd< SimdType, Width >::_data, max(), tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.

◆ max() [2/2]

template<typename T >
scalarT< T > tinysimd::max ( scalarT< T >  lhs,
scalarT< T >  rhs 
)
inline

Definition at line 305 of file scalar.hpp.

306{
307 return std::max(lhs._data, rhs._data);
308}

References tinysimd::scalarT< T, typename >::_data, and max().

Referenced by Nektar::MultiRegions::AssemblyCommDG::AssemblyCommDG(), Nektar::MultiRegions::PreconditionerBlock::BlockPreconditionerCG(), Nektar::LibUtilities::checked_cast(), Nektar::LibUtilities::H5::DataSpace::DataSpace(), Nektar::MultiRegions::DisContField::FindPeriodicTraces(), Nektar::FieldUtils::ProcessEquiSpacedOutput::GenOrthoModes(), Nektar::SpatialDomains::Geometry::GetBoundingBox(), Nektar::StdRegions::StdPyrExp::GetMode(), Nektar::MultiRegions::BottomUpSubStructuredGraph::GetNlevels(), Nektar::FieldUtils::ProcessQualityMetric::GetQ(), Nektar::Collections::HexIProduct(), Nektar::FieldUtils::Interpolator< T >::Interpolate(), Nektar::FieldUtils::Interpolator< T >::Interpolate(), Nektar::Collections::IProductWRTBase_SumFac_Hex::IProductWRTBase_SumFac_Hex(), Nektar::Collections::IProductWRTBase_SumFac_Prism::IProductWRTBase_SumFac_Prism(), Nektar::Collections::IProductWRTBase_SumFac_Pyr::IProductWRTBase_SumFac_Pyr(), Nektar::Collections::IProductWRTBase_SumFac_Quad::IProductWRTBase_SumFac_Quad(), Nektar::Collections::IProductWRTBase_SumFac_Tet::IProductWRTBase_SumFac_Tet(), Nektar::Collections::IProductWRTBase_SumFac_Tri::IProductWRTBase_SumFac_Tri(), Nektar::Collections::IProductWRTDerivBase_SumFac_Hex::IProductWRTDerivBase_SumFac_Hex(), Nektar::Collections::IProductWRTDerivBase_SumFac_Prism::IProductWRTDerivBase_SumFac_Prism(), Nektar::Collections::IProductWRTDerivBase_SumFac_Pyr::IProductWRTDerivBase_SumFac_Pyr(), Nektar::Collections::IProductWRTDerivBase_SumFac_Quad::IProductWRTDerivBase_SumFac_Quad(), Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::IProductWRTDerivBase_SumFac_Tet(), Nektar::Collections::IProductWRTDerivBase_SumFac_Tri::IProductWRTDerivBase_SumFac_Tri(), Nektar::NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >::iterator_base< MatrixType >::iterator_base(), Nektar::NekMatrix< DataType, StandardMatrixTag >::iterator_impl< T, MatrixType >::iterator_impl(), Nektar::CellModel::LoadCellModel(), MappingEVids(), max(), max(), Nektar::NekMatrix< DataType, StandardMatrixTag >::NekMatrix(), Nektar::Collections::IProductWRTDerivBase_IterPerExp::operator()(), Nektar::Collections::IProductWRTDerivBase_SumFac_Quad::operator()(), Nektar::Collections::IProductWRTDerivBase_SumFac_Tri::operator()(), Nektar::Collections::IProductWRTDerivBase_SumFac_Hex::operator()(), Nektar::Collections::IProductWRTDerivBase_SumFac_Tet::operator()(), Nektar::Collections::IProductWRTDerivBase_SumFac_Prism::operator()(), Nektar::Collections::IProductWRTDerivBase_SumFac_Pyr::operator()(), Nektar::Collections::BwdTrans_SumFac_Pyr::operator()(), Orderfunctionx(), Nektar::FieldUtils::OutputFileBase::PrintErrorFromPts(), Nektar::Collections::PrismIProduct(), Nektar::Collections::PyrIProduct(), Nektar::Collections::QuadIProduct(), Nektar::FieldUtils::ProcessEquiSpacedOutput::SetHomogeneousConnectivity(), Nektar::FieldUtils::ProcessIsoContour::SetupIsoFromFieldPts(), Nektar::MultiRegions::PreconditionerLowEnergy::SetUpReferenceElements(), Nektar::Collections::CollectionOptimisation::SetWithTimings(), Nektar::LocalRegions::Expansion::StdDerivBaseOnTraceMat(), Nektar::SolverUtils::UnsteadySystem::SVVVarDiffCoeff(), Nektar::Collections::TetIProduct(), Nektar::CellModel::TimeIntegrate(), Nektar::Collections::TriIProduct(), Nektar::SpatialDomains::Movement::UpdateTransZoneBox(), Nektar::LocalRegions::TriExp::v_AlignVectorToCollapsedDir(), Nektar::MultiRegions::PreconditionerLowEnergy::v_BuildPreconditioner(), Nektar::LocalRegions::QuadExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TriExp::v_ComputeTraceNormal(), Nektar::StdRegions::StdHexExp::v_ExponentialFilter(), Nektar::StdRegions::StdQuadExp::v_ExponentialFilter(), Nektar::LocalRegions::TriExp::v_FwdTransBndConstrained(), Nektar::StdRegions::StdHexExp::v_GenMatrix(), Nektar::StdRegions::StdPrismExp::v_GenMatrix(), Nektar::StdRegions::StdQuadExp::v_GenMatrix(), Nektar::StdRegions::StdTetExp::v_GenMatrix(), Nektar::StdRegions::StdTriExp::v_GenMatrix(), Nektar::StdRegions::StdPyrExp::v_GetBoundaryMap(), Nektar::StdRegions::StdPyrExp::v_GetInteriorMap(), Nektar::LocalRegions::QuadExp::v_GetLocTracePhysVals(), Nektar::LocalRegions::TriExp::v_GetLocTracePhysVals(), Nektar::LocalRegions::PrismExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::StdRegions::StdHexExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::StdRegions::StdQuadExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::StdRegions::StdTetExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::StdRegions::StdTriExp::v_GetSimplexEquiSpacedConnectivity(), Nektar::LocalRegions::QuadExp::v_GetTraceQFactors(), Nektar::StdRegions::StdExpansion2D::v_HelmholtzMatrixOp_MatFree(), Nektar::StdRegions::StdExpansion3D::v_HelmholtzMatrixOp_MatFree(), Nektar::StdRegions::StdTetExp::v_IProductWRTDerivBase(), Nektar::StdRegions::StdExpansion2D::v_LaplacianMatrixOp_MatFree(), Nektar::LocalRegions::QuadExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::TriExp::v_LaplacianMatrixOp_MatFree_Kernel(), Nektar::LocalRegions::Expansion3D::v_NormalTraceDerivFactors(), Nektar::LocalRegions::Expansion2D::v_NormalTraceDerivFactors(), Nektar::StdRegions::StdPyrExp::v_PhysEvaluateBasis(), Nektar::FieldUtils::ProcessBoundaryExtract::v_Process(), Nektar::FieldUtils::ProcessEquiSpacedOutput::v_Process(), Nektar::FieldUtils::ProcessForceDecomposeBnd::v_Process(), Nektar::StdRegions::StdPyrExp::v_ReduceOrderCoeffs(), Nektar::StdRegions::StdHexExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPrismExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPyrExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdQuadExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTetExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter(), and Nektar::SpatialDomains::ZoneTranslate::ZoneTranslate().

◆ min() [1/2]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::min ( details::long_simd< SimdType, Width >  lhs,
const details::long_simd< SimdType, Width > &  rhs 
)
inline

Definition at line 728 of file tinysimd.hpp.

731{
733 for (size_t i = 0; i < lhs.numChunks; ++i)
734 {
735 lhs._data[i] = min(lhs._data[i], rhs._data[i]);
736 }
737 return lhs;
738}
scalarT< T > min(scalarT< T > lhs, scalarT< T > rhs)
Definition scalar.hpp:300

References tinysimd::details::long_simd< SimdType, Width >::_data, min(), tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.

◆ min() [2/2]

template<typename T >
scalarT< T > tinysimd::min ( scalarT< T >  lhs,
scalarT< T >  rhs 
)
inline

Definition at line 300 of file scalar.hpp.

301{
302 return std::min(lhs._data, rhs._data);
303}

References tinysimd::scalarT< T, typename >::_data, and min().

Referenced by Nektar::MultiRegions::AssemblyCommDG::AssemblyCommDG(), Nektar::MultiRegions::AssemblyMapCG::AssemblyMapCG(), Nektar::MultiRegions::PreconditionerBlock::BlockPreconditionerCG(), Nektar::LibUtilities::Interpolator::CalcWeights(), Nektar::LibUtilities::checked_cast(), Nektar::MultiRegions::AssemblyMapCG::CreateGraph(), Nektar::MultiRegions::DeterminePeriodicEdgeOrientId(), Nektar::SpatialDomains::Geometry::GetBoundingBox(), Nektar::FieldUtils::ProcessQualityMetric::GetQ(), min(), min(), Nektar::LibUtilities::NekLinSysIterGMRES::NekLinSysIterGMRES(), Nektar::LibUtilities::NekLinSysIterGMRESLoc::NekLinSysIterGMRESLoc(), Nektar::MultiRegions::AssemblyMapCG::SetUpUniversalC0ContMap(), Nektar::SpatialDomains::Movement::UpdateTransZoneBox(), Nektar::LocalRegions::Expansion2D::v_AddEdgeNormBoundaryInt(), Nektar::MultiRegions::PreconditionerLowEnergy::v_BuildPreconditioner(), Nektar::SolverUtils::UnsteadySystem::v_DoSolve(), Nektar::LocalRegions::HexExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PrismExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::PyrExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::QuadExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::SegExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TetExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TriExp::v_ExtractDataToCoeffs(), Nektar::StdRegions::StdPrismExp::v_GetElmtTraceToTraceMap(), Nektar::StdRegions::StdPyrExp::v_GetElmtTraceToTraceMap(), Nektar::StdRegions::StdTetExp::v_GetElmtTraceToTraceMap(), Nektar::FieldUtils::ProcessPointDataToFld::v_Process(), Nektar::StdRegions::StdHexExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPrismExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdPyrExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdQuadExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTetExp::v_SVVLaplacianFilter(), Nektar::StdRegions::StdTriExp::v_SVVLaplacianFilter(), Nektar::SolverUtils::StatLagrangianPoints::v_TimeAdvance(), and Nektar::SpatialDomains::ZoneTranslate::ZoneTranslate().

◆ operator&&()

bool tinysimd::operator&& ( scalarMask  lhs,
bool  rhs 
)
inline

Definition at line 427 of file scalar.hpp.

428{
429 return lhs._data && rhs;
430}

References tinysimd::scalarT< T, typename >::_data.

◆ operator*() [1/8]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::operator* ( const typename details::long_simd< SimdType, Width >::chunkType &  lhs,
details::long_simd< SimdType, Width >  rhs 
)
inline

Definition at line 624 of file tinysimd.hpp.

627{
628 rhs *= lhs;
629 return rhs;
630}

◆ operator*() [2/8]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::operator* ( details::long_simd< SimdType, Width >  lhs,
const details::long_simd< SimdType, Width > &  rhs 
)
inline

Definition at line 606 of file tinysimd.hpp.

609{
610 lhs *= rhs;
611 return lhs;
612}

◆ operator*() [3/8]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::operator* ( details::long_simd< SimdType, Width >  lhs,
const typename details::long_simd< SimdType, Width >::chunkType &  rhs 
)
inline

Definition at line 615 of file tinysimd.hpp.

618{
619 lhs *= rhs;
620 return lhs;
621}

◆ operator*() [4/8]

template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > tinysimd::operator* ( details::long_simd< SimdType, Width >  lhs,
rhs 
)
inline

Definition at line 634 of file tinysimd.hpp.

636{
637 lhs *= rhs;
638 return lhs;
639}

◆ operator*() [5/8]

template<typename T >
scalarT< T > tinysimd::operator* ( scalarT< T >  lhs,
scalarT< T >  rhs 
)
inline

Definition at line 255 of file scalar.hpp.

256{
257 return lhs._data * rhs._data;
258}

References tinysimd::scalarT< T, typename >::_data.

◆ operator*() [6/8]

template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > tinysimd::operator* ( scalarT< T >  lhs,
rhs 
)
inline

Definition at line 267 of file scalar.hpp.

268{
269 return lhs._data * rhs;
270}

References tinysimd::scalarT< T, typename >::_data.

◆ operator*() [7/8]

template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > tinysimd::operator* ( lhs,
details::long_simd< SimdType, Width >  rhs 
)
inline

Definition at line 643 of file tinysimd.hpp.

645{
647 return typename vec_t::chunkType(
648 static_cast<typename vec_t::scalarType>(lhs)) *
649 rhs;
650}

◆ operator*() [8/8]

template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > tinysimd::operator* ( lhs,
scalarT< T >  rhs 
)
inline

Definition at line 261 of file scalar.hpp.

262{
263 return lhs * rhs._data;
264}

References tinysimd::scalarT< T, typename >::_data.

◆ operator+() [1/8]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::operator+ ( const typename details::long_simd< SimdType, Width >::chunkType &  lhs,
details::long_simd< SimdType, Width >  rhs 
)
inline

Definition at line 514 of file tinysimd.hpp.

517{
518 rhs += lhs;
519 return rhs;
520}

◆ operator+() [2/8]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::operator+ ( details::long_simd< SimdType, Width >  lhs,
const details::long_simd< SimdType, Width > &  rhs 
)
inline

Definition at line 496 of file tinysimd.hpp.

499{
500 lhs += rhs;
501 return lhs;
502}

◆ operator+() [3/8]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::operator+ ( details::long_simd< SimdType, Width >  lhs,
const typename details::long_simd< SimdType, Width >::chunkType &  rhs 
)
inline

Definition at line 505 of file tinysimd.hpp.

508{
509 lhs += rhs;
510 return lhs;
511}

◆ operator+() [4/8]

template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > tinysimd::operator+ ( details::long_simd< SimdType, Width >  lhs,
rhs 
)
inline

Definition at line 524 of file tinysimd.hpp.

526{
527 lhs += rhs;
528 return lhs;
529}

◆ operator+() [5/8]

template<typename T >
scalarT< T > tinysimd::operator+ ( scalarT< T >  lhs,
scalarT< T >  rhs 
)
inline

Definition at line 214 of file scalar.hpp.

215{
216 return lhs._data + rhs._data;
217}

References tinysimd::scalarT< T, typename >::_data.

◆ operator+() [6/8]

template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > tinysimd::operator+ ( scalarT< T >  lhs,
rhs 
)
inline

Definition at line 226 of file scalar.hpp.

227{
228 return lhs._data + rhs;
229}

References tinysimd::scalarT< T, typename >::_data.

◆ operator+() [7/8]

template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > tinysimd::operator+ ( lhs,
details::long_simd< SimdType, Width >  rhs 
)
inline

Definition at line 533 of file tinysimd.hpp.

535{
537 return typename vec_t::chunkType(
538 static_cast<typename vec_t::scalarType>(lhs)) +
539 rhs;
540}

◆ operator+() [8/8]

template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > tinysimd::operator+ ( lhs,
scalarT< T >  rhs 
)
inline

Definition at line 220 of file scalar.hpp.

221{
222 return lhs + rhs._data;
223}

References tinysimd::scalarT< T, typename >::_data.

◆ operator-() [1/10]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::operator- ( const typename details::long_simd< SimdType, Width >::chunkType &  lhs,
details::long_simd< SimdType, Width >  rhs 
)
inline

Definition at line 561 of file tinysimd.hpp.

564{
566 for (size_t i = 0; i < rhs.numChunks; ++i)
567 {
568 rhs._data[i] = lhs - rhs._data[i];
569 }
570 return rhs;
571}

References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.

◆ operator-() [2/10]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::operator- ( details::long_simd< SimdType, Width >  in)
inline

Definition at line 594 of file tinysimd.hpp.

596{
598 for (size_t i = 0; i < in.numChunks; ++i)
599 {
600 in._data[i] = -in._data[i];
601 }
602 return in;
603}

References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.

◆ operator-() [3/10]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::operator- ( details::long_simd< SimdType, Width >  lhs,
const details::long_simd< SimdType, Width > &  rhs 
)
inline

Definition at line 543 of file tinysimd.hpp.

546{
547 lhs -= rhs;
548 return lhs;
549}

◆ operator-() [4/10]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::operator- ( details::long_simd< SimdType, Width >  lhs,
const typename details::long_simd< SimdType, Width >::chunkType &  rhs 
)
inline

Definition at line 552 of file tinysimd.hpp.

555{
556 lhs -= rhs;
557 return lhs;
558}

◆ operator-() [5/10]

template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > tinysimd::operator- ( details::long_simd< SimdType, Width >  lhs,
rhs 
)
inline

Definition at line 575 of file tinysimd.hpp.

577{
578 lhs -= rhs;
579 return lhs;
580}

◆ operator-() [6/10]

template<typename T >
scalarT< T > tinysimd::operator- ( scalarT< T >  in)
inline

Definition at line 249 of file scalar.hpp.

250{
251 return -in._data;
252}

References tinysimd::scalarT< T, typename >::_data.

◆ operator-() [7/10]

template<typename T >
scalarT< T > tinysimd::operator- ( scalarT< T >  lhs,
scalarT< T >  rhs 
)
inline

Definition at line 232 of file scalar.hpp.

233{
234 return lhs._data - rhs._data;
235}

References tinysimd::scalarT< T, typename >::_data.

◆ operator-() [8/10]

template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > tinysimd::operator- ( scalarT< T >  lhs,
rhs 
)
inline

Definition at line 244 of file scalar.hpp.

245{
246 return lhs._data - rhs;
247}

References tinysimd::scalarT< T, typename >::_data.

◆ operator-() [9/10]

template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > tinysimd::operator- ( lhs,
details::long_simd< SimdType, Width >  rhs 
)
inline

Definition at line 584 of file tinysimd.hpp.

586{
588 return typename vec_t::chunkType(
589 static_cast<typename vec_t::scalarType>(lhs)) -
590 rhs;
591}

◆ operator-() [10/10]

template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > tinysimd::operator- ( lhs,
scalarT< T >  rhs 
)
inline

Definition at line 238 of file scalar.hpp.

239{
240 return lhs - rhs._data;
241}

References tinysimd::scalarT< T, typename >::_data.

◆ operator/() [1/8]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::operator/ ( const typename details::long_simd< SimdType, Width >::chunkType &  lhs,
details::long_simd< SimdType, Width >  rhs 
)
inline

Definition at line 671 of file tinysimd.hpp.

674{
676 for (size_t i = 0; i < rhs.numChunks; ++i)
677 {
678 rhs._data[i] = lhs / rhs._data[i];
679 }
680 return rhs;
681}

References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, and TINYSIMD_PRAGMA_UNROLL.

◆ operator/() [2/8]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::operator/ ( details::long_simd< SimdType, Width >  lhs,
const details::long_simd< SimdType, Width > &  rhs 
)
inline

Definition at line 653 of file tinysimd.hpp.

656{
657 lhs /= rhs;
658 return lhs;
659}

◆ operator/() [3/8]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::operator/ ( details::long_simd< SimdType, Width >  lhs,
const typename details::long_simd< SimdType, Width >::chunkType &  rhs 
)
inline

Definition at line 662 of file tinysimd.hpp.

665{
666 lhs /= rhs;
667 return lhs;
668}

◆ operator/() [4/8]

template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > tinysimd::operator/ ( details::long_simd< SimdType, Width >  lhs,
rhs 
)
inline

Definition at line 685 of file tinysimd.hpp.

687{
688 lhs /= rhs;
689 return lhs;
690}

◆ operator/() [5/8]

template<typename T >
scalarT< T > tinysimd::operator/ ( scalarT< T >  lhs,
scalarT< T >  rhs 
)
inline

Definition at line 273 of file scalar.hpp.

274{
275 return lhs._data / rhs._data;
276}

References tinysimd::scalarT< T, typename >::_data.

◆ operator/() [6/8]

template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > tinysimd::operator/ ( scalarT< T >  lhs,
rhs 
)
inline

Definition at line 285 of file scalar.hpp.

286{
287 return lhs._data / rhs;
288}

References tinysimd::scalarT< T, typename >::_data.

◆ operator/() [7/8]

template<typename SimdType , unsigned int Width, typename U , typename std::enable_if< std::is_arithmetic_v< U >, bool >::type = 0>
details::long_simd< SimdType, Width > tinysimd::operator/ ( lhs,
details::long_simd< SimdType, Width >  rhs 
)
inline

Definition at line 694 of file tinysimd.hpp.

696{
698 return typename vec_t::chunkType(
699 static_cast<typename vec_t::scalarType>(lhs)) /
700 rhs;
701}

◆ operator/() [8/8]

template<typename T , typename U , typename = typename std::enable_if<std::is_arithmetic_v<U>>::type>
scalarT< T > tinysimd::operator/ ( lhs,
scalarT< T >  rhs 
)
inline

Definition at line 279 of file scalar.hpp.

280{
281 return lhs / rhs._data;
282}

References tinysimd::scalarT< T, typename >::_data.

◆ operator<<()

template<class T , typename = typename std::enable_if<tinysimd::is_vector_v<T>>::type>
std::ostream & tinysimd::operator<< ( std::ostream &  os,
const T &  avec 
)

Definition at line 48 of file io.hpp.

49{
50 // Note the type cast to 'unsigned int' is only necessary to
51 // overcome a bug in Centos 7 gcc 4.8.5 package
52 alignas((unsigned int)T::alignment) typename T::scalarArray tmp;
53 avec.store(tmp);
54 for (unsigned short i = 0; i < T::width; ++i)
55 {
56 os << tmp[i] << '\t';
57 }
58 return os;
59}

◆ operator>() [1/2]

scalarMask tinysimd::operator> ( scalarT< double >  lhs,
scalarT< double >  rhs 
)
inline

Definition at line 417 of file scalar.hpp.

418{
419 return lhs._data > rhs._data;
420}

References tinysimd::scalarT< T, typename >::_data.

◆ operator>() [2/2]

scalarMask tinysimd::operator> ( scalarT< float >  lhs,
scalarT< float >  rhs 
)
inline

Definition at line 422 of file scalar.hpp.

423{
424 return lhs._data > rhs._data;
425}

References tinysimd::scalarT< T, typename >::_data.

◆ sqrt() [1/2]

template<typename SimdType , unsigned int Width>
details::long_simd< SimdType, Width > tinysimd::sqrt ( details::long_simd< SimdType, Width >  in)
inline

Definition at line 704 of file tinysimd.hpp.

706{
708 for (size_t i = 0; i < in.numChunks; ++i)
709 {
710 in._data[i] = sqrt(in._data[i]);
711 }
712 return in;
713}
scalarT< T > sqrt(scalarT< T > in)
Definition scalar.hpp:290

References tinysimd::details::long_simd< SimdType, Width >::_data, tinysimd::details::long_simd< SimdType, Width >::numChunks, sqrt(), and TINYSIMD_PRAGMA_UNROLL.

◆ sqrt() [2/2]

template<typename T >
scalarT< T > tinysimd::sqrt ( scalarT< T >  in)
inline

Definition at line 290 of file scalar.hpp.

291{
292 return std::sqrt(in._data);
293}

References tinysimd::scalarT< T, typename >::_data.

Referenced by Nektar::NekMatrix< DataType, StandardMatrixTag >::AbsMaxtoMinEigenValueRatio(), Nektar::MMFAdvection::AdvectionBellPlane(), Nektar::MMFAdvection::AdvectionBellSphere(), Nektar::PengRobinsonEoS::Alpha(), Nektar::RedlichKwongEoS::Alpha(), Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE(), Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE(), Nektar::UnitTests::BOOST_AUTO_TEST_CASE(), Nektar::LibUtilities::NekNonlinSysIterNewton::CalcInexactNewtonForcing(), Nektar::LibUtilities::NekNonlinSysIterNewtonHookStep::CalcL2Norm(), Nektar::LibUtilities::NekNonlinSysIterNewtonTrustRegion::CalcL2Norm(), Nektar::VortexWaveInteraction::CalcL2ToLinfPressure(), Nektar::VortexWaveInteraction::CalcNonLinearWaveForce(), Nektar::CFSImplicit::CalcRefValues(), Nektar::SolverUtils::MMFSystem::CartesianToSpherical(), COMPBL(), Nektar::MMFAdvection::ComputeCirculatingArclength(), Nektar::SolverUtils::ForcingSyntheticEddy::ComputeGaussian(), Nektar::MMFSWE::Computehhuhvflux(), Nektar::SpatialDomains::GeomFactors::ComputePrincipleDirection(), Nektar::MMFMaxwell::ComputeRadCloak(), Nektar::LibUtilities::NekNonlinSysIterNewtonHookStep::ComputeReducedResidualNorm(), Computestreakpositions(), Nektar::SolverUtils::MMFSystem::ComputeZimYim(), Nektar::MultiRegions::PreconditionerLowEnergy::CreateRefPrismGeom(), Nektar::MultiRegions::PreconditionerLowEnergy::CreateRefPyrGeom(), Nektar::MultiRegions::PreconditionerLowEnergy::CreateRefTetGeom(), Nektar::SpatialDomains::PointGeom::dist(), Nektar::distanceBetween(), Nektar::LibUtilities::NekLinSysIterGMRES::DoArnoldi(), Nektar::LibUtilities::NekLinSysIterGMRESLoc::DoArnoldi(), Nektar::LibUtilities::NekLinSysIterCGLoc::DoConjugateGradient(), Nektar::LibUtilities::NekLinSysIterCG::DoConjugateGradient(), Nektar::LibUtilities::NekLinSysIterGMRES::DoGivensRotation(), Nektar::LibUtilities::NekLinSysIterGMRESLoc::DoGivensRotation(), Nektar::LibUtilities::NekLinSysIterGMRESLoc::DoGMRES(), Nektar::LibUtilities::NekLinSysIterGMRES::DoGMRES(), Nektar::LibUtilities::NekLinSysIterGMRES::DoGmresRestart(), Nektar::LibUtilities::NekLinSysIterGMRESLoc::DoGmresRestart(), Nektar::MultiRegions::GlobalLinSysIterative::DoProjection(), Nektar::SolverUtils::DriverSteadyState::EvalEV_ScalarSFD(), Nektar::IsentropicVortexBC::EvaluateIsentropicVortex(), Nektar::CompressibleFlowSystem::EvaluateIsentropicVortex(), Nektar::MMFSWE::EvaluateWaterDepth(), Nektar::LibUtilities::Interpreter::ExpressionEvaluator::ExpressionEvaluator(), Vmath::FillWhiteNoise(), Nektar::SolverUtils::FilterAeroForces::FilterAeroForces(), Nektar::MultiRegions::DisContField::FindPeriodicTraces(), Nektar::FieldUtils::ProcessPhiFromFile::FindShortestDist(), Nektar::LibUtilities::functions::functions(), Nektar::MMFMaxwell::GaussianPulse(), Nektar::LibUtilities::Basis::GenBasis(), Nektar::MMFMaxwell::GenerateSigmaPML(), Nektar::FieldUtils::ProcessBodyFittedVelocity::GenPntwiseBodyFittedCoordSys(), Nektar::PowerPressureArea::GetC0(), Nektar::VariableConverter::GetDynamicViscosity(), Nektar::CompressibleFlowSystem::GetExactRinglebFlow(), Nektar::SpatialDomains::QuadGeom::GetFaceOrientation(), Nektar::SolverUtils::MMFSystem::GetIncidentField(), Nektar::FieldUtils::ProcessCFL::GetMaxStdVelocity(), Nektar::UnsteadyAdvectionDiffusion::GetMaxStdVelocity(), Nektar::Extrapolate::GetMaxStdVelocity(), GetNewVertexLocation(), Nektar::FieldUtils::ProcessWallNormalData::GetNormals(), Nektar::FieldUtils::ProcessQualityMetric::GetQ(), Nektar::CompressibleSolver::GetRoeSoundSpeed(), Nektar::VariableConverter::GetSensor(), Nektar::PengRobinsonEoS::GetTemperatureKernel(), Nektar::RedlichKwongEoS::GetTemperatureKernel(), Nektar::FieldUtils::ProcessWSS::GetViscosity(), Nektar::SolverUtils::MMFSystem::GramSchumitz(), Nektar::guessp(), Nektar::StdRegions::StdExpansion::H1(), Nektar::FieldUtils::ProcessWallNormalData::isInProjectedArea2D(), Nektar::FieldUtils::ProcessWallNormalData::isInProjectedArea3D(), Nektar::StdRegions::StdExpansion::L2(), Nektar::L2Norm(), Nektar::NonlinearPeregrine::LaitoneSolitaryWave(), Nektar::MMFSWE::LaxFriedrichFlux(), Nektar::FieldUtils::ProcessBodyFittedVelocity::LocCoordForNearestPntOnBndElmt_2D(), Nektar::PengRobinsonEoS::LogTerm(), Nektar::Magnitude(), main(), MappingEVids(), Nektar::ShallowWaterSystem::MatrixMultiplyMatrixFree(), Nektar::CFSImplicit::MatrixMultiplyMatrixFreeCoeff(), Nektar::FieldUtils::MatSymEVals(), Nektar::MMFDiffusion::Morphogenesis(), Nektar::SpatialDomains::Geometry2D::NewtonIterationForLocCoord(), Nektar::SpatialDomains::Geometry3D::NewtonIterationForLocCoord(), Nektar::FieldUtils::ProcessWallNormalData::NewtonIterForLocCoordOnBndElmt(), OUTPUT(), Nektar::MMFDiffusion::PlanePhiWave(), Nektar::FieldUtils::ProcessBodyFittedVelocity::PntToBndElmtPntDistance(), Nektar::CFSImplicit::PointFluxJacobianPoint(), Nektar::prefun(), Nektar::MMFMaxwell::print_MMF(), Nektar::FieldUtils::OutputFileBase::PrintErrorFromPts(), Nektar::MMFMaxwell::Printout_SurfaceCurrent(), Nektar::MultiRegions::AssemblyMap::PrintStats(), Nektar::QInflow::Q_RiemannSolver(), Nektar::RCROutflow::R_RiemannSolver(), Nektar::ROutflow::R_RiemannSolver(), Nektar::LibUtilities::rad(), Nektar::MMFSWE::RiemannSolverHLLC(), Nektar::RoeKernel(), Nektar::SolverUtils::MMFSystem::RootMeanSquare(), Nektar::MMFSWE::RusanovFlux(), Nektar::FieldUtils::ProcessBodyFittedVelocity::ScaledCrosssProduct(), Nektar::Newmark_BetaSolver::SetNewmarkBeta(), Nektar::SpatialDomains::PrismGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::PyrGeom::SetUpFaceOrientation(), Nektar::SpatialDomains::TetGeom::SetUpFaceOrientation(), Nektar::LibUtilities::DIRKTimeIntegrationScheme::SetupSchemeData(), Nektar::LibUtilities::IMEXdirkTimeIntegrationScheme::SetupSchemeData_2_2_2(), Nektar::LibUtilities::IMEXdirkTimeIntegrationScheme::SetupSchemeData_2_3_2(), Nektar::LibUtilities::IMEXdirkTimeIntegrationScheme::SetupSchemeData_2_3_3(), Nektar::LibUtilities::DIRKTimeIntegrationScheme::SetupSchemeDataESDIRK(), Nektar::IncNavierStokes::SetUpWomersley(), Nektar::IncNavierStokes::SetWomersleyBoundary(), Nektar::LibUtilities::NekNonlinSysIterNewtonHookStep::SolveReducedHookStep(), Nektar::SpatialDomains::Geometry2D::SolveStraightEdgeQuad(), sqrt(), Nektar::MMFMaxwell::TestMaxwell1D(), Nektar::MMFMaxwell::TestMaxwell2DPEC(), Nektar::MMFMaxwell::TestMaxwell2DPMC(), Nektar::MMFSWE::TestVorticityComputation(), Nektar::MultiRegions::GlobalLinSysIterative::UpdateKnownSolutions(), Nektar::EnforceEntropyPressure::v_Apply(), Nektar::EnforceEntropyTotalEnthalpy::v_Apply(), Nektar::EnforceEntropyVelocity::v_Apply(), Nektar::RiemannInvariantBC::v_Apply(), Nektar::RinglebFlowBC::v_Apply(), Nektar::LibUtilities::NekNonlinSysIterNewtonBacktrack::v_ApplyNewtonUpdate(), Nektar::LibUtilities::NekNonlinSysIterNewtonHookStep::v_ApplyNewtonUpdate(), Nektar::LibUtilities::NekNonlinSysIterNewtonTrustRegion::v_ApplyNewtonUpdate(), Nektar::LocalRegions::QuadExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TriExp::v_ComputeTraceNormal(), Nektar::LocalRegions::HexExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PrismExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PyrExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TetExp::v_ComputeTraceNormal(), Nektar::LocalRegions::SegExp::v_ComputeTraceNormal(), Nektar::SpatialDomains::RefRegionCylinder::v_Contains(), Nektar::SpatialDomains::RefRegionParallelogram::v_Contains(), Nektar::AInflow::v_DoBoundary(), Nektar::LibUtilities::NekLinSysIterFixedpointJacobi::v_DoIterate(), Nektar::LinearElasticSystem::v_DoSolve(), Nektar::MMFMaxwell::v_DoSolve(), Nektar::SpatialDomains::QuadGeom::v_FillGeom(), Nektar::SpatialDomains::TriGeom::v_FillGeom(), Nektar::SpatialDomains::Geometry2D::v_FindDistance(), Nektar::SpatialDomains::SegGeom::v_FindDistance(), Nektar::BetaPressureArea::v_GetAFromChars(), Nektar::EmpiricalPressureArea::v_GetAFromChars(), Nektar::TemplatePressureArea::v_GetAFromChars(), Nektar::BetaPressureArea::v_GetC(), Nektar::EmpiricalPressureArea::v_GetC(), Nektar::EmpiricalPressureArea::v_GetCharIntegral(), Nektar::PengRobinsonEoS::v_GetDPDe_rho(), Nektar::PengRobinsonEoS::v_GetDPDrho_e(), Nektar::PengRobinsonEoS::v_GetEFromRhoP(), Nektar::RedlichKwongEoS::v_GetEFromRhoP(), Nektar::PengRobinsonEoS::v_GetEntropy(), Nektar::SpatialDomains::Geometry1D::v_GetLocCoords(), Nektar::SpatialDomains::Geometry2D::v_GetLocCoords(), Nektar::AcousticSystem::v_GetMaxStdVelocity(), Nektar::CompressibleFlowSystem::v_GetMaxStdVelocity(), Nektar::BetaPressureArea::v_GetPressure(), Nektar::EmpiricalPressureArea::v_GetPressure(), Nektar::PowerPressureArea::v_GetPressure(), Nektar::IdealGasEoS::v_GetSoundSpeed(), Nektar::LocalRegions::QuadExp::v_GetTraceQFactors(), Nektar::SolverUtils::EquationSystem::v_H1Error(), Nektar::MMFDiffusion::v_InitObject(), Nektar::CFSImplicit::v_InitObject(), Nektar::MMFMaxwell::v_InitObject(), Nektar::MultiRegions::ExpList3DHomogeneous1D::v_L2(), Nektar::MultiRegions::ExpList3DHomogeneous2D::v_L2(), Nektar::MMFSWE::v_L2Error(), Nektar::SolverUtils::EquationSystem::v_L2Error(), Nektar::PulseWaveSystem::v_L2Error(), Nektar::LibUtilities::NodalUtilTriangle::v_ModeZeroIntegral(), Nektar::LibUtilities::NodalUtilTetrahedron::v_ModeZeroIntegral(), Nektar::LibUtilities::NodalUtilPrism::v_ModeZeroIntegral(), Nektar::LibUtilities::NodalUtilTriangle::v_OrthoBasis(), Nektar::LibUtilities::NodalUtilTetrahedron::v_OrthoBasis(), Nektar::LibUtilities::NodalUtilPrism::v_OrthoBasis(), Nektar::LibUtilities::NodalUtilTriangle::v_OrthoBasisDeriv(), Nektar::LibUtilities::NodalUtilTetrahedron::v_OrthoBasisDeriv(), Nektar::LibUtilities::NodalUtilPrism::v_OrthoBasisDeriv(), Nektar::Dummy::v_Output(), Nektar::SolverUtils::StatLagrangianPoints::v_OutputError(), Nektar::StdRegions::StdPrismExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdTetExp::v_PhysEvaluateBasis(), Nektar::StdRegions::StdTriExp::v_PhysEvaluateBasis(), Nektar::HLLSolver::v_PointSolve(), Nektar::LaxFriedrichsSolver::v_PointSolve(), Nektar::LinearHLLSolver::v_PointSolve(), Nektar::HLLCSolver::v_PointSolve(), Nektar::HLLSolver::v_PointSolve(), Nektar::LaxFriedrichsSolver::v_PointSolve(), Nektar::LEELaxFriedrichsSolver::v_PointSolve(), Nektar::LEEUpwindSolver::v_PointSolve(), Nektar::APELaxFriedrichsSolver::v_PointSolve(), Nektar::APEUpwindSolver::v_PointSolve(), Nektar::ExactSolverToro::v_PointSolve(), Nektar::HLLCSolver::v_PointSolve(), Nektar::FieldUtils::ProcessBodyFittedVelocity::v_Process(), Nektar::FieldUtils::ProcessMultiShear::v_Process(), Nektar::FieldUtils::ProcessVortexInducedVelocity::v_Process(), Nektar::FieldUtils::ProcessWallNormalData::v_Process(), Nektar::APE::v_RiemannInvariantBC(), Nektar::LEE::v_RiemannInvariantBC(), Nektar::LibUtilities::NekNonlinSysIterNewton::v_SolveSystem(), Nektar::SolverUtils::UnsteadySystem::v_SteadyStateResidual(), Nektar::CompressibleFlowSystem::v_SteadyStateResidual(), Nektar::LocalRegions::HexExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::PrismExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::PyrExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::QuadExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::TetExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::TriExp::v_SVVLaplacianFilter(), Nektar::LocalRegions::Expansion2D::v_TraceNormLen(), Nektar::LocalRegions::Expansion3D::v_TraceNormLen(), Nektar::CourtemancheRamirezNattel98::v_Update(), Nektar::Fox02::v_Update(), Nektar::LuoRudy91::v_Update(), Nektar::TenTusscher06::v_Update(), Nektar::Winslow99::v_Update(), Nektar::FieldUtils::ProcessPhiFromFile::Vector2edge(), Vmath::Vsqrt(), and Nektar::AcousticSystem::WhiteNoiseBC().

Variable Documentation

◆ is_aligned

constexpr struct tinysimd::is_aligned_t tinysimd::is_aligned
static

◆ is_load_tag_v

template<class T >
constexpr bool tinysimd::is_load_tag_v = is_load_tag<T>::value
inlineconstexpr

Definition at line 84 of file traits.hpp.

◆ is_not_aligned

constexpr struct tinysimd::is_not_aligned_t tinysimd::is_not_aligned
static

◆ is_not_reused

constexpr struct tinysimd::is_not_reused_t tinysimd::is_not_reused
static

◆ is_requiring_alignment_v

template<class T >
constexpr bool tinysimd::is_requiring_alignment_v
inlineconstexpr
Initial value:
=
is_requiring_alignment<T>::value

Definition at line 88 of file traits.hpp.

◆ is_streaming_v

template<class T >
constexpr bool tinysimd::is_streaming_v = is_streaming<T>::value
inlineconstexpr

Definition at line 86 of file traits.hpp.

◆ is_vector_floating_point_v

template<class T >
constexpr bool tinysimd::is_vector_floating_point_v
inlineconstexpr
Initial value:
=
is_vector_floating_point<T>::value

Definition at line 173 of file traits.hpp.

Referenced by Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE(), and Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE().

◆ is_vector_integral_v

template<class T >
constexpr bool tinysimd::is_vector_integral_v = is_vector_integral<T>::value
inlineconstexpr

Definition at line 190 of file traits.hpp.

◆ is_vector_v

template<class T >
constexpr bool tinysimd::is_vector_v = is_vector<T>::value
inlineconstexpr

Definition at line 154 of file traits.hpp.

◆ PACKMULTIPLIER

constexpr unsigned int tinysimd::PACKMULTIPLIER = 1
staticconstexpr

Definition at line 99 of file tinysimd.hpp.

Referenced by Nektar::SimdLibTests::BOOST_AUTO_TEST_CASE().

◆ PACKSIZE

constexpr unsigned int tinysimd::PACKSIZE
staticconstexpr
Initial value:
=
abi::default_longsimd_width<double>::value

Definition at line 118 of file tinysimd.hpp.