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

base::ExpressionNode Class Reference

Inheritance diagram for base::ExpressionNode:

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

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

 ExpressionNode ()
virtual NodeType type () const=0
 get NodeType

bool isOperator () const
bool isUnaryOp () const
bool isBinaryOp () const
NodeType opType () const
Real evaluate (const Vector &params) const
ref< ExpressionNodedifferentiate (Int withRespectToIndex) const
virtual String toString () const=0
virtual bool isSameKindAs (const ReferencedObject &) const
virtual bool isSameKindAs (const Object &) const
virtual String className () const=0
void reference () const
bool unreference () const
const int referenceCount () const
void enableOnUnreferenceCall (bool enabled)
virtual void onUnreference () const
virtual void serialize (Serializer &s)=0
 read or write object state to Serializer


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

virtual void cacheValue (const Vector &params) const=0
 perform evaluation with params and store in value (& set valueCached true)

virtual void resetCache () const=0
 set valueCached false and call resetCache() on children

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

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

virtual void operationCounts (Int &addsub, Int &multdiv, Int &trig) const=0

Protected Attributes

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

Friends

class BinaryOpExpression
class UnaryOpExpression
class Expression

Member Enumeration Documentation

enum base::ExpressionNode::NodeType
 

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

Definition at line 49 of file ExpressionNode.

Referenced by opType(), base::VariableExpression::type(), base::SumExpression::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::ExpressionNode::ExpressionNode  )  [inline]
 

Definition at line 46 of file ExpressionNode.

References derivCached, and valueCached.


Member Function Documentation

virtual void base::ExpressionNode::cacheDerivative Int  withRespectToIndex  )  const [protected, pure virtual]
 

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

Implemented in base::BinaryOpExpression, base::ConstantExpression, base::CosExpression, base::DifferenceExpression, base::NegateExpression, base::ProductExpression, base::QuotientExpression, base::SinExpression, base::SumExpression, base::UnaryOpExpression, and base::VariableExpression.

Referenced by differentiate().

virtual void base::ExpressionNode::cacheValue const Vector params  )  const [protected, pure virtual]
 

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

Implemented in base::BinaryOpExpression, base::ConstantExpression, base::CosExpression, base::DifferenceExpression, base::NegateExpression, base::ProductExpression, base::QuotientExpression, base::SinExpression, base::SumExpression, base::UnaryOpExpression, and base::VariableExpression.

Referenced by evaluate().

virtual String base::Object::className  )  const [pure virtual, inherited]
 

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

