blitz Version 1.0.2
Loading...
Searching...
No Matches
blitz::TinyVector< T, 0 > Class Template Reference

#include <tinyvec2.h>

Inheritance diagram for blitz::TinyVector< T, 0 >:
Inheritance graph
Collaboration diagram for blitz::TinyVector< T, 0 >:
Collaboration graph

Public Types

typedef T T_numtype
 
typedef TinyVector< T_numtype, N_length > T_vector
 
typedef FastTV2Iterator< T_numtype, N_length > T_iterator
 
typedef T_numtypeiterator
 
typedef const T_numtypeconst_iterator
 
typedef FastTV2CopyIterator< T, N_length > T_range_result
 
- Public Types inherited from blitz::ETBase< T >
typedef T T_unwrapped
 

Public Member Functions

_bz_forceinline void _tv_evaluate (const T_expr &expr, T_update)
 This function selects evaluation path by calling select_evaluation with a bool argument which is false if the expression only contains TinyVector operands.
 
 TinyVector ()
 
 TinyVector (const TinyVector< T_numtype, N_length > &x)
 
 TinyVector (const TinyVector< T_numtype2, N_length > &x)
 
 TinyVector (const ETBase< T_expr > &expr)
 This constructor creates a TinyVector from another ETBase object.
 
 TinyVector (const _bz_ArrayExpr< T_expr > &expr)
 This constructor creates a TinyVector specifically from an expression.
 
 TinyVector (const T_numtype initValue)
 
 TinyVector (const T_numtype x[])
 
 TinyVector (T_numtype x0, T_numtype x1)
 
 TinyVector (T_numtype x0, T_numtype x1, T_numtype x2)
 
 TinyVector (T_numtype x0, T_numtype x1, T_numtype x2, T_numtype x3)
 
 TinyVector (T_numtype x0, T_numtype x1, T_numtype x2, T_numtype x3, T_numtype x4)
 
 TinyVector (T_numtype x0, T_numtype x1, T_numtype x2, T_numtype x3, T_numtype x4, T_numtype x5)
 
 TinyVector (T_numtype x0, T_numtype x1, T_numtype x2, T_numtype x3, T_numtype x4, T_numtype x5, T_numtype x6)
 
 TinyVector (T_numtype x0, T_numtype x1, T_numtype x2, T_numtype x3, T_numtype x4, T_numtype x5, T_numtype x6, T_numtype x7)
 
 TinyVector (T_numtype x0, T_numtype x1, T_numtype x2, T_numtype x3, T_numtype x4, T_numtype x5, T_numtype x6, T_numtype x7, T_numtype x8)
 
 TinyVector (T_numtype x0, T_numtype x1, T_numtype x2, T_numtype x3, T_numtype x4, T_numtype x5, T_numtype x6, T_numtype x7, T_numtype x8, T_numtype x9)
 
 TinyVector (T_numtype x0, T_numtype x1, T_numtype x2, T_numtype x3, T_numtype x4, T_numtype x5, T_numtype x6, T_numtype x7, T_numtype x8, T_numtype x9, T_numtype x10)
 
 ~TinyVector ()
 
T_iterator beginFast () const
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
T_numtype *restrict data ()
 
const T_numtype *restrict data () const
 
T_numtype *restrict dataFirst ()
 
const T_numtype *restrict dataFirst () const
 
const TinyVector< int, rank_shape () const
 
void _bz_assign (P_expr, P_updater)
 
T_numtype operator* () const
 
T_vectornoConst () const
 
const T_numtypeoperator() (unsigned i) const
 
T_numtype &restrict operator() (unsigned i)
 
T_numtype operator() (TinyVector< int, 1 > i) const
 
_bz_ArrayExpr< ArrayIndexMapping< typename asExpr< T_vector >::T_expr, N0 > > operator() (IndexPlaceholder< N0 >) const
 
const T_numtypeoperator[] (unsigned i) const
 
T_numtype &restrict operator[] (unsigned i)
 
const T_numtypefastRead (diffType i) const
 
bool isVectorAligned (diffType offset) const
 Since data_ is simd aligned by construction, we just have to check the offest.
 
bool canCollapse (int outerLoopRank, int innerLoopRank) const
 
ListInitializationSwitch< T_vector, T_numtype * > operator= (T_numtype x)
 
T_vectoroperator= (const ETBase< T_expr > &)
 
T_vectorinitialize (T_numtype)
 
T_vectoroperator+= (const T &)
 
T_vectoroperator-= (const T &)
 
T_vectoroperator*= (const T &)
 
