Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

base::SumExpression Class Reference

Inheritance diagram for base::SumExpression:

Inheritance graph
[legend]
Collaboration diagram for base::SumExpression:

Collaboration graph
[legend]
List of all members.

Public Types

enum  NodeType {
  Sum, Difference, Product, Quotient,
  Negative, Constant, Variable, Sine,
  Cosine, Leaf = 1024, UnaryOp = 2048, BinaryOp = 4096
}

Public Member Functions

 SumExpression (ref< ExpressionNode > left, ref< ExpressionNode > right)
 SumExpression (const SumExpression &e)
virtual NodeType type () const
 get NodeType

virtual Objectclone () const
virtual String className () const
virtual String toString () const
virtual void serialize (Serializer &s)
 read or write object state to Serializer

bool isOperator () const
bool isUnaryOp () const
bool isBinaryOp () const
NodeType opType () const
Real evaluate (const Vector &params) const
ref< ExpressionNodedifferentiate (Int withRespectToIndex) const
virtual bool isSameKindAs (const ReferencedObject &) const
virtual bool isSameKindAs (const Object &) const
void reference () const
bool unreference () const
const int referenceCount () const
void enableOnUnreferenceCall (bool enabled)
virtual void onUnreference () const

Static Public Member Functions

template<class BaseClass, class DerivedClass> void registerSerializableInstantiator (const SerializableInstantiator &instantiator)
void registerSerializableInstantiator (const String &baseClassTypeName, const String &derivedClassTypeName, const SerializableInstantiator &instantiator)
template<class BaseClass> const SerializableInstantiator & getSerializableInstantiator (const String &derivedClassTypeName)
const SerializableInstantiator & getSerializableInstantiator (const String &baseClassTypeName, const String &derivedClassTypeName)

Protected Member Functions

 SumExpression ()
virtual void cacheValue (const Vector &params) const
 perform evaluation with params and sore in value (& set valueCached true)

virtual void cacheDerivative (Int withRespectToIndex) const
 perform differentiation and cache in derivative (& set set derivCached)

virtual void operationCounts (Int &addsub, Int &multdiv, Int &trig) const
virtual void resetCache () const
 set valueCached false and call resetCache() on children

virtual void resetDerivCached () const
 set derivCached false and call resetDerivCached() on children


Protected Attributes

ref< ExpressionNodeleftArg
ref< ExpressionNoderightArg
bool valueCached
Real value
bool derivCached
Int derivWithRespToIndex
ref< ExpressionNodederivative
int _refCount
bool onUnreferenceEnabled

Friends

class Serializable::SerializableDerivedInstantiator< SumExpression >
class Expression
class BinaryOpExpression
class UnaryOpExpression

Member Enumeration Documentation

enum base::ExpressionNode::NodeType [inherited]
 

Enumeration values:
Sum 
Difference 
Product 
Quotient 
Negative 
Constant 
Variable 
Sine 
Cosine 
Leaf 
UnaryOp 
BinaryOp 

Definition at line 49 of file ExpressionNode.

Referenced by base::ExpressionNode::opType(), base::VariableExpression::type(), type(), base::SinExpression::type(), base::QuotientExpression::type(), base::ProductExpression::type(), base::NegateExpression::type(), base::DifferenceExpression::type(), base::CosExpression::type(), and base::ConstantExpression::type().


Constructor & Destructor Documentation

base::SumExpression::SumExpression ref< ExpressionNode left,
ref< ExpressionNode right
[inline]
 

Definition at line 42 of file SumExpression.

base::SumExpression::SumExpression const SumExpression e  )  [inline]
 

Definition at line 44 of file SumExpression.

base::SumExpression::SumExpression  )  [inline, protected]
 

Definition at line 55 of file SumExpression.

Referenced by cacheDerivative(), and clone().


Member Function Documentation

virtual void base::SumExpression::cacheDerivative Int  withRespectToIndex  )  const [inline, protected, virtual]
 

perform differentiation and cache in derivative (& set set derivCached)

Implements base::BinaryOpExpression.

Definition at line 60 of file SumExpression.

References base::Int, NewObj, and SumExpression().

virtual void base::SumExpression::cacheValue const Vector params  )  const [inline, protected, virtual]
 

perform evaluation with params and sore in value (& set valueCached true)

Implements base::BinaryOpExpression.

Definition at line 57 of file SumExpression.

References base::Vector.

virtual String base::SumExpression::className  )  const [inline, virtual]
 

return the name of the object's class type. Must be defined by derived classes.

Implements base::Object.

Definition at line 50 of file SumExpression.

References base::String.

