Memosa-FVM  0.2
DiagonalTensor< T, N > Class Template Reference

#include <DiagonalTensor.h>

Collaboration diagram for DiagonalTensor< T, N >:

Public Types

typedef DiagonalTensor< T, N > This_T
 
typedef NumTypeTraits< T >
::T_Scalar 
T_Scalar
 
typedef NumTypeTraits< T >
::T_BuiltIn 
T_BuiltIn
 

Public Member Functions

 DiagonalTensor ()
 
 DiagonalTensor (const DiagonalTensor &o)
 
 DiagonalTensor (const T &o)
 
T & operator[] (int n)
 
const T & operator[] (int n) const
 
void printFromC (ostream &os) const
 
DiagonalTensoroperator= (const T &o)
 
DiagonalTensoroperator= (const DiagonalTensor &o)
 
DiagonalTensor operator- ()
 
DiagonalTensoroperator+= (const DiagonalTensor &o)
 
DiagonalTensoroperator+= (const T s)
 
DiagonalTensoroperator-= (const DiagonalTensor &o)
 
DiagonalTensoroperator-= (const T s)
 
DiagonalTensoroperator/= (const T s)
 
DiagonalTensoroperator/= (const DiagonalTensor &o)
 
DiagonalTensoroperator*= (const T s)
 
DiagonalTensoroperator*= (const DiagonalTensor &o)
 
void zero ()
 
mag2 () const
 
bool operator< (const double tolerance) const
 

Static Public Member Functions

static string getTypeName ()
 
static int getDimension ()
 
static void getShape (int *shp)
 
static int getDataSize ()
 
static void write (FILE *fp, const DiagonalTensor &x)
 
static DiagonalTensor getZero ()
 
static double doubleMeasure (const DiagonalTensor &x)
 
static DiagonalTensor getNegativeUnity ()
 
static DiagonalTensor getUnity ()
 
static void accumulateOneNorm (DiagonalTensor &sum, const DiagonalTensor &v)
 
static void accumulateDotProduct (DiagonalTensor &sum, const DiagonalTensor &v0, const DiagonalTensor &v1)
 
static void reduceSum (T_Scalar &sum, const This_T &x)
 
static void safeDivide (DiagonalTensor &x, const DiagonalTensor &y)
 
static void normalize (DiagonalTensor &x, const DiagonalTensor &y)
 
static void setMax (DiagonalTensor &x, const DiagonalTensor &y)
 

Private Attributes

_data [N]
 

Detailed Description

template<class T, int N>
class DiagonalTensor< T, N >

Definition at line 14 of file DiagonalTensor.h.

Member Typedef Documentation

template<class T, int N>
typedef NumTypeTraits<T>::T_BuiltIn DiagonalTensor< T, N >::T_BuiltIn

Definition at line 19 of file DiagonalTensor.h.

template<class T, int N>
typedef NumTypeTraits<T>::T_Scalar DiagonalTensor< T, N >::T_Scalar

Definition at line 18 of file DiagonalTensor.h.

template<class T, int N>
typedef DiagonalTensor<T,N> DiagonalTensor< T, N >::This_T

Definition at line 17 of file DiagonalTensor.h.

Constructor & Destructor Documentation

template<class T, int N>
DiagonalTensor< T, N >::DiagonalTensor ( )
inline

Definition at line 21 of file DiagonalTensor.h.

22  {}
template<class T, int N>
DiagonalTensor< T, N >::DiagonalTensor ( const DiagonalTensor< T, N > &  o)
inline

Definition at line 24 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

25  {
26  for(int i=0; i<N; i++)
27  _data[i] = o._data[i];
28  }
template<class T, int N>
DiagonalTensor< T, N >::DiagonalTensor ( const T &  o)
inline

Definition at line 30 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

31  {
32  for(int i=0; i<N; i++)
33  _data[i] = o;
34  }

Member Function Documentation

template<class T, int N>
static void DiagonalTensor< T, N >::accumulateDotProduct ( DiagonalTensor< T, N > &  sum,
const DiagonalTensor< T, N > &  v0,
const DiagonalTensor< T, N > &  v1 
)
inlinestatic

Definition at line 206 of file DiagonalTensor.h.

208  {
209  for(int i=0; i<N; i++)
210  NumTypeTraits<T>::accumulateDotProduct(sum[i],v0[i],v1[i]);
211  }
template<class T, int N>
static void DiagonalTensor< T, N >::accumulateOneNorm ( DiagonalTensor< T, N > &  sum,
const DiagonalTensor< T, N > &  v 
)
inlinestatic

Definition at line 200 of file DiagonalTensor.h.

201  {
202  for(int i=0; i<N; i++)
204  }
template<class T, int N>
static double DiagonalTensor< T, N >::doubleMeasure ( const DiagonalTensor< T, N > &  x)
inlinestatic

Definition at line 174 of file DiagonalTensor.h.

175  {
176  double m=0;
177  for (int i=0; i<N; i++)
179  return m;
180  }
template<class T, int N>
static int DiagonalTensor< T, N >::getDataSize ( )
inlinestatic

Definition at line 46 of file DiagonalTensor.h.

47  {
49  }
template<class T, int N>
static int DiagonalTensor< T, N >::getDimension ( )
inlinestatic

Definition at line 43 of file DiagonalTensor.h.

43 {return 1;}
template<class T, int N>
static DiagonalTensor DiagonalTensor< T, N >::getNegativeUnity ( )
inlinestatic

Definition at line 182 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

183  {
184  DiagonalTensor n;
185  for(int i=0; i<N; i++)
187 
188  return n;
189  }
template<class T, int N>
static void DiagonalTensor< T, N >::getShape ( int *  shp)
inlinestatic

Definition at line 45 of file DiagonalTensor.h.

45 { *shp = N;}
template<class T, int N>
static string DiagonalTensor< T, N >::getTypeName ( )
inlinestatic

Definition at line 37 of file DiagonalTensor.h.

References intAsString().

38  {
39  return "DiagonalTensor<" + NumTypeTraits<T>::getTypeName() +
40  "," + intAsString(N) +
41  ">";
42  }
string intAsString(const int i)
Definition: Vector.h:11
template<class T, int N>
static DiagonalTensor DiagonalTensor< T, N >::getUnity ( )
inlinestatic

Definition at line 191 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

192  {
193  DiagonalTensor n;
194  for(int i=0; i<N; i++)
196 
197  return n;
198  }
template<class T, int N>
static DiagonalTensor DiagonalTensor< T, N >::getZero ( )
inlinestatic

Definition at line 167 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::zero().

168  {
169  DiagonalTensor z;
170  z.zero();
171  return z;
172  }
template<class T, int N>
T DiagonalTensor< T, N >::mag2 ( ) const
inline

Definition at line 154 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

Referenced by DiagonalTensor< T, N >::operator<().

155  {
157  for(int i=0; i<N; i++)
158  r+=_data[i]*_data[i];
159  return r;
160  }
template<class T, int N>
static void DiagonalTensor< T, N >::normalize ( DiagonalTensor< T, N > &  x,
const DiagonalTensor< T, N > &  y 
)
inlinestatic

Definition at line 225 of file DiagonalTensor.h.

226  {
227  for(int i=0; i<N; i++)
228  NumTypeTraits<T>::normalize(x[i],y[i]);
229  }
template<class T, int N>
DiagonalTensor& DiagonalTensor< T, N >::operator*= ( const T  s)
inline

Definition at line 135 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

136  {
137  for(int i=0;i<N;i++)
138  _data[i] *= s;
139  return *this;
140  }
template<class T, int N>
DiagonalTensor& DiagonalTensor< T, N >::operator*= ( const DiagonalTensor< T, N > &  o)
inline

Definition at line 142 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

143  {
144  for(int i=0;i<N;i++)
145  _data[i] *= o[i];
146  return *this;
147  }
template<class T, int N>
DiagonalTensor& DiagonalTensor< T, N >::operator+= ( const DiagonalTensor< T, N > &  o)
inline

Definition at line 93 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

94  {
95  for(int i=0;i<N;i++)
96  _data[i] += o[i];
97  return *this;
98  }
template<class T, int N>
DiagonalTensor& DiagonalTensor< T, N >::operator+= ( const T  s)
inline

Definition at line 100 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

101  {
102  for(int i=0;i<N;i++)
103  _data[i] += s;
104  return *this;
105  }
template<class T, int N>
DiagonalTensor DiagonalTensor< T, N >::operator- ( )
inline

Definition at line 85 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

86  {
88  for(int i=0;i<N;i++)
89  r[i]=-_data[i];
90  return r;
91  }
template<class T, int N>
DiagonalTensor& DiagonalTensor< T, N >::operator-= ( const DiagonalTensor< T, N > &  o)
inline