T_vectoroperator/= (const T &)
 
T_vectoroperator%= (const T &)
 
T_vectoroperator^= (const T &)
 
T_vectoroperator&= (const T &)
 
T_vectoroperator|= (const T &)
 
T_vectoroperator>>= (const T &)
 
T_vectoroperator<<= (const T &)
 
T_numtype *restrict getInitializationIterator ()
 
_bz_forceinline void _tv_evaluate (const T_expr &expr, T_update)
 This function selects evaluation path by calling select_evaluation with a bool argument which is false if the expression only contains TinyVector operands.
 
- Public Member Functions inherited from blitz::ETBase< T >
 ETBase ()
 
 ETBase (const ETBase< T > &)
 
T & unwrap ()
 
const T & unwrap () const
 
ETBase< T > & wrap ()
 
const ETBase< T > & wrap () const
 

Static Public Member Functions

static int base ()
 
static int base (int rank)
 
static int dimensions ()
 
static int lbound (int rank)
 
static int lbound ()
 
static int length (int rank)
 
static int length ()
 
static int extent (int rank)
 
static int ordering (int storageRankIndex)
 
static int ordering ()
 
static int rank ()
 
static sizeType numElements ()
 
static diffType stride ()
 
static diffType stride (int rank)
 
static int ubound (int rank)
 
static int ubound ()
 
static bool lengthCheck (unsigned i)
 

Static Public Attributes

static const int rank_
 

Private Member Functions

void _tv_evaluate (const T_expr &expr, T_update)
 

Member Typedef Documentation

◆ const_iterator

typedef const T_numtype* blitz::TinyVector< T, N_length >::const_iterator

◆ iterator

typedef T_numtype* blitz::TinyVector< T, N_length >::iterator

◆ T_iterator

typedef FastTV2Iterator<T_numtype,N_length> blitz::TinyVector< T, N_length >::T_iterator

◆ T_numtype

typedef T blitz::TinyVector< T, N_length >::T_numtype

◆ T_range_result

typedef FastTV2CopyIterator<T, N_length> blitz::TinyVector< T, N_length >::T_range_result

◆ T_vector

typedef TinyVector<T_numtype,N_length> blitz::TinyVector< T, N_length >::T_vector

Constructor & Destructor Documentation

◆ TinyVector() [1/17]

blitz::TinyVector< T, N_length >::TinyVector ( )
inline

◆ TinyVector() [2/17]

blitz::TinyVector< T, N_length >::TinyVector ( const TinyVector< T_numtype, N_length > & x)

◆ TinyVector() [3/17]

blitz::TinyVector< T, N_length >::TinyVector ( const TinyVector< T_numtype2, N_length > & x)

◆ TinyVector() [4/17]

blitz::TinyVector< T, N_length >::TinyVector ( const ETBase< T_expr > & expr)
inlineexplicit

This constructor creates a TinyVector from another ETBase object.

It needs to be explicit to avoid all kinds of ambiguities.

◆ TinyVector() [5/17]

blitz::TinyVector< T, N_length >::TinyVector ( const _bz_ArrayExpr< T_expr > & expr)
inline

This constructor creates a TinyVector specifically from an expression.

This one we do NOT want to be explicit because that breaks simple construction assignments like "TinyVector<double, 1> v = a+b;", forcing the user to explicitly write it like a construction.

◆ TinyVector() [6/17]

blitz::TinyVector< T, N_length >::TinyVector ( const T_numtype initValue)
inline

◆ TinyVector() [7/17]

blitz::TinyVector< T, N_length >::TinyVector ( const T_numtype x[])
inline

◆ TinyVector() [8/17]

blitz::TinyVector< T, N_length >::TinyVector ( T_numtype x0,
T_numtype x1 )
inline

◆ TinyVector() [9/17]

blitz::TinyVector< T, N_length >::TinyVector ( T_numtype x0,
T_numtype x1,
T_numtype x2 )
inline

◆ TinyVector() [10/17]

blitz::TinyVector< T, N_length >::TinyVector ( T_numtype x0,
T_numtype x1,
T_numtype x2,
T_numtype x3 )
inline

◆ TinyVector() [11/17]

blitz::TinyVector< T, N_length >::TinyVector ( T_numtype x0,
T_numtype x1,
T_numtype x2,
T_numtype x3,
T_numtype x4 )
inline

◆ TinyVector() [12/17]

blitz::TinyVector< T, N_length >::TinyVector ( T_numtype x0,
T_numtype x1,
T_numtype x2,
T_numtype x3,
T_numtype x4,
T_numtype x5 )
inline

