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

base::BinaryOpExpression Class Reference

Inheritance diagram for base::BinaryOpExpression:

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

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

 BinaryOpExpression (ref< ExpressionNode > left, ref< ExpressionNode > right)
 BinaryOpExpression (const BinaryOpExpression &e)
virtual void serialize (Serializer &s)
 read or write object state to Serializer

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

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

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

virtual void resetCache () const
 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
 set derivCached false and call resetDerivCached() on children

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

Protected Attributes

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

Friends

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(), 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::BinaryOpExpression::BinaryOpExpression ref< ExpressionNode left,
ref< ExpressionNode right
[inline]
 

Definition at line 42 of file BinaryOpExpression.

References leftArg, and rightArg.

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

Definition at line 44 of file BinaryOpExpression.

References leftArg, and rightArg.

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

Definition at line 50 of file BinaryOpExpression.


Member Function Documentation

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

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

Implements base::ExpressionNode.

Implemented in base::DifferenceExpression, base::ProductExpression, base::QuotientExpression, and base::SumExpression.

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

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

Implements base::ExpressionNode.

Implemented in base::DifferenceExpression, base::ProductExpression, base::QuotientExpression, and base::SumExpression.

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, 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::BinaryOpExpression::operationCounts Int addsub,
Int multdiv,
Int trig
const [inline, protected, virtual]
 

Implements base::ExpressionNode.

Reimplemented in base::DifferenceExpression, base::ProductExpression, base::QuotientExpression, and base::SumExpression.

Definition at line 64 of file BinaryOpExpression.

References base::Int, leftArg, and rightArg.

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]
 

set valueCached false and call resetCache() on children

Implements base::ExpressionNode.

Definition at line 53 of file BinaryOpExpression.

References leftArg, and rightArg.

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

set derivCached false and call resetDerivCached() on children

Implements base::ExpressionNode.

Definition at line 56 of file BinaryOpExpression.

References leftArg, and rightArg.

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

read or write object state to Serializer

Implements base::Serializable.

Definition at line 47 of file BinaryOpExpression.

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

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

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, inherited]
 

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 base::ExpressionNode::isBinaryOp(), base::ExpressionNode::isUnaryOp(), and base::ExpressionNode::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, inherited]
 

Definition at line 93 of file ExpressionNode.

friend class Expression [friend]
 

Reimplemented from base::ExpressionNode.

Definition at line 73 of file BinaryOpExpression.

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]
 

Definition at line 70 of file BinaryOpExpression.

Referenced by BinaryOpExpression(), operationCounts(), resetCache(), resetDerivCached(), and 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]
 

Definition at line 71 of file BinaryOpExpression.

Referenced by BinaryOpExpression(), operationCounts(), resetCache(), resetDerivCached(), and 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:38:25 2004 for OpenSim by doxygen 1.3.6