Loading [MathJax]/extensions/TeX/newcommand.js
 deal.II version GIT relicensing-2968-g5f01c80b02 2025-03-29 13:10:00+00:00
\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}} \newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=} \newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]} \newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
Public Types | Static Public Member Functions | List of all members
internal::VectorizedArrayTrait< T > Struct Template Reference

#include <deal.II/base/vectorization.h>

Inheritance diagram for internal::VectorizedArrayTrait< T >:
Inheritance graph
[legend]

Public Types

using value_type = T
 
using vectorized_value_type = VectorizedArray< T >
 

Static Public Member Functions

static constexpr std::size_t width ()
 
static constexpr std::size_t stride ()
 
static value_typeget (value_type &value, unsigned int c)
 
static const value_typeget (const value_type &value, unsigned int c)
 
static value_typeget_from_vectorized (vectorized_value_type &values, unsigned int c)
 
static const value_typeget_from_vectorized (const vectorized_value_type &values, unsigned int c)
 

Detailed Description

template<typename T>
struct internal::VectorizedArrayTrait< T >

Definition at line 6405 of file vectorization.h.

Member Typedef Documentation

◆ value_type

template<typename T >
using internal::VectorizedArrayTrait< T >::value_type = T

Define scalar value type.

Definition at line 6410 of file vectorization.h.

◆ vectorized_value_type

template<typename T >
using internal::VectorizedArrayTrait< T >::vectorized_value_type = VectorizedArray<T>

Define vectorized value type for internal vectorization.

Definition at line 6424 of file vectorization.h.

Member Function Documentation

◆ width()

template<typename T >
static constexpr std::size_t internal::VectorizedArrayTrait< T >::width ( )
inlinestaticconstexpr

Return the width of template type.

Definition at line 6416 of file vectorization.h.

◆ stride()

template<typename T >
static constexpr std::size_t internal::VectorizedArrayTrait< T >::stride ( )
inlinestaticconstexpr

Return a stride which defines how often the template type T fits into the vectorized_value_type. This is useful to write vectorized templated code where the internal computation is vectorized and the user interface is optionally scalar or also vectorized.

Definition at line 6433 of file vectorization.h.

◆ get() [1/2]

template<typename T >
static value_type & internal::VectorizedArrayTrait< T >::get ( value_type value,
unsigned int  c 
)
inlinestatic

Get a reference to scalar value (on lane 0).

Definition at line 6442 of file vectorization.h.

◆ get() [2/2]

template<typename T >
static const value_type & internal::VectorizedArrayTrait< T >::get ( const value_type value,
unsigned int  c 
)
inlinestatic

Get a read-only reference to scalar value (on lane 0).

Definition at line 6454 of file vectorization.h.

◆ get_from_vectorized() [1/2]

template<typename T >
static value_type & internal::VectorizedArrayTrait< T >::get_from_vectorized ( vectorized_value_type values,
unsigned int  c 
)
inlinestatic

Get a reference to scalar value on lane c from a vectorized values field.

Definition at line 6466 of file vectorization.h.

◆ get_from_vectorized() [2/2]

template<typename T >
static const value_type & internal::VectorizedArrayTrait< T >::get_from_vectorized ( const vectorized_value_type values,
unsigned int  c 
)
inlinestatic

Get a read-only reference to scalar value on lane c from a vectorized values field.

Definition at line 6478 of file vectorization.h.


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