Schnek
schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy > Class Template Reference

The generic base class for the Grid class template. More...

#include <grid.hpp>

Inheritance diagram for schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >:
Collaboration diagram for schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >:

Public Types

enum  { Rank = rank }
 
typedef T value_type
 
typedef CheckingPolicy CheckingPolicyType
 
typedef StoragePolicy StoragePolicyType
 
typedef CheckingPolicy::IndexType IndexType
 
typedef StoragePolicy::RangeType RangeType
 
typedef GridBase< T, rank, CheckingPolicy, StoragePolicy > GridBaseType
 

Public Member Functions

 GridBase ()
 Default constructor.
 
 GridBase (const GridBase &)=default
 Copy constructor.
 
template<template< size_t > class ArrayCheckingPolicy>
 GridBase (const Array< int, rank, ArrayCheckingPolicy > &size)
 
template<template< size_t > class ArrayCheckingPolicy>
 GridBase (const Array< int, rank, ArrayCheckingPolicy > &low, const Array< int, rank, ArrayCheckingPolicy > &high)
 
template<template< size_t > class ArrayCheckingPolicy>
 GridBase (const Range< int, rank, ArrayCheckingPolicy > &range)
 
template<template< size_t > class ArrayCheckingPolicy>
SCHNEK_INLINE T & operator[] (const Array< int, rank, ArrayCheckingPolicy > &pos)
 
template<template< size_t > class ArrayCheckingPolicy>
SCHNEK_INLINE T operator[] (const Array< int, rank, ArrayCheckingPolicy > &pos) const
 
template<class Operator , int Length>
SCHNEK_INLINE T & operator[] (const ArrayExpression< Operator, Length > &pos)
 
template<class Operator , int Length>
SCHNEK_INLINE T operator[] (const ArrayExpression< Operator, Length > &pos) const
 
SCHNEK_INLINE T & operator[] (int i)
 
SCHNEK_INLINE T operator[] (int i) const
 
SCHNEK_INLINE T & operator() (int i)
 
SCHNEK_INLINE T operator() (int i) const
 
SCHNEK_INLINE T & operator() (int i, int j)
 
SCHNEK_INLINE T operator() (int i, int j) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k)
 
SCHNEK_INLINE T operator() (int i, int j, int k) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l, int m)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l, int m) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l, int m, int o)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l, int m, int o) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l, int m, int o, int p)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l, int m, int o, int p) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l, int m, int o, int p, int q)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l, int m, int o, int p, int q) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l, int m, int o, int p, int q, int r)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l, int m, int o, int p, int q, int r) const
 
SCHNEK_INLINE T & operator() (int i, int j, int k, int l, int m, int o, int p, int q, int r, int s)
 
SCHNEK_INLINE T operator() (int i, int j, int k, int l, int m, int o, int p, int q, int r, int s) const
 
SCHNEK_INLINE GridBase< T, rank, CheckingPolicy, StoragePolicy > & operator= (const T &val)
 
SCHNEK_INLINE GridBase< T, rank, CheckingPolicy, StoragePolicy > & operator= (const GridBase< T, rank, CheckingPolicy, StoragePolicy > &val)=default
 
template<typename T2 , class CheckingPolicy2 >
SCHNEK_INLINE GridBase< T, rank, CheckingPolicy, StoragePolicy > & operator-= (GridBase< T2, rank, CheckingPolicy2, StoragePolicy > &)
 
template<typename T2 , class CheckingPolicy2 , class StoragePolicy2 >
SCHNEK_INLINE GridBase< T, rank, CheckingPolicy, StoragePolicy > & operator-= (GridBase< T2, rank, CheckingPolicy2, StoragePolicy2 > &)
 
template<typename T2 , class CheckingPolicy2 >
SCHNEK_INLINE GridBase< T, rank, CheckingPolicy, StoragePolicy > & operator+= (GridBase< T2, rank, CheckingPolicy2, StoragePolicy > &)
 
template<typename T2 , class CheckingPolicy2 , class StoragePolicy2 >
SCHNEK_INLINE GridBase< T, rank, CheckingPolicy, StoragePolicy > & operator+= (GridBase< T2, rank, CheckingPolicy2, StoragePolicy2 > &)
 
void resize (const IndexType &size)
 Resize to size[0] x ... x size[rank-1]. More...
 
void resize (const IndexType &low, const IndexType &high)
 Resize to lower indices low[0],...,low[rank-1] and upper indices high[0],...,high[rank-1]. More...
 
void resize (const RangeType &range)
 Resize to lower indices range.getLo(0),...,range.getLo(rank-1) and upper indices range.getHi(0),...,range.getHi(rank-1) More...
 
template<typename T2 , class CheckingPolicy2 , class StoragePolicy2 >
void resize (const GridBase< T2, rank, CheckingPolicy2, StoragePolicy2 > &grid)
 

Detailed Description

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
class schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >

The generic base class for the Grid class template.

GridBase implements all the overloaded index

