19 template<
class X,
class T_iterator>
60 template<
int ORDER,
int DIM>
85 explicit PC(
const double v)
116 for (
int i=0;i<
N;i++)
124 for (
int i=1;i<
N;i++)
131 for (
int i=0;i<
N;i++)
138 for (
int i=0;i<
N;i++)
147 for(
int i=0; i<
N; i++)
157 for(
int i=0; i<
N; i++)
179 for(
int i=0; i<
N; i++)
186 for(
int i=0; i<
N; i++)
191 #define PC_RELATIONAL_OPS(opname,_op_) \
192 bool opname(const PC& o) const \
194 return (_data[0] _op_ o._data[0]); \
196 bool opname(const double& o) const \
198 return (_data[0] _op_ o); \
208 #undef PC_RELATIONAL_OPS
213 for(
int i=0; i<
N; i++)
214 os <<
_data[i] <<
" ";
234 m_one.
_data[0] = -1.0;
258 static void write(FILE* fp,
const PC& x) {
throw;}
303 #define PC_BINARY_OP(opname,_op_) \
304 template<int ORDER, int DIM> \
305 PC<ORDER,DIM> opname(const PC<ORDER,DIM>& a, const PC<ORDER,DIM>& b) \
307 return PC<ORDER,DIM>(a) _op_ b; \
309 template<int ORDER, int DIM> \
310 PC<ORDER,DIM> opname(const PC<ORDER,DIM>& a, const double& b) \
312 return PC<ORDER,DIM>(a) _op_ b; \
314 template<int ORDER, int DIM> \
315 PC<ORDER,DIM> opname(const double& a, const PC<ORDER,DIM>& b) \
317 return PC<ORDER,DIM>(a) _op_ b; \
325 template<
int ORDER,
int DIM>
331 template<
int ORDER,
int DIM>
338 template<
int ORDER,
int DIM>
346 template<
int ORDER,
int DIM>
347 inline ostream &operator<<(ostream &os, const PC<ORDER,DIM> &a)
353 template<
int ORDER,
int DIM>
362 template<
int ORDER,
int DIM>
370 template<
int ORDER,
int DIM>
374 template<
int ORDER,
int DIM>
379 if (val.
_data[0] < min)
381 else if (val.
_data[0] > max)
PC< ORDER, DIM > sqrt(const PC< ORDER, DIM > &a)
static void getShape(int *shp)
Initializer operator,(const X &x)
PC & operator*=(const double &o)
Initializer(T_iterator iter)
static void limit(PC< ORDER, DIM > &val, const double min, const double max)
double max(double x, double y)
NumTypeTraits< double >::T_BuiltIn T_BuiltIn
static void accumulateDotProduct(PC &sum, const PC &v0, const PC &v1)
static void setFloat(PC &t, const int i, const double &val)
PCInitializer operator,(const double &x)
PC & operator-=(const double &o)
static void write(FILE *fp, const PC &x)
static PC getNegativeUnity()
static string getTypeName()
const double & operator[](int n) const
#define PC_BINARY_OP(opname, _op_)
PC< ORDER, DIM > operator-(const PC< ORDER, DIM > &a)
Initializer< double, double * > PCInitializer
static void accumulateOneNorm(PC &sum, const PC &v)
static void reduceSum(PC &sum, const PC &x)
PC & operator=(const PC &o)
static double getFloat(const PC &t, const int i)
PCSet * createPCSet(const int order, const int dim)
static int getDimension()
PC_RELATIONAL_OPS(operator<,<)
static void setMax(PC &x, const PC &y)
static void normalize(PC &x, const PC &y)
void print(ostream &os) const
double & operator[](int n)
PC & operator-=(const PC &o)
PC & operator=(const double &f)
PC & operator*=(const PC &o)
static double doubleMeasure(const PC &x)
PC & operator/=(const PC &o)
double min(double x, double y)
PC< ORDER, DIM > operator+(const PC< ORDER, DIM > &a)
PC & operator/=(const double &o)
PC & operator+=(const PC &o)
static void safeDivide(PC &x, const PC &y)
PC & operator+=(const double &o)