Memosa-FVM  0.2
Tangent Class Reference

#include <Tangent.h>

Public Types

typedef Tangent This_T
 
typedef Tangent T_Scalar
 
typedef NumTypeTraits< double >
::T_BuiltIn 
T_BuiltIn
 

Public Member Functions

 Tangent ()
 
 Tangent (const double v, const double dv)
 
 Tangent (const double v)
 
 Tangent (const int v)
 
 Tangent (const Tangent &o)
 
 ~Tangent ()
 
Tangentoperator= (const Tangent &o)
 
Tangentoperator= (const double &f)
 
Tangentoperator= (const int &i)
 
Tangentoperator+= (const Tangent &o)
 
Tangentoperator-= (const Tangent &o)
 
Tangentoperator*= (const Tangent &o)
 
Tangentoperator/= (const Tangent &o)
 
Tangentoperator+= (const double &o)
 
Tangentoperator-= (const double &o)
 
Tangentoperator*= (const double &o)
 
Tangentoperator/= (const double &o)
 
Tangentoperator+= (const int &i)
 
Tangentoperator-= (const int &i)
 
Tangentoperator*= (const int &i)
 
Tangentoperator/= (const int &i)
 
 TANGENT_RELATIONAL_OPS (operator>,>)
 
 TANGENT_RELATIONAL_OPS (operator>=,>=)
 
 TANGENT_RELATIONAL_OPS (operator<,<)
 
 TANGENT_RELATIONAL_OPS (operator<=,<=)
 
 TANGENT_RELATIONAL_OPS (operator==,==)
 
 TANGENT_RELATIONAL_OPS (operator!=,!=)
 
void print (ostream &os) const
 
Tangent fabs () const
 

Static Public Member Functions

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

Public Attributes

double _v
 
double _dv
 

Detailed Description

Definition at line 12 of file Tangent.h.

Member Typedef Documentation

Definition at line 18 of file Tangent.h.

Definition at line 17 of file Tangent.h.

Definition at line 16 of file Tangent.h.

Constructor & Destructor Documentation

Tangent::Tangent ( )
inline

Definition at line 26 of file Tangent.h.

Referenced by fabs(), getNegativeUnity(), getUnity(), and getZero().

27  {}
Tangent::Tangent ( const double  v,
const double  dv 
)
inline

Definition at line 31 of file Tangent.h.

31  :
32  _v(v),
33  _dv(dv)
34  {}
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent::Tangent ( const double  v)
inlineexplicit

Definition at line 36 of file Tangent.h.

36  :
37  _v(v),
39  {}
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent::Tangent ( const int  v)
inlineexplicit

Definition at line 43 of file Tangent.h.

43  :
44  _v(double(v)),
46  {}
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent::Tangent ( const Tangent o)
inline

Definition at line 48 of file Tangent.h.

48  :
49  _v(o._v),
50  _dv(o._dv)
51  {}
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent::~Tangent ( )
inline

Definition at line 53 of file Tangent.h.

54  {}

Member Function Documentation

static void Tangent::accumulateDotProduct ( Tangent sum,
const Tangent v0,
const Tangent v1 
)
inlinestatic

Definition at line 248 of file Tangent.h.

References _dv, and _v.