Member Function Documentation

◆ operator()() [1/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i)

index operator, writing

◆ operator()() [2/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i) const

index operator, reading

◆ operator()() [3/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j 
)

index operator, writing

◆ operator()() [4/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j 
) const

index operator, reading

◆ operator()() [5/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k 
)

index operator, writing

◆ operator()() [6/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k 
) const

index operator, reading

◆ operator()() [7/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l 
)

index operator, writing

◆ operator()() [8/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l 
) const

index operator, reading

◆ operator()() [9/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l,
int  m 
)

index operator, writing

◆ operator()() [10/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l,
int  m 
) const

index operator, reading

◆ operator()() [11/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l,
int  m,
int  o 
)

index operator, writing

◆ operator()() [12/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l,
int  m,
int  o 
) const

index operator, reading

◆ operator()() [13/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l,
int  m,
int  o,
int  p 
)

index operator, writing

◆ operator()() [14/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l,
int  m,
int  o,
int  p 
) const

index operator, reading

◆ operator()() [15/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l,
int  m,
int  o,
int  p,
int  q 
)

index operator, writing

◆ operator()() [16/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l,
int  m,
int  o,
int  p,
int  q 
) const

index operator, reading

◆ operator()() [17/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l,
int  m,
int  o,
int  p,
int  q,
int  r 
)

index operator, writing

◆ operator()() [18/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l,
int  m,
int  o,
int  p,
int  q,
int  r 
) const

index operator, reading

◆ operator()() [19/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l,
int  m,
int  o,
int  p,
int  q,
int  r,
int  s 
)

index operator, writing

◆ operator()() [20/20]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator() ( int  i,
int  j,
int  k,
int  l,
int  m,
int  o,
int  p,
int  q,
int  r,
int  s 
) const

index operator, reading

◆ operator=() [1/2]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE GridBase<T, rank, CheckingPolicy, StoragePolicy>& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator= ( const T &  val)

assign a value

◆ operator=() [2/2]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE GridBase<T, rank, CheckingPolicy, StoragePolicy>& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator= ( const GridBase< T, rank, CheckingPolicy, StoragePolicy > &  val)
default

copy constructor

◆ operator[]() [1/6]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
template<template< size_t > class ArrayCheckingPolicy>
SCHNEK_INLINE T& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator[] ( const Array< int, rank, ArrayCheckingPolicy > &  pos)

index operator, writing

◆ operator[]() [2/6]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
template<template< size_t > class ArrayCheckingPolicy>
SCHNEK_INLINE T schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator[] ( const Array< int, rank, ArrayCheckingPolicy > &  pos) const

index operator, reading

◆ operator[]() [3/6]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
template<class Operator , int Length>
SCHNEK_INLINE T& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator[] ( const ArrayExpression< Operator, Length > &  pos)

index operator, writing

◆ operator[]() [4/6]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
template<class Operator , int Length>
SCHNEK_INLINE T schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator[] ( const ArrayExpression< Operator, Length > &  pos) const

index operator, reading

◆ operator[]() [5/6]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T& schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator[] ( int  i)

index operator, for 1D grids, writing

◆ operator[]() [6/6]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
SCHNEK_INLINE T schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::operator[] ( int  i) const

index operator, for 1D grids, reading

◆ resize() [1/4]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
void schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::resize ( const IndexType &  size)

Resize to size[0] x ... x size[rank-1].

Example: {verbatim} Grid<double,2>::IndexType size=(512,512); Grid<double,2> m; m.resize(size); {verbatim}

The ranges then extend from 0 to size[i]-1

◆ resize() [2/4]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
void schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::resize ( const IndexType &  low,
const IndexType &  high 
)

Resize to lower indices low[0],...,low[rank-1] and upper indices high[0],...,high[rank-1].

Example: {verbatim} Grid<double,2>::IndexType lo{-5,-10}; Grid<double,2>::IndexType hi{15,36}; Grid<double,2> m; m.resize(l,h); {verbatim}

The ranges then extend from low[i] to high[i]

◆ resize() [3/4]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
void schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::resize ( const RangeType &  range)

Resize to lower indices range.getLo(0),...,range.getLo(rank-1) and upper indices range.getHi(0),...,range.getHi(rank-1)

Example: {verbatim} Grid<double,2>::IndexType lo{-5, -10}; Grid<double,2>::IndexType hi{15, 36}; Grid<double,2>::RangeType range{lo, hi}; Grid<double,2> m; m.resize(range); {verbatim}

◆ resize() [4/4]

template<typename T, size_t rank, class CheckingPolicy, class StoragePolicy>
template<typename T2 , class CheckingPolicy2 , class StoragePolicy2 >
void schnek::internal::GridBase< T, rank, CheckingPolicy, StoragePolicy >::resize ( const GridBase< T2, rank, CheckingPolicy2, StoragePolicy2 > &  grid)

Resize to match the size of another matrix


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