virtual Object& base::SumExpression::clone  )  const [inline, virtual]
 

Definition at line 49 of file SumExpression.

References NewObj, and SumExpression().

ref<ExpressionNode> base::ExpressionNode::differentiate Int  withRespectToIndex  )  const [inline, inherited]
 

Definition at line 67 of file ExpressionNode.

References Assert, base::ExpressionNode::cacheDerivative(), base::ExpressionNode::derivative, base::ExpressionNode::derivCached, base::ExpressionNode::derivWithRespToIndex, and base::Int.

void base::Referenced::enableOnUnreferenceCall bool  enabled  )  [inline, inherited]
 

If enabled, each call to unreference() will also call virtual method onUnreference()

Definition at line 115 of file Referenced.

References base::Referenced::onUnreferenceEnabled.

Real base::ExpressionNode::evaluate const Vector params  )  const [inline, inherited]
 

Definition at line 60 of file ExpressionNode.

References base::ExpressionNode::cacheValue(), base::Real, base::ExpressionNode::value, base::ExpressionNode::valueCached, and base::Vector.

const SerializableInstantiator& base::Serializable::getSerializableInstantiator const String baseClassTypeName,
const String derivedClassTypeName
[static, inherited]
 

template<class BaseClass>
const SerializableInstantiator& base::Serializable::getSerializableInstantiator const String derivedClassTypeName  )  [inline, static, inherited]
 

Definition at line 71 of file Serializable.

References base::String.

bool base::ExpressionNode::isBinaryOp  )  const [inline, inherited]
 

Definition at line 57 of file ExpressionNode.

References base::ExpressionNode::BinaryOp, base::Int, and base::ExpressionNode::type().

Referenced by base::ExpressionNode::isOperator().

bool base::ExpressionNode::isOperator  )  const [inline, inherited]
 

Definition at line 55 of file ExpressionNode.

References base::ExpressionNode::isBinaryOp(), and base::ExpressionNode::isUnaryOp().

virtual bool base::Object::isSameKindAs const Object  )  const [inline, virtual, inherited]
 

Definition at line 47 of file Object.

virtual bool base::ReferencedObject::isSameKindAs const ReferencedObject  )  const [inline, virtual, inherited]
 

Definition at line 52 of file ReferencedObject.

bool base::ExpressionNode::isUnaryOp  )  const [inline, inherited]
 

Definition at line 56 of file ExpressionNode.

References base::Int, base::ExpressionNode::type(), and base::ExpressionNode::UnaryOp.

Referenced by base::ExpressionNode::isOperator().

virtual void base::Referenced::onUnreference  )  const [inline, virtual, inherited]
 

Called by unreference() if enabled via enableOnUnreferenceCall(true). Typically overridden in subclasses that wish to know about unreference() calls - for example to handle manually breaking cyclic references

Reimplemented in robot::control::ControllableAdaptor::AdaptorControlInterface, and robot::control::ControllableAdaptor.

Definition at line 121 of file Referenced.

Referenced by base::Referenced::unreference().

virtual void base::SumExpression::operationCounts Int addsub,
Int multdiv,
Int trig
const [inline, protected, virtual]
 

Reimplemented from base::BinaryOpExpression.

Definition at line 68 of file SumExpression.

References base::Int.

NodeType base::ExpressionNode::opType  )  const [inline, inherited]
 

Definition at line 58 of file ExpressionNode.

References base::Int, base::ExpressionNode::Leaf, base::ExpressionNode::NodeType, and base::ExpressionNode::type().

void base::Referenced::reference  )  const [inline, inherited]
 

Increment the reference count by one, indicating that this object has another pointer which is referencing it.

Definition at line 65 of file Referenced.

References base::Referenced::_refCount.

const int base::Referenced::referenceCount  )  const [inline, inherited]
 

Return the number pointers currently referencing this object.

Definition at line 112 of file Referenced.

References base::Referenced::_refCount.

Referenced by robot::control::ControllableAdaptor::AdaptorControlInterface::onUnreference().

void base::Serializable::registerSerializableInstantiator const String baseClassTypeName,
const String derivedClassTypeName,
const SerializableInstantiator instantiator
[static, inherited]
 

template<class BaseClass, class DerivedClass>
void base::Serializable::registerSerializableInstantiator const SerializableInstantiator instantiator  )  [inline, static, inherited]
 

Definition at line 62 of file Serializable.

virtual void base::BinaryOpExpression::resetCache  )  const [inline, protected, virtual, inherited]
 

set valueCached false and call resetCache() on children

Implements base::ExpressionNode.

Definition at line 53 of file BinaryOpExpression.

