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

#include <ScalarFunctionsImpl.h>

Inheritance diagram for MulScalarFunction:
Collaboration diagram for MulScalarFunction:

Public Member Functions

 MulScalarFunction (const BasicScalarFunction *const b1, const BasicScalarFunction *const b2)
 
virtual ~MulScalarFunction (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
DifferentiableScalarFunction
*const 
a1
 
const
DifferentiableScalarFunction
*const 
a2
 

Detailed Description

Definition at line 193 of file ScalarFunctionsImpl.h.

Constructor & Destructor Documentation

MulScalarFunction::MulScalarFunction ( const BasicScalarFunction *const  b1,
const BasicScalarFunction *const  b2 
)

Definition at line 889 of file ScalarFunctionsImpl.cc.

References NO_OP.

892 : a1(ptr_cast<const DifferentiableScalarFunction*const>(b1)),
893 a2(ptr_cast<const DifferentiableScalarFunction*const>(b2))
894 {
895  NO_OP;
896 }
#define NO_OP
Definition: myassert.h:74
const DifferentiableScalarFunction *const a2
const DifferentiableScalarFunction *const a1
MulScalarFunction::~MulScalarFunction ( void  )
virtual

Definition at line 898 of file ScalarFunctionsImpl.cc.

References NO_OP.

899 {
900  NO_OP;
901 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

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

Implements DifferentiableScalarFunction.

Definition at line 910 of file ScalarFunctionsImpl.cc.

References a1, a2, ASSERTMSGBREAK, DifferentiableScalarFunction::ComputeDiff(), and operator()().

911 {
912  ASSERTMSGBREAK(order >= 0, "Error in MulScalarFunction::ComputeDiff, order<0");
913  switch (order) {
914  case 0:
915  return this->operator()(x);
916 
917  default:
918  return a1->ComputeDiff(x, order)*a2->operator()(x)
919  + a1->operator()(x)*a2->ComputeDiff(x, order);
920  }
921 }
#define ASSERTMSGBREAK(expr, msg)
Definition: myassert.h:222
virtual doublereal operator()(const doublereal x) const
enum @55 order
const DifferentiableScalarFunction *const a2
const DifferentiableScalarFunction *const a1
virtual doublereal ComputeDiff(const doublereal x, const integer order=1) const =0

Here is the call graph for this function:

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

Implements DifferentiableScalarFunction.

Definition at line 904 of file ScalarFunctionsImpl.cc.

References a1, and a2.

Referenced by ComputeDiff().

905 {
906  return a1->operator()(x)*a2->operator()(x);
907 }
const DifferentiableScalarFunction *const a2
const DifferentiableScalarFunction *const a1

Member Data Documentation

const DifferentiableScalarFunction* const MulScalarFunction::a1
private

Definition at line 195 of file ScalarFunctionsImpl.h.

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

const DifferentiableScalarFunction* const MulScalarFunction::a2
private

Definition at line 196 of file ScalarFunctionsImpl.h.

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


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