MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
PowScalarFunction Class Reference

#include <ScalarFunctionsImpl.h>

Inheritance diagram for PowScalarFunction:
Collaboration diagram for PowScalarFunction:

Public Member Functions

 PowScalarFunction (const doublereal p)
 
virtual ~PowScalarFunction (void)
 
virtual doublereal operator() (const doublereal x) const
 
virtual doublereal ComputeDiff (const doublereal t, const integer order=1) const
 
- Public Member Functions inherited from DifferentiableScalarFunction
virtual ~DifferentiableScalarFunction ()
 
- Public Member Functions inherited from BasicScalarFunction
virtual ~BasicScalarFunction ()
 

Private Attributes

const doublereal pw
 

Detailed Description

Definition at line 82 of file ScalarFunctionsImpl.h.

Constructor & Destructor Documentation

PowScalarFunction::PowScalarFunction ( const doublereal  p)

Definition at line 236 of file ScalarFunctionsImpl.cc.

References NO_OP.

237 : pw(p)
238 {
239  NO_OP;
240 }
#define NO_OP
Definition: myassert.h:74
const doublereal pw
PowScalarFunction::~PowScalarFunction ( void  )
virtual

Definition at line 242 of file ScalarFunctionsImpl.cc.

References NO_OP.

243 {
244  NO_OP;
245 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

doublereal PowScalarFunction::ComputeDiff ( const doublereal  t,
const integer  order = 1 
) const
virtual

Implements DifferentiableScalarFunction.

Definition at line 254 of file ScalarFunctionsImpl.cc.

References ASSERTMSGBREAK, operator()(), order, grad::pow(), and pw.

255 {
256  ASSERTMSGBREAK(order >=0, "Error in PowScalarFunction::ComputeDiff, order<0");
257  switch (order) {
258  case 0:
259  return this->operator()(x);
260 
261  default:
262  doublereal mul = 1.;
263  for (integer i = 0; i < order; i++) {
264  mul *= pw - i;
265  }
266  return mul*pow(x, pw - order);
267 
268  }
269 }
#define ASSERTMSGBREAK(expr, msg)
Definition: myassert.h:222
GradientExpression< BinaryExpr< FuncPow, LhsExpr, RhsExpr > > pow(const GradientExpression< LhsExpr > &u, const GradientExpression< RhsExpr > &v)
Definition: gradient.h:2961
enum @55 order
virtual doublereal operator()(const doublereal x) const
const doublereal pw
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

doublereal PowScalarFunction::operator() ( const doublereal  x) const
virtual

Implements DifferentiableScalarFunction.

Definition at line 248 of file ScalarFunctionsImpl.cc.

References grad::pow(), and pw.

Referenced by ComputeDiff().

249 {
250  return pow(x, pw);
251 }
GradientExpression< BinaryExpr< FuncPow, LhsExpr, RhsExpr > > pow(const GradientExpression< LhsExpr > &u, const GradientExpression< RhsExpr > &v)
Definition: gradient.h:2961
const doublereal pw

Here is the call graph for this function:

Member Data Documentation

const doublereal PowScalarFunction::pw
private

Definition at line 84 of file ScalarFunctionsImpl.h.

Referenced by ComputeDiff(), and operator()().


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