Expression Templates Library (ETL)
Public Types | Static Public Member Functions | List of all members
etl::no_vec Struct Reference

Vectorization support when no vectorization is enabled. More...

#include <no_vectorization.hpp>

Public Types

template<typename T >
using traits = no_intrinsic_traits< T >
 The traits for this vectorization implementation.
 
template<typename T >
using vec_type = typename traits< T >::intrinsic_type
 The vector type for this vectorization implementation.
 

Static Public Member Functions

template<typename F , typename M >
static void storeu ([[maybe_unused]] F *memory, [[maybe_unused]] M value)
 Unaligned store value to memory. More...
 
template<typename F , typename M >
static void store ([[maybe_unused]] F *memory, [[maybe_unused]] M value)
 Aligned store value to memory. More...
 
template<typename F >
static F load ([[maybe_unused]] const F *memory)
 Aligned load a vector from memory. More...
 
template<typename F >
static F loadu ([[maybe_unused]] const F *memory)
 Unaligned load a vector from memory. More...
 
template<typename F >
static F set ([[maybe_unused]] F value)
 Create a vector containing the given value. More...
 
template<typename F >
static F round_up ([[maybe_unused]] F x)
 Create a vector containing the rounded up values. More...
 
template<typename M >
static M add ([[maybe_unused]] M lhs, [[maybe_unused]] M rhs)
 Vector addition or lhs and rhs. More...
 
template<typename M >
static M sub ([[maybe_unused]] M lhs, [[maybe_unused]] M rhs)
 Vector subtraction or lhs and rhs. More...
 
template<typename M >
static M fmadd ([[maybe_unused]] M a, [[maybe_unused]] M b, [[maybe_unused]] M c)
 Vector multiplication of a and b and add the result to c. More...
 
template<typename M >
static M mul ([[maybe_unused]] M lhs, [[maybe_unused]] M rhs)
 Vector multiplication or lhs and rhs. More...
 
template<typename M >
static M div ([[maybe_unused]] M lhs, [[maybe_unused]] M rhs)
 Vector division or lhs and rhs. More...
 
template<typename M >
static M max ([[maybe_unused]] M lhs, [[maybe_unused]] M rhs)
 Vector maximum or lhs and rhs. More...
 
template<typename M >
static M min ([[maybe_unused]] M lhs, [[maybe_unused]] M rhs)
 Vector minimum or lhs and rhs. More...
 
template<typename M >
static M sqrt ([[maybe_unused]] M value)
 Vector square root. More...
 
template<typename M >
static M minus ([[maybe_unused]] M value)
 Compute the negative value of the input. More...
 
template<typename M >
static M hadd ([[maybe_unused]] M value)
 Perform an horizontal sum of the given vector.
 
template<typename T >
static T zero ()
 Return a vector type filled with zeroes of the correct type.
 

Detailed Description

Vectorization support when no vectorization is enabled.

This class is purely here to ensure compilation, it will never be called at runtime

Member Function Documentation

◆ add()

template<typename M >
static M etl::no_vec::add ( [[maybe_unused] ] M  lhs,
[[maybe_unused] ] M  rhs 
)
inlinestatic

Vector addition or lhs and rhs.

Parameters
lhsThe left hand side of the operation
rhsThe right hand side of the operation
Returns
Vector of the results

◆ div()

template<typename M >
static M etl::no_vec::div ( [[maybe_unused] ] M  lhs,
[[maybe_unused] ] M  rhs 
)
inlinestatic

Vector division or lhs and rhs.

Parameters
lhsThe left hand side of the operation
rhsThe right hand side of the operation
Returns
Vector of the results

◆ fmadd()

template<typename M >
static M etl::no_vec::fmadd ( [[maybe_unused] ] M  a,
[[maybe_unused] ] M  b,
[[maybe_unused] ] M  c 
)
inlinestatic

Vector multiplication of a and b and add the result to c.

Parameters
aThe left hand side of the multiplication
bThe right hand side of the multiplication
cThe right hand side of the addition
Returns
Vector of the results

◆ load()

template<typename F >
static F etl::no_vec::load ( [[maybe_unused] ] const F *  memory)
inlinestatic

Aligned load a vector from memory.

Parameters
memoryThe target memory
Returns
Vector of values from memory

◆ loadu()

template<typename F >
static F etl::no_vec::loadu ( [[maybe_unused] ] const F *  memory)
inlinestatic

Unaligned load a vector from memory.

Parameters
memoryThe target memory
Returns
Vector of values from memory

◆ max()

template<typename M >
static M etl::no_vec::max ( [[maybe_unused] ] M  lhs,
[[maybe_unused] ] M  rhs 
)
inlinestatic

Vector maximum or lhs and rhs.

Parameters
lhsThe left hand side of the operation
rhsThe right hand side of the operation
Returns
Vector of the results

◆ min()

template<typename M >
static M etl::no_vec::min ( [[maybe_unused] ] M  lhs,
[[maybe_unused] ] M  rhs 
)
inlinestatic

Vector minimum or lhs and rhs.

Parameters
lhsThe left hand side of the operation
rhsThe right hand side of the operation
Returns
Vector of the results

◆ minus()

template<typename M >
static M etl::no_vec::minus ( [[maybe_unused] ] M  value)
inlinestatic

Compute the negative value of the input.

Parameters
valueThe input values
Returns
The negative values of the input values

◆ mul()

template<typename M >
static M etl::no_vec::mul ( [[maybe_unused] ] M  lhs,
[[maybe_unused] ] M  rhs 
)
inlinestatic

Vector multiplication or lhs and rhs.

Parameters
lhsThe left hand side of the operation
rhsThe right hand side of the operation
Returns
Vector of the results

◆ round_up()

template<typename F >
static F etl::no_vec::round_up ( [[maybe_unused] ] F  x)
inlinestatic

Create a vector containing the rounded up values.

Parameters
xThe value
Returns
Vector of value

◆ set()

template<typename F >
static F etl::no_vec::set ( [[maybe_unused] ] F  value)
inlinestatic

Create a vector containing the given value.

Parameters
valueThe value
Returns
Vector of value

◆ sqrt()

template<typename M >
static M etl::no_vec::sqrt ( [[maybe_unused] ] M  value)
inlinestatic

Vector square root.

Parameters
valueThe input values
Returns
The square root of the input values

◆ store()

template<typename F , typename M >
static void etl::no_vec::store ( [[maybe_unused] ] F *  memory,
[[maybe_unused] ] M  value 
)
inlinestatic

Aligned store value to memory.

Parameters
memoryThe target memory
valueThe value to store

◆ storeu()

template<typename F , typename M >
static void etl::no_vec::storeu ( [[maybe_unused] ] F *  memory,
[[maybe_unused] ] M  value 
)
inlinestatic

Unaligned store value to memory.

Parameters
memoryThe target memory
valueThe value to store

◆ sub()

template<typename M >
static M etl::no_vec::sub ( [[maybe_unused] ] M  lhs,
[[maybe_unused] ] M  rhs 
)
inlinestatic

Vector subtraction or lhs and rhs.

Parameters
lhsThe left hand side of the operation
rhsThe right hand side of the operation
Returns
Vector of the results

The documentation for this struct was generated from the following file: