Memosa-FVM  0.2
PC< ORDER, DIM > Class Template Reference

#include <PC.h>

Public Types

enum  { N = Factorial<ORDER+DIM>::value/(Factorial<ORDER>::value*Factorial<DIM>::value) }
 
typedef PC This_T
 
typedef PC T_Scalar
 
typedef NumTypeTraits< double >
::T_BuiltIn 
T_BuiltIn
 
typedef Initializer< double,
double * > 
PCInitializer
 

Public Member Functions

 PC ()
 
 PC (const double v)
 
 PC (const PC &o)
 
 ~PC ()
 
double & operator[] (int n)
 
const double & operator[] (int n) const
 
PCInitializer operator, (const double &x)
 
PCoperator= (const PC &o)
 
PCoperator= (const double &f)
 
PCoperator+= (const PC &o)
 
PCoperator-= (const PC &o)
 
PCoperator*= (const PC &o)
 
PCoperator/= (const PC &o)
 
PCoperator+= (const double &o)
 
PCoperator-= (const double &o)
 
PCoperator*= (const double &o)
 
PCoperator/= (const double &o)
 
 PC_RELATIONAL_OPS (operator>,>)
 
 PC_RELATIONAL_OPS (operator>=,>=)
 
 PC_RELATIONAL_OPS (operator<,<)
 
 PC_RELATIONAL_OPS (operator<=,<=)
 
 PC_RELATIONAL_OPS (operator==,==)
 
 PC_RELATIONAL_OPS (operator!=,!=)
 
void print (ostream &os) const
 
double stdDev () const
 
PC fabs () const
 

Static Public Member Functions

static string getTypeName ()
 
static PC getZero ()
 
static PC getUnity ()
 
static PC getNegativeUnity ()
 
static double doubleMeasure (const PC &x)
 
static void setFloat (PC &t, const int i, const double &val)
 
static double getFloat (const PC &t, const int i)
 
static void write (FILE *fp, const PC &x)
 
static int getDimension ()
 
static void getShape (int *shp)
 
static int getDataSize ()
 
static void accumulateOneNorm (PC &sum, const PC &v)
 
static void accumulateDotProduct (PC &sum, const PC &v0, const PC &v1)
 
static void reduceSum (PC &sum, const PC &x)
 
static void safeDivide (PC &x, const PC &y)
 
static void normalize (PC &x, const PC &y)
 
static void setMax (PC &x, const PC &y)
 

Public Attributes

double _data [N]
 

Static Public Attributes

static PCSet * _pcSet = createPCSet(ORDER,DIM)
 

Detailed Description

template<int ORDER, int DIM>
class PC< ORDER, DIM >

Definition at line 61 of file PC.h.

Member Typedef Documentation

template<int ORDER, int DIM>
typedef Initializer<double,double*> PC< ORDER, DIM >::PCInitializer

Definition at line 71 of file PC.h.

template<int ORDER, int DIM>
typedef NumTypeTraits<double>::T_BuiltIn PC< ORDER, DIM >::T_BuiltIn

Definition at line 69 of file PC.h.

template<int ORDER, int DIM>
typedef PC PC< ORDER, DIM >::T_Scalar

Definition at line 68 of file PC.h.

template<int ORDER, int DIM>
typedef PC PC< ORDER, DIM >::This_T

Definition at line 67 of file PC.h.

Member Enumeration Documentation

template<int ORDER, int DIM>
anonymous enum
Enumerator
N 

Definition at line 65 of file PC.h.

Constructor & Destructor Documentation

template<int ORDER, int DIM>
PC< ORDER, DIM >::PC ( )
inline

Definition at line 78 of file PC.h.

References PC< ORDER, DIM >::_data, and PC< ORDER, DIM >::N.

Referenced by PC< ORDER, DIM >::getZero().

79  {
80  for (int i=0;i<N;i++)
81  _data[i]=0;
82  }
Definition: PC.h:65
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC< ORDER, DIM >::PC ( const double  v)
inlineexplicit

Definition at line 85 of file PC.h.

References PC< ORDER, DIM >::_data, and PC< ORDER, DIM >::N.

86  {
87  _data[0] = v;
88  for (int i=1;i<N;i++)
89  _data[i]=0;
90  }
Definition: PC.h:65
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC< ORDER, DIM >::PC ( const PC< ORDER, DIM > &  o)
inline

Definition at line 93 of file PC.h.

References PC< ORDER, DIM >::_data, and PC< ORDER, DIM >::N.

94  {
95  for (int i=0;i<N;i++)
96  _data[i]=o._data[i];
97  }
Definition: PC.h:65
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC< ORDER, DIM >::~PC ( )
inline

Definition at line 99 of file PC.h.

100  {}

Member Function Documentation

template<int ORDER, int DIM>
static void PC< ORDER, DIM >::accumulateDotProduct ( PC< ORDER, DIM > &  sum,
const PC< ORDER, DIM > &  v0,
const PC< ORDER, DIM > &  v1 
)
inlinestatic

Definition at line 279 of file PC.h.

280  {
281  sum += v0*v1;
282  }
template<int ORDER, int DIM>
static void PC< ORDER, DIM >::accumulateOneNorm ( PC< ORDER, DIM > &  sum,
const PC< ORDER, DIM > &  v 
)
inlinestatic

Definition at line 277 of file PC.h.

References PC< ORDER, DIM >::fabs().

277 { sum += v.fabs();}
PC fabs() const
Definition: PC.h:269
template<int ORDER, int DIM>
static double PC< ORDER, DIM >::doubleMeasure ( const PC< ORDER, DIM > &  x)
inlinestatic

Definition at line 238 of file PC.h.

References PC< ORDER, DIM >::_data.

239  {
241  }
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC PC< ORDER, DIM >::fabs ( ) const
inline

Definition at line 269 of file PC.h.

References PC< ORDER, DIM >::_data.

Referenced by PC< ORDER, DIM >::accumulateOneNorm(), and fabs().

270  {
271  PC x(*this);
272  x._data[0] = ::fabs(_data[0]);
273  return x;
274  }
Definition: PC.h:61
double _data[N]
Definition: PC.h:293
PC fabs() const
Definition: PC.h:269
template<int ORDER, int DIM>
static int PC< ORDER, DIM >::getDataSize ( )
inlinestatic

Definition at line 264 of file PC.h.

References PC< ORDER, DIM >::N.

265  {
267  }
Definition: PC.h:65
template<int ORDER, int DIM>
static int PC< ORDER, DIM >::getDimension ( )
inlinestatic

Definition at line 260 of file PC.h.

template<int ORDER, int DIM>
static double PC< ORDER, DIM >::getFloat ( const PC< ORDER, DIM > &  t,
const int  i 
)
inlinestatic

Definition at line 247 of file PC.h.

References PC< ORDER, DIM >::_data.

248  {
249  return t._data[i];
250  }
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
static PC PC< ORDER, DIM >::getNegativeUnity ( )
inlinestatic

Definition at line 231 of file PC.h.

References PC< ORDER, DIM >::_data.

232  {
233  PC m_one;
234  m_one._data[0] = -1.0;
235  return m_one;
236  }
Definition: PC.h:61
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
static void PC< ORDER, DIM >::getShape ( int *  shp)
inlinestatic

Definition at line 262 of file PC.h.

References PC< ORDER, DIM >::N.

262 { *shp = N; NumTypeTraits<double>::getShape(shp+1);}
Definition: PC.h:65
template<int ORDER, int DIM>
static string PC< ORDER, DIM >::getTypeName ( )
inlinestatic

Definition at line 73 of file PC.h.

74  {
75  return "PC";
76  }
template<int ORDER, int DIM>
static PC PC< ORDER, DIM >::getUnity ( )
inlinestatic

Definition at line 223 of file PC.h.

References PC< ORDER, DIM >::_data.

224  {
225  PC one;
226  one._data[0] = 1.0;
227  return one;
228 
229  }
Definition: PC.h:61
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
static PC PC< ORDER, DIM >::getZero ( )
inlinestatic

Definition at line 218 of file PC.h.

References PC< ORDER, DIM >::PC().

219  {
220  return PC();
221  }
PC()
Definition: PC.h:78
template<int ORDER, int DIM>
static void PC< ORDER, DIM >::normalize ( PC< ORDER, DIM > &  x,
const PC< ORDER, DIM > &  y 
)
inlinestatic

Definition at line 287 of file PC.h.

References PC< ORDER, DIM >::_data.

287 {if (y._data[0]!=0) x/=y._data[0];}
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC& PC< ORDER, DIM >::operator*= ( const PC< ORDER, DIM > &  o)
inline

Definition at line 143 of file PC.h.

References PC< ORDER, DIM >::_data, PC< ORDER, DIM >::_pcSet, and PC< ORDER, DIM >::N.

144  {
145  double pdata[N];
146  _pcSet->Prod(_data,o._data,pdata);
147  for(int i=0; i<N; i++)
148  _data[i] = pdata[i];
149  return *this;
150  }
Definition: PC.h:65
static PCSet * _pcSet
Definition: PC.h:299
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC& PC< ORDER, DIM >::operator*= ( const double &  o)
inline

Definition at line 177 of file PC.h.

References PC< ORDER, DIM >::_data, and PC< ORDER, DIM >::N.

178  {
179  for(int i=0; i<N; i++)
180  _data[i] *= o;
181  return *this;
182  }
Definition: PC.h:65
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC& PC< ORDER, DIM >::operator+= ( const PC< ORDER, DIM > &  o)
inline

Definition at line 129 of file PC.h.

References PC< ORDER, DIM >::_data, and PC< ORDER, DIM >::N.

130  {
131  for (int i=0;i<N;i++)
132  _data[i] += o._data[i];
133  return *this;
134  }
Definition: PC.h:65
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC& PC< ORDER, DIM >::operator+= ( const double &  o)
inline

Definition at line 165 of file PC.h.

References PC< ORDER, DIM >::_data.

166  {
167  _data[0] += o;
168  return *this;
169  }
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PCInitializer PC< ORDER, DIM >::operator, ( const double &  x)
inline

Definition at line 105 of file PC.h.

References PC< ORDER, DIM >::_data.

106  {
107  _data[1] = x;
108  return PCInitializer(_data+2);
109  }
Initializer< double, double * > PCInitializer
Definition: PC.h:71
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC& PC< ORDER, DIM >::operator-= ( const PC< ORDER, DIM > &  o)
inline

Definition at line 136 of file PC.h.

References PC< ORDER, DIM >::_data, and PC< ORDER, DIM >::N.

137  {
138  for (int i=0;i<N;i++)
139  _data[i] -= o._data[i];
140  return *this;
141  }
Definition: PC.h:65
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC& PC< ORDER, DIM >::operator-= ( const double &  o)
inline

Definition at line 171 of file PC.h.

References PC< ORDER, DIM >::_data.

172  {
173  _data[0] -= o;
174  return *this;
175  }
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC& PC< ORDER, DIM >::operator/= ( const PC< ORDER, DIM > &  o)
inline

Definition at line 153 of file PC.h.

References PC< ORDER, DIM >::_data, PC< ORDER, DIM >::_pcSet, and PC< ORDER, DIM >::N.

154  {
155  double pdata[N];
156  _pcSet->Div(_data,o._data,pdata);
157  for(int i=0; i<N; i++)
158  _data[i] = pdata[i];
159  return *this;
160  }
Definition: PC.h:65
static PCSet * _pcSet
Definition: PC.h:299
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC& PC< ORDER, DIM >::operator/= ( const double &  o)
inline

Definition at line 184 of file PC.h.

References PC< ORDER, DIM >::_data, and PC< ORDER, DIM >::N.

185  {
186  for(int i=0; i<N; i++)
187  _data[i] /= o;
188  return *this;
189  }
Definition: PC.h:65
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC& PC< ORDER, DIM >::operator= ( const PC< ORDER, DIM > &  o)
inline

Definition at line 112 of file PC.h.

References PC< ORDER, DIM >::_data, and PC< ORDER, DIM >::N.

113  {
114  if (this == &o)
115  return *this;
116  for (int i=0;i<N;i++)
117  _data[i]=o._data[i];
118  return *this;
119  }
Definition: PC.h:65
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC& PC< ORDER, DIM >::operator= ( const double &  f)
inline

Definition at line 121 of file PC.h.

References PC< ORDER, DIM >::_data, and PC< ORDER, DIM >::N.

122  {
123  _data[0] = f;
124  for (int i=1;i<N;i++)
125  _data[i]=0;
126  return *this;
127  }
Definition: PC.h:65
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
double& PC< ORDER, DIM >::operator[] ( int  n)
inline

Definition at line 102 of file PC.h.

References PC< ORDER, DIM >::_data.

102 {return _data[n];}
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
const double& PC< ORDER, DIM >::operator[] ( int  n) const
inline

Definition at line 103 of file PC.h.

References PC< ORDER, DIM >::_data.

103 {return _data[n];}
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
PC< ORDER, DIM >::PC_RELATIONAL_OPS ( operator  )
template<int ORDER, int DIM>
PC< ORDER, DIM >::PC_RELATIONAL_OPS ( operator>=  ,
>=   
)
template<int ORDER, int DIM>
PC< ORDER, DIM >::PC_RELATIONAL_OPS ( )
template<int ORDER, int DIM>
PC< ORDER, DIM >::PC_RELATIONAL_OPS ( operator<=  ,
<=   
)
template<int ORDER, int DIM>
PC< ORDER, DIM >::PC_RELATIONAL_OPS ( operator  = =)
template<int ORDER, int DIM>
PC< ORDER, DIM >::PC_RELATIONAL_OPS ( operator!  ,
 
)
template<int ORDER, int DIM>
void PC< ORDER, DIM >::print ( ostream &  os) const
inline

Definition at line 210 of file PC.h.

References PC< ORDER, DIM >::_data, and PC< ORDER, DIM >::N.

Referenced by operator<<().

211  {
212  os << "[ ";
213  for(int i=0; i<N; i++)
214  os << _data[i] << " ";
215  os << "]";
216  }
Definition: PC.h:65
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
static void PC< ORDER, DIM >::reduceSum ( PC< ORDER, DIM > &  sum,
const PC< ORDER, DIM > &  x 
)
inlinestatic

Definition at line 284 of file PC.h.

284 {sum+=x;}
template<int ORDER, int DIM>
static void PC< ORDER, DIM >::safeDivide ( PC< ORDER, DIM > &  x,
const PC< ORDER, DIM > &  y 
)
inlinestatic

Definition at line 286 of file PC.h.

References PC< ORDER, DIM >::_data.

286 {if (y._data[0]!=0) x/=y;}
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
static void PC< ORDER, DIM >::setFloat ( PC< ORDER, DIM > &  t,
const int  i,
const double &  val 
)
inlinestatic

Definition at line 243 of file PC.h.

References PC< ORDER, DIM >::_data.

244  {
245  t._data[i]=val;
246  }
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
static void PC< ORDER, DIM >::setMax ( PC< ORDER, DIM > &  x,
const PC< ORDER, DIM > &  y 
)
inlinestatic

Definition at line 289 of file PC.h.

References PC< ORDER, DIM >::_data.

289 {if (y._data[0]>x._data[0]) x._data[0]=y._data[0];}
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
double PC< ORDER, DIM >::stdDev ( ) const
inline

Definition at line 252 of file PC.h.

References PC< ORDER, DIM >::_data, and PC< ORDER, DIM >::_pcSet.

253  {
254  return _pcSet->StDv(_data);
255  }
static PCSet * _pcSet
Definition: PC.h:299
double _data[N]
Definition: PC.h:293
template<int ORDER, int DIM>
static void PC< ORDER, DIM >::write ( FILE *  fp,
const PC< ORDER, DIM > &  x 
)
inlinestatic

Definition at line 258 of file PC.h.

258 {throw;}

Member Data Documentation

template<int ORDER, int DIM>
PCSet * PC< ORDER, DIM >::_pcSet = createPCSet(ORDER,DIM)
static

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