◆ TinyVector() [13/17]

blitz::TinyVector< T, N_length >::TinyVector ( T_numtype x0,
T_numtype x1,
T_numtype x2,
T_numtype x3,
T_numtype x4,
T_numtype x5,
T_numtype x6 )
inline

◆ TinyVector() [14/17]

blitz::TinyVector< T, N_length >::TinyVector ( T_numtype x0,
T_numtype x1,
T_numtype x2,
T_numtype x3,
T_numtype x4,
T_numtype x5,
T_numtype x6,
T_numtype x7 )
inline

◆ TinyVector() [15/17]

blitz::TinyVector< T, N_length >::TinyVector ( T_numtype x0,
T_numtype x1,
T_numtype x2,
T_numtype x3,
T_numtype x4,
T_numtype x5,
T_numtype x6,
T_numtype x7,
T_numtype x8 )
inline

◆ TinyVector() [16/17]

blitz::TinyVector< T, N_length >::TinyVector ( T_numtype x0,
T_numtype x1,
T_numtype x2,
T_numtype x3,
T_numtype x4,
T_numtype x5,
T_numtype x6,
T_numtype x7,
T_numtype x8,
T_numtype x9 )
inline

◆ TinyVector() [17/17]

blitz::TinyVector< T, N_length >::TinyVector ( T_numtype x0,
T_numtype x1,
T_numtype x2,
T_numtype x3,
T_numtype x4,
T_numtype x5,
T_numtype x6,
T_numtype x7,
T_numtype x8,
T_numtype x9,
T_numtype x10 )
inline

◆ ~TinyVector()

blitz::TinyVector< T, N_length >::~TinyVector ( )
inline

Member Function Documentation

◆ _bz_assign()

void blitz::TinyVector< T, N_length >::_bz_assign ( P_expr ,
P_updater  )

◆ _tv_evaluate() [1/3]

void blitz::TinyVector< T, N_length >::_tv_evaluate ( const T_expr & expr,
T_update  )
private

◆ _tv_evaluate() [2/3]

_bz_forceinline void blitz::TinyVector< T, N_length >::_tv_evaluate ( const T_expr & expr,
T_update  )

This function selects evaluation path by calling select_evaluation with a bool argument which is false if the expression only contains TinyVector operands.

◆ _tv_evaluate() [3/3]

_bz_forceinline void blitz::TinyVector< T, N_length >::_tv_evaluate ( const T_expr & expr,
T_update  )

This function selects evaluation path by calling select_evaluation with a bool argument which is false if the expression only contains TinyVector operands.

◆ base() [1/2]

static int blitz::TinyVector< T, N_length >::base ( )
inlinestatic

◆ base() [2/2]

static int blitz::TinyVector< T, N_length >::base ( int rank)
inlinestatic

◆ begin() [1/2]

iterator blitz::TinyVector< T, N_length >::begin ( )
inline

◆ begin() [2/2]

const_iterator blitz::TinyVector< T, N_length >::begin ( ) const
inline

◆ beginFast()

T_iterator blitz::TinyVector< T, N_length >::beginFast ( ) const
inline

◆ canCollapse()

bool blitz::TinyVector< T, N_length >::canCollapse ( int outerLoopRank,
int innerLoopRank ) const
inline

◆ data() [1/2]

T_numtype *restrict blitz::TinyVector< T, N_length >::data ( )
inline

◆ data() [2/2]

const T_numtype *restrict blitz::TinyVector< T, N_length >::data ( ) const
inline

◆ dataFirst() [1/2]

T_numtype *restrict blitz::TinyVector< T, N_length >::dataFirst ( )
inline

◆ dataFirst() [2/2]

const T_numtype *restrict blitz::TinyVector< T, N_length >::dataFirst ( ) const
inline

◆ dimensions()

static int blitz::TinyVector< T, N_length >::dimensions ( )
inlinestatic

◆ end() [1/2]

iterator blitz::TinyVector< T, N_length >::end ( )
inline

◆ end() [2/2]

const_iterator blitz::TinyVector< T, N_length >::end ( ) const
inline

◆ extent()

static int blitz::TinyVector< T, N_length >::extent ( int rank)
inlinestatic

◆ fastRead()

const T_numtype & blitz::TinyVector< T, N_length >::fastRead ( diffType i) const
inline

◆ getInitializationIterator()

T_numtype *restrict blitz::TinyVector< T, N_length >::getInitializationIterator ( )
inline

◆ initialize()

T_vector & blitz::TinyVector< T, N_length >::initialize ( T_numtype )

