31 Tangent(
const double v,
const double dv) :
161 #define TANGENT_RELATIONAL_OPS(opname,_op_) \
162 bool opname(const Tangent& o) const \
164 return (_v _op_ o._v); \
166 bool opname(const double& o) const \
168 return (_v _op_ o); \
170 bool opname(const int& o) const \
172 return (_v _op_ double(o)); \
182 #undef TANGENT_RELATIONAL_OPS
186 os <<
"< " <<
_v <<
" , " <<
_dv <<
">";
264 #define TANGENT_BINARY_OP(opname,_op_) \
265 Tangent opname(const Tangent& a, const Tangent& b) \
267 return Tangent(a) _op_ b; \
269 Tangent opname(const Tangent& a, const double& b) \
271 return Tangent(a) _op_ b; \
273 Tangent opname(const double& a, const Tangent& b) \
275 return Tangent(a) _op_ b; \
277 Tangent opname(const Tangent& a, const int& b) \
279 return Tangent(a) _op_ b; \
281 Tangent opname(const int& a, const Tangent& b) \
283 return Tangent(a) _op_ b; \
320 return Tangent(sqv, sqv==0.0 ? 0 : 0.5*a.
_dv/sqv);
Tangent & operator/=(const Tangent &o)
static void setFloat(Tangent &t, const int i, const double &val)
Tangent & operator=(const double &f)
Tangent & operator-=(const int &i)
TANGENT_RELATIONAL_OPS(operator<,<)
static void setMax(Tangent &x, const Tangent &y)
Tangent & operator=(const Tangent &o)
static double doubleMeasure(const Tangent &x)
Tangent & operator/=(const double &o)
Tangent & operator-=(const double &o)
static void accumulateOneNorm(Tangent &sum, const Tangent &v)
#define TANGENT_BINARY_OP(opname, _op_)
Tangent(const Tangent &o)
static void reduceSum(Tangent &sum, const Tangent &x)
Tangent(const double v, const double dv)
Tangent & operator+=(const int &i)
ostream & operator<<(ostream &os, const Tangent &a)
static void write(FILE *fp, const Tangent &x)
static void getShape(int *shp)
static Tangent getNegativeUnity()
Tangent & operator*=(const int &i)
Tangent sqrt(const Tangent &a)
static string getTypeName()
Tangent & operator*=(const double &o)
Tangent operator+(const Tangent &a)
Tangent & operator/=(const int &i)
static int getDimension()
Tangent sin(const Tangent &a)
Tangent & operator=(const int &i)
Tangent & operator+=(const double &o)
Tangent & operator-=(const Tangent &o)
Tangent fabs(const Tangent &a)
static void safeDivide(Tangent &x, const Tangent &y)
static void accumulateDotProduct(Tangent &sum, const Tangent &v0, const Tangent &v1)
Tangent & operator*=(const Tangent &o)
Tangent & operator+=(const Tangent &o)
Tangent operator-(const Tangent &a)
static double getFloat(const Tangent &t, const int i)
NumTypeTraits< double >::T_BuiltIn T_BuiltIn
static Tangent getUnity()
void print(ostream &os) const