249  {
250  sum._v += v0._v*v1._v;
251  sum._dv += v0._v*v1._dv + v0._dv*v1._v;
252  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
static void Tangent::accumulateOneNorm ( Tangent sum,
const Tangent v 
)
inlinestatic

Definition at line 246 of file Tangent.h.

References fabs().

246 { sum += v.fabs();}
Tangent fabs() const
Definition: Tangent.h:240
static double Tangent::doubleMeasure ( const Tangent x)
inlinestatic

Definition at line 207 of file Tangent.h.

References _v.

208  {
210  }
double _v
Definition: Tangent.h:259
Tangent Tangent::fabs ( ) const
inline

Definition at line 240 of file Tangent.h.

References _dv, _v, and Tangent().

Referenced by accumulateOneNorm().

241  {
242  return Tangent(::fabs(_v), (_v > 0 ? _dv : -_dv));
243  }
Tangent()
Definition: Tangent.h:26
double _dv
Definition: Tangent.h:260
Tangent fabs() const
Definition: Tangent.h:240
double _v
Definition: Tangent.h:259
static int Tangent::getDataSize ( )
inlinestatic

Definition at line 235 of file Tangent.h.

236  {
238  }
static int Tangent::getDimension ( )
inlinestatic

Definition at line 231 of file Tangent.h.

static double Tangent::getFloat ( const Tangent t,
const int  i 
)
inlinestatic

Definition at line 219 of file Tangent.h.

References _dv, and _v.

220  {
221  if (i==0)
222  return t._v;
223  else
224  return t._dv;
225  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
static Tangent Tangent::getNegativeUnity ( )
inlinestatic

Definition at line 201 of file Tangent.h.

References Tangent().

static void Tangent::getShape ( int *  shp)
inlinestatic

Definition at line 233 of file Tangent.h.

233 { *shp = 2; NumTypeTraits<double>::getShape(shp+1);}
static string Tangent::getTypeName ( )
inlinestatic

Definition at line 20 of file Tangent.h.

21  {
22  return "Tangent";
23  }
static Tangent Tangent::getUnity ( )
inlinestatic

Definition at line 195 of file Tangent.h.

References Tangent().

196  {
199  }
Tangent()
Definition: Tangent.h:26
static Tangent Tangent::getZero ( )
inlinestatic

Definition at line 189 of file Tangent.h.

References Tangent().

190  {
191  double zero = NumTypeTraits<double>::getZero();
192  return Tangent(zero,zero);
193  }
Tangent()
Definition: Tangent.h:26
Tangent& Tangent::operator*= ( const Tangent o)
inline

Definition at line 95 of file Tangent.h.

References _dv, and _v.

96  {
97  _dv = _dv*o._v + _v*o._dv;
98  _v *= o._v;
99  return *this;
100  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator*= ( const double &  o)
inline

Definition at line 121 of file Tangent.h.

References _dv, and _v.

122  {
123  _v *= o;
124  _dv *= o;
125  return *this;
126  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator*= ( const int &  i)
inline

Definition at line 147 of file Tangent.h.

References _dv, and _v.

148  {
149  _v *= double(i);
150  _dv *= double(i);
151  return *this;
152  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator+= ( const Tangent o)
inline

Definition at line 81 of file Tangent.h.

References _dv, and _v.

82  {
83  _v += o._v;
84  _dv += o._dv;
85  return *this;
86  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator+= ( const double &  o)
inline

Definition at line 109 of file Tangent.h.

References _v.

110  {
111  _v += o;
112  return *this;
113  }
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator+= ( const int &  i)
inline

Definition at line 135 of file Tangent.h.

References _v.

136  {
137  _v += double(i);
138  return *this;
139  }
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator-= ( const Tangent o)
inline

Definition at line 88 of file Tangent.h.

References _dv, and _v.

89  {
90  _v -= o._v;
91  _dv -= o._dv;
92  return *this;
93  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator-= ( const double &  o)
inline

Definition at line 115 of file Tangent.h.

References _v.

116  {
117  _v -= o;
118  return *this;
119  }
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator-= ( const int &  i)
inline

Definition at line 141 of file Tangent.h.

References _v.

142  {
143  _v -= double(i);
144  return *this;
145  }
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator/= ( const Tangent o)
inline

Definition at line 102 of file Tangent.h.

References _dv, and _v.

103  {
104  _dv = (_dv*o._v - _v*o._dv)/(o._v*o._v);
105  _v /= o._v;
106  return *this;
107  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator/= ( const double &  o)
inline

Definition at line 128 of file Tangent.h.

References _dv, and _v.

129  {
130  _v /= o;
131  _dv /= o;
132  return *this;
133  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator/= ( const int &  i)
inline

Definition at line 154 of file Tangent.h.

References _dv, and _v.

155  {
156  _v /= double(i);
157  _dv /= double(i);
158  return *this;
159  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator= ( const Tangent o)
inline

Definition at line 57 of file Tangent.h.

References _dv, and _v.

58  {
59  if (this == &o)
60  return *this;
61  _v = o._v;
62  _dv = o._dv;
63  return *this;
64  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator= ( const double &  f)
inline

Definition at line 66 of file Tangent.h.

References _dv, and _v.

67  {
68  _v = f;
70  return *this;
71  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
Tangent& Tangent::operator= ( const int &  i)
inline

Definition at line 74 of file Tangent.h.

References _dv, and _v.

75  {
76  _v = double(i);
78  return *this;
79  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
void Tangent::print ( ostream &  os) const
inline

Definition at line 184 of file Tangent.h.

References _dv, and _v.

Referenced by operator<<().

185  {
186  os << "< " << _v << " , " << _dv << ">";
187  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
static void Tangent::reduceSum ( Tangent sum,
const Tangent x 
)
inlinestatic

Definition at line 254 of file Tangent.h.

254 {sum+=x;}
static void Tangent::safeDivide ( Tangent x,
const Tangent y 
)
inlinestatic

Definition at line 256 of file Tangent.h.

References _v.

256 {if (y._v!=0) x/=y;}
double _v
Definition: Tangent.h:259
static void Tangent::setFloat ( Tangent t,
const int  i,
const double &  val 
)
inlinestatic

Definition at line 212 of file Tangent.h.

References _dv, and _v.

213  {
214  if (i == 0)
215  t._v = val;
216  else
217  t._dv = val;
218  }
double _dv
Definition: Tangent.h:260
double _v
Definition: Tangent.h:259
static void Tangent::setMax ( Tangent x,
const Tangent y 
)
inlinestatic

Definition at line 257 of file Tangent.h.

References _v.

257 {if (y._v>x._v) x=y;}
double _v
Definition: Tangent.h:259
Tangent::TANGENT_RELATIONAL_OPS ( operator  )
Tangent::TANGENT_RELATIONAL_OPS ( operator>=  ,
>=   
)
Tangent::TANGENT_RELATIONAL_OPS ( )
Tangent::TANGENT_RELATIONAL_OPS ( operator<=  ,
<=   
)
Tangent::TANGENT_RELATIONAL_OPS ( operator  = =)
Tangent::TANGENT_RELATIONAL_OPS ( operator!  ,
 
)
static void Tangent::write ( FILE *  fp,
const Tangent x 
)
inlinestatic

Definition at line 229 of file Tangent.h.

References _v.

229 {fprintf(fp,"%f",x._v);}
double _v
Definition: Tangent.h:259

Member Data Documentation


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