◆ isVectorAligned()

bool blitz::TinyVector< T, N_length >::isVectorAligned ( diffType offset) const
inline

Since data_ is simd aligned by construction, we just have to check the offest.

◆ lbound() [1/2]

static int blitz::TinyVector< T, N_length >::lbound ( )
inlinestatic

◆ lbound() [2/2]

static int blitz::TinyVector< T, N_length >::lbound ( int rank)
inlinestatic

◆ length() [1/2]

static int blitz::TinyVector< T, N_length >::length ( )
inlinestatic

◆ length() [2/2]

static int blitz::TinyVector< T, N_length >::length ( int rank)
inlinestatic

◆ lengthCheck()

static bool blitz::TinyVector< T, N_length >::lengthCheck ( unsigned i)
inlinestatic

◆ noConst()

T_vector & blitz::TinyVector< T, N_length >::noConst ( ) const
inline

◆ numElements()

static sizeType blitz::TinyVector< T, N_length >::numElements ( )
inlinestatic

◆ operator%=()

T_vector & blitz::TinyVector< T, N_length >::operator%= ( const T & )

◆ operator&=()

T_vector & blitz::TinyVector< T, N_length >::operator&= ( const T & )

◆ operator()() [1/4]

_bz_ArrayExpr< ArrayIndexMapping< typename asExpr< T_vector >::T_expr, N0 > > blitz::TinyVector< T, N_length >::operator() ( IndexPlaceholder< N0 > ) const

◆ operator()() [2/4]

T_numtype blitz::TinyVector< T, N_length >::operator() ( TinyVector< int, 1 > i) const
inline

◆ operator()() [3/4]

T_numtype &restrict blitz::TinyVector< T, N_length >::operator() ( unsigned i)
inline

◆ operator()() [4/4]

const T_numtype & blitz::TinyVector< T, N_length >::operator() ( unsigned i) const
inline

◆ operator*()

T_numtype blitz::TinyVector< T, N_length >::operator* ( ) const
inline

◆ operator*=()

T_vector & blitz::TinyVector< T, N_length >::operator*= ( const T & )

◆ operator+=()

T_vector & blitz::TinyVector< T, N_length >::operator+= ( const T & )

◆ operator-=()

T_vector & blitz::TinyVector< T, N_length >::operator-= ( const T & )

◆ operator/=()

T_vector & blitz::TinyVector< T, N_length >::operator/= ( const T & )

◆ operator<<=()

T_vector & blitz::TinyVector< T, N_length >::operator<<= ( const T & )

◆ operator=() [1/2]

T_vector & blitz::TinyVector< T, N_length >::operator= ( const ETBase< T_expr > & )

◆ operator=() [2/2]

ListInitializationSwitch< T_vector, T_numtype * > blitz::TinyVector< T, N_length >::operator= ( T_numtype x)
inline

◆ operator>>=()

T_vector & blitz::TinyVector< T, N_length >::operator>>= ( const T & )

◆ operator[]() [1/2]

T_numtype &restrict blitz::TinyVector< T, N_length >::operator[] ( unsigned i)
inline

◆ operator[]() [2/2]

const T_numtype & blitz::TinyVector< T, N_length >::operator[] ( unsigned i) const
inline

◆ operator^=()

T_vector & blitz::TinyVector< T, N_length >::operator^= ( const T & )

◆ operator|=()

T_vector & blitz::TinyVector< T, N_length >::operator|= ( const T & )

◆ ordering() [1/2]

static int blitz::TinyVector< T, N_length >::ordering ( )
inlinestatic

◆ ordering() [2/2]

static int blitz::TinyVector< T, N_length >::ordering ( int storageRankIndex)
inlinestatic

◆ rank()

static int blitz::TinyVector< T, N_length >::rank ( )
inlinestatic

◆ shape()

const TinyVector< int, rank_ > blitz::TinyVector< T, N_length >::shape ( ) const
inline

◆ stride() [1/2]

static diffType blitz::TinyVector< T, N_length >::stride ( )
inlinestatic

◆ stride() [2/2]

static diffType blitz::TinyVector< T, N_length >::stride ( int rank)
inlinestatic

◆ ubound() [1/2]

static int blitz::TinyVector< T, N_length >::ubound ( )
inlinestatic

◆ ubound() [2/2]

static int blitz::TinyVector< T, N_length >::ubound ( int rank)
inlinestatic

Member Data Documentation

◆ rank_

const int blitz::TinyVector< T, N_length >::rank_
static

The documentation for this class was generated from the following files: