Grid 0.7.0
iScalar< vtype > Class Template Reference

#include <Tensor_class.h>

Public Types

using Traits

Public Member Functions

accelerator iScalar ()=default
accelerator_inline iScalar (scalar_type s)
accelerator_inline iScalar (const Zero &z)
accelerator_inline iScalar< vtype > & operator= (const Zero &hero)
accelerator_inline iScalar< vtype > & operator*= (const iScalar< vtype > &r)
accelerator_inline iScalar< vtype > & operator-= (const iScalar< vtype > &r)
accelerator_inline iScalar< vtype > & operator+= (const iScalar< vtype > &r)
accelerator_inline vtype & operator() (void)
accelerator_inline const vtype & operator() (void) const
template<class U = vtype, class V = scalar_type, IfComplex< V > = 0, IfNotSimd< U > = 0>
accelerator_inline operator ComplexF () const
template<class U = vtype, class V = scalar_type, IfComplex< V > = 0, IfNotSimd< U > = 0>
accelerator_inline operator ComplexD () const
template<class U = vtype, class V = scalar_type, IfReal< V > = 0, IfNotSimd< U > = 0>
accelerator_inline operator RealD () const
template<class U = vtype, class V = scalar_type, IfInteger< V > = 0, IfNotSimd< U > = 0>
accelerator_inline operator Integer () const
template<class T, typename std::enable_if<!isGridTensor< T >::value, T >::type * = nullptr>
accelerator_inline iScalar< vtype > operator= (T arg)
template<class ttype>
accelerator_inline iScalar< vtype > operator= (const iScalar< ttype > &arg)
strong_inline const scalar_typebegin () const
strong_inline scalar_typebegin ()
strong_inline const scalar_typeend () const
strong_inline scalar_typeend ()

Static Public Member Functions

static accelerator_inline constexpr int Nsimd (void)

Data Fields

vtype _internal
 GridVector_CopyTraits

Friends

accelerator_inline void zeroit (iScalar< vtype > &that)
accelerator_inline void vstream (iScalar< vtype > &out, const iScalar< vtype > &in)
accelerator_inline void vbroadcast (iScalar< vtype > &out, const iScalar< vtype > &in, int lane)
accelerator_inline void prefetch (iScalar< vtype > &that)
accelerator_inline void permute (iScalar< vtype > &out, const iScalar< vtype > &in, int permutetype)
accelerator_inline void rotate (iScalar< vtype > &out, const iScalar< vtype > &in, int rot)
accelerator_inline void exchange (iScalar< vtype > &out1, iScalar< vtype > &out2, const iScalar< vtype > &in1, const iScalar< vtype > &in2, int type)
accelerator_inline iScalar< vtype > operator- (const iScalar< vtype > &r)
std::ostream & operator<< (std::ostream &stream, const iScalar< vtype > &o)

Detailed Description

template<class vtype>
class iScalar< vtype >

Definition at line 77 of file Tensor_class.h.

Member Typedef Documentation

◆ Traits

template<class vtype>
using iScalar< vtype >::Traits

Definition at line 81 of file Tensor_class.h.

Constructor & Destructor Documentation

◆ iScalar() [1/3]

template<class vtype>
accelerator iScalar< vtype >::iScalar ( )
default

◆ iScalar() [2/3]

template<class vtype>
accelerator_inline iScalar< vtype >::iScalar ( scalar_type s)
inline

Definition at line 93 of file Tensor_class.h.

◆ iScalar() [3/3]

template<class vtype>
accelerator_inline iScalar< vtype >::iScalar ( const Zero & z)
inline

Definition at line 95 of file Tensor_class.h.

Member Function Documentation

◆ Nsimd()

template<class vtype>
accelerator_inline constexpr int iScalar< vtype >::Nsimd ( void )
inlinestaticconstexpr

Definition at line 84 of file Tensor_class.h.

◆ operator=() [1/3]

template<class vtype>
accelerator_inline iScalar< vtype > & iScalar< vtype >::operator= ( const Zero & hero)
inline

Definition at line 97 of file Tensor_class.h.

◆ operator*=()

template<class vtype>
accelerator_inline iScalar< vtype > & iScalar< vtype >::operator*= ( const iScalar< vtype > & r)
inline

Definition at line 128 of file Tensor_class.h.

◆ operator-=()

template<class vtype>
accelerator_inline iScalar< vtype > & iScalar< vtype >::operator-= ( const iScalar< vtype > & r)
inline

Definition at line 132 of file Tensor_class.h.

◆ operator+=()

template<class vtype>
accelerator_inline iScalar< vtype > & iScalar< vtype >::operator+= ( const iScalar< vtype > & r)
inline

Definition at line 136 of file Tensor_class.h.

◆ operator()() [1/2]

template<class vtype>
accelerator_inline vtype & iScalar< vtype >::operator() ( void )
inline

Definition at line 140 of file Tensor_class.h.

◆ operator()() [2/2]

template<class vtype>
accelerator_inline const vtype & iScalar< vtype >::operator() ( void ) const
inline

Definition at line 141 of file Tensor_class.h.

◆ operator ComplexF()

template<class vtype>
template<class U = vtype, class V = scalar_type, IfComplex< V > = 0, IfNotSimd< U > = 0>
accelerator_inline iScalar< vtype >::operator ComplexF ( ) const
inline

Definition at line 145 of file Tensor_class.h.

◆ operator ComplexD()

template<class vtype>
template<class U = vtype, class V = scalar_type, IfComplex< V > = 0, IfNotSimd< U > = 0>
accelerator_inline iScalar< vtype >::operator ComplexD ( ) const
inline

Definition at line 149 of file Tensor_class.h.

◆ operator RealD()

template<class vtype>
template<class U = vtype, class V = scalar_type, IfReal< V > = 0, IfNotSimd< U > = 0>
accelerator_inline iScalar< vtype >::operator RealD ( ) const
inline

Definition at line 154 of file Tensor_class.h.

◆ operator Integer()

template<class vtype>
template<class U = vtype, class V = scalar_type, IfInteger< V > = 0, IfNotSimd< U > = 0>
accelerator_inline iScalar< vtype >::operator Integer ( ) const
inline

Definition at line 158 of file Tensor_class.h.

◆ operator=() [2/3]

template<class vtype>
template<class T, typename std::enable_if<!isGridTensor< T >::value, T >::type * = nullptr>
accelerator_inline iScalar< vtype > iScalar< vtype >::operator= ( T arg)
inline

Definition at line 164 of file Tensor_class.h.

◆ operator=() [3/3]

template<class vtype>
template<class ttype>
accelerator_inline iScalar< vtype > iScalar< vtype >::operator= ( const iScalar< ttype > & arg)
inline

Definition at line 171 of file Tensor_class.h.

◆ begin() [1/2]

template<class vtype>
strong_inline const scalar_type * iScalar< vtype >::begin ( ) const
inline

Definition at line 182 of file Tensor_class.h.

Referenced by iScalar< vInteger >::end(), and iScalar< vInteger >::end().

◆ begin() [2/2]

template<class vtype>
strong_inline scalar_type * iScalar< vtype >::begin ( )
inline

Definition at line 183 of file Tensor_class.h.

◆ end() [1/2]

template<class vtype>
strong_inline const scalar_type * iScalar< vtype >::end ( ) const
inline

Definition at line 184 of file Tensor_class.h.

◆ end() [2/2]

template<class vtype>
strong_inline scalar_type * iScalar< vtype >::end ( )
inline

Definition at line 185 of file Tensor_class.h.

◆ zeroit

template<class vtype>
accelerator_inline void zeroit ( iScalar< vtype > & that)
friend

◆ vstream

template<class vtype>
accelerator_inline void vstream ( iScalar< vtype > & out,
const iScalar< vtype > & in )
friend

Definition at line 100 of file Tensor_class.h.

Referenced by iScalar< vInteger >::vstream.

◆ vbroadcast

template<class vtype>
accelerator_inline void vbroadcast ( iScalar< vtype > & out,
const iScalar< vtype > & in,
int lane )
friend

Definition at line 103 of file Tensor_class.h.

Referenced by iScalar< vInteger >::vbroadcast.

◆ prefetch

template<class vtype>
accelerator_inline void prefetch ( iScalar< vtype > & that)
friend

Definition at line 106 of file Tensor_class.h.

Referenced by iScalar< vInteger >::prefetch.

◆ permute

template<class vtype>
accelerator_inline void permute ( iScalar< vtype > & out,
const iScalar< vtype > & in,
int permutetype )
friend