References base::BinaryOpExpression::leftArg, and base::BinaryOpExpression::rightArg.

virtual void base::BinaryOpExpression::resetDerivCached  )  const [inline, protected, virtual, inherited]
 

set derivCached false and call resetDerivCached() on children

Implements base::ExpressionNode.

Definition at line 56 of file BinaryOpExpression.

References base::BinaryOpExpression::leftArg, and base::BinaryOpExpression::rightArg.

virtual void base::BinaryOpExpression::serialize Serializer s  )  [inline, virtual, inherited]
 

read or write object state to Serializer

Implements base::Serializable.

Definition at line 47 of file BinaryOpExpression.

References base::Serializer::baseRef(), base::BinaryOpExpression::leftArg, and base::BinaryOpExpression::rightArg.

virtual String base::SumExpression::toString  )  const [inline, virtual]
 

Implements base::ExpressionNode.

Definition at line 52 of file SumExpression.

References base::String.

virtual NodeType base::SumExpression::type  )  const [inline, virtual]
 

get NodeType

Implements base::ExpressionNode.

Definition at line 47 of file SumExpression.

References base::ExpressionNode::NodeType.

bool base::Referenced::unreference  )  const [inline, inherited]
 

Decrement the reference count by one, indicating that a pointer to this object is referencing it. If the refence count goes to zero, it is assumed that this object is nolonger referenced and is automatically deleted.

Definition at line 81 of file Referenced.

References base::Referenced::_refCount, Exception, base::Referenced::onUnreference(), and base::Referenced::onUnreferenceEnabled.


Friends And Related Function Documentation

friend class BinaryOpExpression [friend, inherited]
 

Definition at line 93 of file ExpressionNode.

friend class Expression [friend, inherited]
 

Reimplemented from base::ExpressionNode.

Definition at line 73 of file BinaryOpExpression.

friend class Serializable::SerializableDerivedInstantiator< SumExpression > [friend]
 

Definition at line 71 of file SumExpression.

friend class UnaryOpExpression [friend, inherited]
 

Definition at line 94 of file ExpressionNode.


Member Data Documentation

int base::Referenced::_refCount [mutable, protected, inherited]
 

Definition at line 136 of file Referenced.

Referenced by base::Referenced::reference(), base::Referenced::referenceCount(), base::Referenced::Referenced(), base::Referenced::unreference(), and base::Referenced::~Referenced().

ref<ExpressionNode> base::ExpressionNode::derivative [mutable, protected, inherited]
 

Definition at line 89 of file ExpressionNode.

Referenced by base::ExpressionNode::differentiate().

bool base::ExpressionNode::derivCached [mutable, protected, inherited]
 

Definition at line 87 of file ExpressionNode.

Referenced by base::ExpressionNode::differentiate(), and base::ExpressionNode::ExpressionNode().

Int base::ExpressionNode::derivWithRespToIndex [mutable, protected, inherited]
 

Definition at line 88 of file ExpressionNode.

Referenced by base::ExpressionNode::differentiate().

ref<ExpressionNode> base::BinaryOpExpression::leftArg [protected, inherited]
 

Definition at line 70 of file BinaryOpExpression.

Referenced by base::BinaryOpExpression::BinaryOpExpression(), base::BinaryOpExpression::operationCounts(), base::BinaryOpExpression::resetCache(), base::BinaryOpExpression::resetDerivCached(), and base::BinaryOpExpression::serialize().

bool base::Referenced::onUnreferenceEnabled [protected, inherited]
 

Definition at line 137 of file Referenced.

Referenced by base::Referenced::enableOnUnreferenceCall(), base::Referenced::Referenced(), and base::Referenced::unreference().

ref<ExpressionNode> base::BinaryOpExpression::rightArg [protected, inherited]
 

Definition at line 71 of file BinaryOpExpression.

Referenced by base::BinaryOpExpression::BinaryOpExpression(), base::BinaryOpExpression::operationCounts(), base::BinaryOpExpression::resetCache(), base::BinaryOpExpression::resetDerivCached(), and base::BinaryOpExpression::serialize().

Real base::ExpressionNode::value [mutable, protected, inherited]
 

Definition at line 82 of file ExpressionNode.

Referenced by base::ExpressionNode::evaluate().

bool base::ExpressionNode::valueCached [mutable, protected, inherited]
 

Definition at line 81 of file ExpressionNode.

Referenced by base::ExpressionNode::evaluate(), and base::ExpressionNode::ExpressionNode().


The documentation for this class was generated from the following file:
Generated on Thu Jul 29 16:39:23 2004 for OpenSim by doxygen 1.3.6