Implemented in base::Application, base::BinarySerializer, base::Cache, base::CacheDirectory, base::CacheFile, base::ConstantExpression, base::CosExpression, base::DifferenceExpression, base::Directory, base::Expression, base::Externalizer, base::File, base::LineSegPathRep, base::LineSegTrajectoryRep, base::Math, base::NegateExpression, base::ParametricPathRep, base::ParametricTrajectoryRep, base::Path, base::PathComponent, base::PathName, base::ProductExpression, base::QuotientExpression, base::SimpleXMLSerializer, base::SinExpression, base::StdFileSystem, base::SumExpression, base::Time, base::Trajectory, base::Universe, base::VariableExpression, base::VDirectory, base::WaypointPathRep, base::WaypointTrajectoryRep, base::World, gfx::IndexedPoint3Array, gfx::OSGWorld, gfx::TriangleIterator, gfx::VisualPath, gfx::VisualTriangles, gfx::VisualTriangles::TriangleArrayIteratorState, physics::Body, physics::Box, physics::Capsule, physics::CollidableGroup, physics::CollisionModel::ModelState, physics::CollisionState, physics::Cone, physics::Cylinder, physics::DynamicSpatial, physics::GJKCollisionDetector, physics::GJKCollisionDetector::GJKCollisionState, physics::GJKCollisionModel, physics::HeightField, physics::LODTerrain, physics::MassProperties, physics::Material, physics::NullCollisionResponseHandler, physics::OBBCollisionDetector, physics::OBBCollisionDetector::OBBCollisionState, physics::OBBCollisionModel, physics::ODEBallJoint, physics::ODECollidableBody, physics::ODECollidableBody::BodyState, physics::ODECollidableGroup, physics::ODECollisionCuller, physics::ODECollisionDetector, physics::ODECollisionDetector::ODECollisionState, physics::ODECollisionModel, physics::ODECollisionResponseHandler, physics::ODEConstraintGroup, physics::ODEContactConstraint, physics::ODEDoubleHingeJoint, physics::ODEFixedConstraint, physics::ODEHingeJoint, physics::ODEMotor, physics::ODESliderJoint, physics::ODESolid, physics::ODESolidConnectedCollidableBody, physics::ODESolidSystem, physics::ODEUniversalJoint, physics::Polyhedron, physics::Polyhedron::Vertex, physics::Polyhedron::Edge, physics::Polyhedron::Polygon, physics::SimpleCollisionCuller, physics::SimpleTerrain, physics::Solid, physics::SOLIDCollisionDetector, physics::SOLIDCollisionDetector::SOLIDCollisionState, physics::SOLIDCollisionModel, physics::SolidCollisionResponseHandler, physics::SpatialGroup, physics::SpatialTransform, physics::Sphere, physics::Torus, physics::VisualDebugUtil, robot::AggregateControlInterface, robot::control::ControllableAdaptor, robot::control::ControllableAdaptor::AdaptorControlInterface, robot::control::kinematics::AnalyticLagrangianFSBetaOptimizer, robot::control::kinematics::AnalyticLagrangianNullSpaceBetaOptimizer, robot::control::kinematics::BetaFormConstraints::BetaFormConstraint, robot::control::kinematics::BetaFormConstraints, robot::control::kinematics::IKOR, robot::control::kinematics::IKOR::JointLimitBetaConstraint, robot::control::kinematics::IKOR::PushAwayBetaConstraint, robot::control::kinematics::IKOR::RankLossBetaConstraint, robot::control::kinematics::IKORController, robot::control::kinematics::IKORController::EEPositionControlInterface, robot::control::kinematics::IKORController::LinkPositionsControlInterface, robot::control::kinematics::IKORFullSpaceSolver, robot::control::kinematics::LeastNormIKSolver, robot::control::kinematics::MPPseudoInvSolver, robot::control::kinematics::OldIKOR, robot::control::kinematics::ReferenceOpVectorFormObjective, robot::control::kinematics::SVDFullSpaceSolver, robot::control::ManipulatorPIDPositionController, robot::control::ManipulatorPIDPositionController::PositionInterface, robot::JFKengine, robot::KinematicChain::Link, robot::KinematicChain, robot::ManipulatorDescription, robot::ManipulatorJointTrajectory, robot::NumericKinematicEvaluator, robot::PlatformDescription, robot::RobotDescription, robot::sim::BasicEnvironment, robot::sim::BasicEnvironment::Tool, robot::sim::BasicEnvironment::Obstacle, robot::sim::Environment, robot::sim::IKORTest, robot::sim::IKORTest::Test, robot::sim::IKORTester, robot::sim::SimulatedBasicEnvironment, robot::sim::SimulatedKinematicChain::ProximityCollisionResponseHandler, robot::sim::SimulatedManipulatorDescription, robot::sim::SimulatedPlatform, robot::sim::SimulatedRobot, robot::sim::SimulatedRobot::ManipulatorControlInterface, robot::sim::SimulatedRobot::ToolControlInterface, robot::sim::SimulatedRobot::PlatformControlInterface, robot::sim::SimulatedRobot::ProximitySensorInterface, robot::sim::SimulatedRobotDescription, robot::sim::SimulatedSerialManipulator, robot::sim::SimulatedTool, robot::sim::TestBasicEnvironment, robot::sim::VisualIKORTest, robot::TestRobot, robot::TestRobot::ManipulatorControlInterface, robot::TestRobot::ToolControlInterface, robot::TestRobot::PlatformControlInterface, robot::TestRobot::ProximitySensorInterface, and robot::ToolDescription.

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