Definition at line 109 of file Tensor_class.h.

Referenced by iScalar< vInteger >::permute.

◆ rotate

template<class vtype>
accelerator_inline void rotate ( iScalar< vtype > & out,
const iScalar< vtype > & in,
int rot )
friend

Definition at line 112 of file Tensor_class.h.

Referenced by iScalar< vInteger >::rotate.

◆ exchange

template<class vtype>
accelerator_inline void exchange ( iScalar< vtype > & out1,
iScalar< vtype > & out2,
const iScalar< vtype > & in1,
const iScalar< vtype > & in2,
int type )
friend

Definition at line 115 of file Tensor_class.h.

Referenced by iScalar< vInteger >::exchange.

◆ operator-

template<class vtype>
accelerator_inline iScalar< vtype > operator- ( const iScalar< vtype > & r)
friend

Definition at line 122 of file Tensor_class.h.

◆ operator<<

template<class vtype>
std::ostream & operator<< ( std::ostream & stream,
const iScalar< vtype > & o )
friend

Definition at line 177 of file Tensor_class.h.

Field Documentation

◆ _internal

template<class vtype>
vtype iScalar< vtype >::_internal

Definition at line 79 of file Tensor_class.h.

Referenced by accumRecon5m(), accumRecon5p(), accumReconTm(), accumReconTp(), accumReconXm(), accumReconXp(), accumReconYm(), accumReconYp(), accumReconZm(), accumReconZp(), add(), add(), add(), adj(), conjugate(), convertType(), convertType(), convertType(), Determinant(), iScalar< vInteger >::exchange, Exponentiate(), imag(), TensorIndexRecursion< Level >::indexRank(), innerProduct(), innerProductD(), innerProductD2(), TensorIndexRecursion< Level >::isMatrix(), TensorIndexRecursion< Level >::isScalar(), TensorIndexRecursion< Level >::isVector(), mac(), mac(), mac(), mac(), mac(), mult(), mult(), mult(), mult(), mult(), operator*(), operator*(), operator*(), operator*(), iScalar< vInteger >::operator-, operator/(), operator/(), operator/(), iScalar< vInteger >::operator<<, iScalar< vInteger >::operator=(), operator==(), outerProduct(), TensorIndexRecursion< Level >::peekIndex(), TensorIndexRecursion< Level >::peekIndex(), TensorIndexRecursion< 0 >::peekIndex(), TensorIndexRecursion< 0 >::peekIndex(), iScalar< vInteger >::permute, TensorIndexRecursion< Level >::pokeIndex(), TensorIndexRecursion< Level >::pokeIndex(), TensorIndexRecursion< 0 >::pokeIndex(), TensorIndexRecursion< 0 >::pokeIndex(), iScalar< vInteger >::prefetch, ProjectOnGroup(), ProjectOnSpGroup(), real(), Reduce(), iScalar< vInteger >::rotate, sliceInnerProductVector(), spProj5m(), spProj5m(), spProj5p(), spProj5p(), spProjTm(), spProjTp(), spProjXm(), spProjXp(), spProjYm(), spProjYp(), spProjZm(), spProjZp(), spRecon5m(), spRecon5p(), spReconTm(), spReconTp(), spReconXm(), spReconXp(), spReconYm(), spReconYp(), spReconZm(), spReconZp(), SpTa(), sub(), sub(), sub(), Ta(), Grid::tensorDim(), Grid::tensorToVec(), timesI(), timesI(), timesMinusI(), timesMinusI(), toComplex(), toReal(), trace(), TensorIndexRecursion< Level >::traceIndex(), TensorIndexRecursion< 0 >::traceIndex(), TensorIndexRecursion< 0 >::traceIndex(), TensorIndexRecursion< 0 >::traceIndex(), traceProduct(), transpose(), TensorIndexRecursion< Level >::transposeIndex(), TensorIndexRecursion< 0 >::transposeIndex(), iScalar< vInteger >::vbroadcast, Grid::vecToTensor(), vprefetch(), iScalar< vInteger >::vstream, and iScalar< vInteger >::zeroit.

◆ GridVector_CopyTraits

template<class vtype>
iScalar< vtype >::GridVector_CopyTraits

Definition at line 82 of file Tensor_class.h.


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