Definition at line 107 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

108  {
109  for(int i=0;i<N;i++)
110  _data[i] -= o[i];
111  return *this;
112  }
template<class T, int N>
DiagonalTensor& DiagonalTensor< T, N >::operator-= ( const T  s)
inline

Definition at line 114 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

115  {
116  for(int i=0;i<N;i++)
117  _data[i] -= s;
118  return *this;
119  }
template<class T, int N>
DiagonalTensor& DiagonalTensor< T, N >::operator/= ( const T  s)
inline

Definition at line 121 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

122  {
123  for(int i=0;i<N;i++)
124  _data[i] /= s;
125  return *this;
126  }
template<class T, int N>
DiagonalTensor& DiagonalTensor< T, N >::operator/= ( const DiagonalTensor< T, N > &  o)
inline

Definition at line 128 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

129  {
130  for(int i=0;i<N;i++)
131  _data[i] /= o[i];
132  return *this;
133  }
template<class T, int N>
bool DiagonalTensor< T, N >::operator< ( const double  tolerance) const
inline

Definition at line 162 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::mag2().

163  {
164  return mag2() < tolerance*tolerance;
165  }
T mag2() const
template<class T, int N>
DiagonalTensor& DiagonalTensor< T, N >::operator= ( const T &  o)
inline

Definition at line 71 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

72  {
73  for(int i=0;i<N;i++)
74  _data[i] = o;
75  return *this;
76  }
template<class T, int N>
DiagonalTensor& DiagonalTensor< T, N >::operator= ( const DiagonalTensor< T, N > &  o)
inline

Definition at line 78 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

79  {
80  for(int i=0;i<N;i++)
81  _data[i] = o[i];
82  return *this;
83  }
template<class T, int N>
T& DiagonalTensor< T, N >::operator[] ( int  n)
inline

Definition at line 51 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

51 {return _data[n];}
template<class T, int N>
const T& DiagonalTensor< T, N >::operator[] ( int  n) const
inline

Definition at line 52 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

52 {return _data[n];}
template<class T, int N>
void DiagonalTensor< T, N >::printFromC ( ostream &  os) const
inline

Definition at line 54 of file DiagonalTensor.h.

References DiagonalTensor< T, N >::_data.

Referenced by operator<<().

55  {
56  os << "[ " ;
57  for(int i=0;i<N;i++)
58  os << _data[i] << " " ;
59  os << "]";
60  }
template<class T, int N>
static void DiagonalTensor< T, N >::reduceSum ( T_Scalar sum,
const This_T x 
)
inlinestatic

Definition at line 213 of file DiagonalTensor.h.

214  {
215  for(int i=0; i<N; i++)
216  NumTypeTraits<T>::reduceSum(sum,x[i]);
217  }
template<class T, int N>
static void DiagonalTensor< T, N >::safeDivide ( DiagonalTensor< T, N > &  x,
const DiagonalTensor< T, N > &  y 
)
inlinestatic

Definition at line 219 of file DiagonalTensor.h.

220  {
221  for(int i=0; i<N; i++)
222  NumTypeTraits<T>::safeDivide(x[i],y[i]);
223  }
template<class T, int N>
static void DiagonalTensor< T, N >::setMax ( DiagonalTensor< T, N > &  x,
const DiagonalTensor< T, N > &  y 
)
inlinestatic

Definition at line 231 of file DiagonalTensor.h.

232  {
233  for(int i=0; i<N; i++)
234  NumTypeTraits<T>::setMax(x[i],y[i]);
235  }
template<class T, int N>
static void DiagonalTensor< T, N >::write ( FILE *  fp,
const DiagonalTensor< T, N > &  x 
)
inlinestatic

Definition at line 62 of file DiagonalTensor.h.

63  {
64  for(int i=0; i<N; i++)
65  {
66  NumTypeTraits<T>::write(fp,x[i]);
67  fprintf(fp, " ");
68  }
69  }
template<class T, int N>
void DiagonalTensor< T, N >::zero ( )
inline

Definition at line 149 of file DiagonalTensor.h.

Referenced by DiagonalTensor< T, N >::getZero().

150  {
151  for(int i=0;i<N;i++) _data[i] = NumTypeTraits<T>::getZero();
152  }

Member Data Documentation


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