Definition at line 67 of file ExpressionNode.

References Assert, cacheDerivative(), derivative, derivCached, 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]
 

Definition at line 60 of file ExpressionNode.

References cacheValue(), base::Real, value, 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]
 

Definition at line 57 of file ExpressionNode.

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

Referenced by isOperator().

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

Definition at line 55 of file ExpressionNode.

References isBinaryOp(), and 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]
 

Definition at line 56 of file ExpressionNode.

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

Referenced by 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::ExpressionNode::operationCounts Int addsub,
Int multdiv,
Int trig
const [protected, pure virtual]
 

Implemented in base::BinaryOpExpression, base::ConstantExpression, base::CosExpression, base::DifferenceExpression, base::NegateExpression, base::ProductExpression, base::QuotientExpression, base::SinExpression, base::SumExpression, base::UnaryOpExpression, and base::VariableExpression.

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

Definition at line 58 of file ExpressionNode.

References base::Int, Leaf, NodeType, and 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::ExpressionNode::resetCache  )  const [protected, pure virtual]
 

set valueCached false and call resetCache() on children

Implemented in base::BinaryOpExpression, base::ConstantExpression, base::UnaryOpExpression, and base::VariableExpression.

virtual void base::ExpressionNode::resetDerivCached  )  const [protected, pure virtual]
 

set derivCached false and call resetDerivCached() on children

Implemented in base::BinaryOpExpression, base::ConstantExpression, base::UnaryOpExpression, and base::VariableExpression.

virtual void base::Serializable::serialize Serializer s  )  [pure virtual, inherited]
 

read or write object state to Serializer

Implemented in base::BinaryOpExpression, base::ConstantExpression, base::Expression, base::LineSegPathRep, base::LineSegTrajectoryRep, base::ParametricPathRep, base::ParametricTrajectoryRep, base::Path, base::Trajectory, base::UnaryOpExpression, base::VariableExpression, base::WaypointPathRep, base::WaypointTrajectoryRep, physics::Box, physics::Capsule, physics::Cone, physics::Cylinder, physics::LODTerrain, physics::Polyhedron::Vertex, physics::Polyhedron::Edge, physics::Polyhedron::Polygon, physics::Polyhedron, physics::Sphere, physics::Torus, robot::KinematicChain::Link, robot::KinematicChain, and robot::ManipulatorJointTrajectory.

virtual String base::ExpressionNode::toString  )  const [pure virtual]
 

Implemented in base::ConstantExpression, base::CosExpression, base::DifferenceExpression, base::NegateExpression, base::ProductExpression, base::QuotientExpression, base::SinExpression, base::SumExpression, and base::VariableExpression.

Referenced by base::operator<<().

virtual NodeType base::ExpressionNode::type  )  const [pure virtual]
 

get NodeType

Implemented in base::ConstantExpression, base::CosExpression, base::DifferenceExpression, base::NegateExpression, base::ProductExpression, base::QuotientExpression, base::SinExpression, base::SumExpression, and base::VariableExpression.

Referenced by isBinaryOp(), isUnaryOp(), and opType().

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]
 

Definition at line 93 of file ExpressionNode.

friend class Expression [friend]
 

Reimplemented in base::BinaryOpExpression, base::ConstantExpression, base::CosExpression, base::NegateExpression, base::UnaryOpExpression, and base::VariableExpression.

Definition at line 95 of file ExpressionNode.

friend class UnaryOpExpression [friend]
 

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]
 

Definition at line 89 of file ExpressionNode.

Referenced by differentiate().

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

Definition at line 87 of file ExpressionNode.

Referenced by differentiate(), and ExpressionNode().

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

Definition at line 88 of file ExpressionNode.

Referenced by differentiate().

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().

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

Definition at line 82 of file ExpressionNode.

Referenced by evaluate().

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

Definition at line 81 of file ExpressionNode.

Referenced by evaluate(), and ExpressionNode().


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