C++ main module for gpm Package  1.0
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | List of all members
MATH_RootExpression Class Reference

This class is a root expression The MATH_RootExpression::newClassFactoryInstance() creates the class factory for creating nodes. More...

#include <MATH_RootExpression.h>

Inheritance diagram for MATH_RootExpression:
Inheritance graph
[legend]
Collaboration diagram for MATH_RootExpression:
Collaboration graph
[legend]

Public Member Functions

const double & operator[] (const int &index) const
 
const double * getValues () const
 get the values More...
 
const double & getValue (const int &index) const
 get the values More...
 
virtual const MATH_RootExpressiongetRootNode () const
 return the root node of the node More...
 
virtual int evaluate (const tFlag &action, MATH_Environment &symbols, MATH_Variable &var) const
 void evaluate the expression More...
 
virtual double evaluate ()
 void evaluate the expression More...
 
virtual double evaluate (MATH_Environment &env)
 void evaluate the expression More...
 
virtual double evaluate (SP::MATH_Environment env)
 void evaluate the expression More...
 
virtual double evaluate (const tFlag &action)
 void evaluate the expression More...
 
virtual double evaluate (const tFlag &action, MATH_Environment &symbols)
 void evaluate the expression More...
 
virtual double evaluate (const tFlag &action, SP::MATH_Environment symbols)
 void evaluate the expression More...
 
tBoolean parse (const tString &expr, MATH_Environment &symbols)
 parse the string More...
 
tBoolean parse (const tString &expr)
 parse the string More...
 
tString parse (const tString &expr, MATH_Environment &env, int &retCode)
 parse the string expr. More...
 
virtual
SP::MATH_ExpressionClassFactory 
newClassFactoryInstance () const
 create a class factory for leaves or operators More...
 
virtual tString toString () const
 return the string representation More...
 
void setArgumentsNumber (const int &n)
 set the arguments number More...
 
virtual tBoolean addArgument (SP::MATH_ChildExpression operand)
 add the argument More...
 
virtual tBoolean addArgument (MATH_ChildExpression *operand)
 add the argument More...
 
tBoolean setArgument (const int &index, SP::MATH_ChildExpression org)
 set the argument at index More...
 
tBoolean setArgument (const int &index, MATH_ChildExpression *arg)
 set an argument at index More...
 
void resetArgument (const int &index)
 reset the argument at index More...
 
void resetArguments ()
 reset all the arguments More...
 
SPC::MATH_ChildExpression getArgument (const int &i) const
 get argument at index i for reading More...
 
SP::MATH_ChildExpression getArgument (const int &i)
 get argument at index i for writing More...
 
int getArgumentsNumber () const
 get the arguments number More...
 
int evaluate (MATH_Environment &symbols, MATH_Variable &value) const
 void evaluate the algebric expression More...
 
void getSharedPointer (SP::CORE_Object &p)
 get the shared pointer of this class into p More...
 
void getSharedPointer (SPC::CORE_Object &p) const
 get the shared pointer of this class into p More...
 
tString getClassName () const
 return the class name of the object More...
 
tString getIdentityString () const
 return the identity string of the object of the form className_at_address More...
 
tString getPointerAddress () const
 return the identity string of the object More...
 
template<class T >
tBoolean isInstanceOf () const
 return true if the object is an instance of T More...
 
virtual void print ()
 print the class More...
 
virtual ostream & print (ostream &out) const
 print the class More...
 
virtual void print (const tString &message)
 print the class More...
 
virtual void print (const tInteger &str)
 print More...
 
virtual void print (const tRelativeInteger &str)
 print More...
 
virtual void print (const tReal &str)
 print More...
 
virtual void print (const int &str)
 print More...
 

Static Public Member Functions

static SP::MATH_RootExpression New ()
 create a root expression More...
 
static tString getClassName (const tString &identityString)
 return the class name of the object using only the identity string More...
 
template<class T >
static tString getTypeName ()
 get type name More...
 
static tBoolean is64Architecture ()
 return true if the machine is a 64 bits machine More...
 
static tBoolean is32Architecture ()
 return true if the machine is a 32 bits machine More...
 
static tString pointer2String (const void *obj)
 return the string represantation of a pointer More...
 
static void setOutput (ostream &out)
 set output More...
 
static ostream & getOutput ()
 get output More...
 
static void printObjectsInMemory ()
 print object in memory More...
 
static ostream & print (ostream &out, const tString &message)
 print the class More...
 
static void outputPrint (const tString &message)
 

Static Public Attributes

static const tFlag ALGEBRIC =0
 
static const tFlag IS_INSIDE =1
 
static const tFlag COMPUTE_BOUNDS =2
 
static const int SUCCESS =0
 
static const int FAIL =-1
 
static const int TYPE_MISMATCHED =-2
 
static const int SIZE_MISMATCHED =-3
 
static const int OUT_OF_BOUNDS =-4
 
static const int NULL_OPERAND =-5
 
static tBoolean mIsMemoryTesting =false
 indicator to store all classes created and deleted only for debuging version More...
 

Protected Member Functions

 MATH_RootExpression (void)
 create More...
 
virtual ~MATH_RootExpression (void)
 destroy More...
 
void setThis (SP::CORE_Object p)
 set this weak shared pointer called toDoAfterThis setting method More...
 
virtual void setType (tString type)
 set the type of the object More...
 
virtual void toDoAfterThisSetting ()
 method called after setThis() method this method can oly be called once. More...
 

Detailed Description

This class is a root expression The MATH_RootExpression::newClassFactoryInstance() creates the class factory for creating nodes.

Constructor & Destructor Documentation

MATH_RootExpression::MATH_RootExpression ( void  )
protected

create

References MATH_Variable::New().

Referenced by New().

Here is the call graph for this function:

Here is the caller graph for this function:

MATH_RootExpression::~MATH_RootExpression ( void  )
protectedvirtual

destroy

Member Function Documentation

tBoolean MATH_ParentExpression::addArgument ( SP::MATH_ChildExpression  operand)
virtualinherited
virtual tBoolean MATH_ParentExpression::addArgument ( MATH_ChildExpression operand)
inlinevirtualinherited

add the argument

Returns
true if the argument added

Reimplemented in MATH_NodeExpression.

References MATH_ParentExpression::addArgument(), CORE_Object::getSharedPointer(), and null.

Here is the call graph for this function:

virtual int MATH_RootExpression::evaluate ( const tFlag action,
MATH_Environment symbols,
MATH_Variable var 
) const
inlinevirtual
virtual double MATH_RootExpression::evaluate ( )
inlinevirtual

void evaluate the expression

References MATH_Expression::ALGEBRIC, and MATH_Environment::New().

Referenced by evaluate().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual double MATH_RootExpression::evaluate ( MATH_Environment env)
inlinevirtual

void evaluate the expression

References MATH_Expression::ALGEBRIC, and evaluate().

Here is the call graph for this function:

int MATH_Expression::evaluate ( MATH_Environment symbols,
MATH_Variable value 
) const
inlineinherited

void evaluate the algebric expression

Parameters
symbolsalgebric values of symbol
Returns
the value of the evaluation.

References MATH_Expression::evaluate().

Here is the call graph for this function:

virtual double MATH_RootExpression::evaluate ( SP::MATH_Environment  env)
inlinevirtual

void evaluate the expression

References MATH_Expression::ALGEBRIC, evaluate(), and null.

Here is the call graph for this function:

virtual double MATH_RootExpression::evaluate ( const tFlag action)
inlinevirtual

void evaluate the expression

References evaluate(), and MATH_Environment::New().

Here is the call graph for this function:

virtual double MATH_RootExpression::evaluate ( const tFlag action,
MATH_Environment symbols 
)
inlinevirtual

void evaluate the expression

References evaluate().

Here is the call graph for this function:

virtual double MATH_RootExpression::evaluate ( const tFlag action,
SP::MATH_Environment  symbols 
)
inlinevirtual

void evaluate the expression

References evaluate(), and null.

Here is the call graph for this function:

SPC::MATH_ChildExpression MATH_ParentExpression::getArgument ( const int &  i) const
inlineinherited
SP::MATH_ChildExpression MATH_ParentExpression::getArgument ( const int &  i)
inlineinherited

get argument at index i for writing

Parameters
iindex of the argument
Returns
the argument at index i for writing
int MATH_ParentExpression::getArgumentsNumber ( ) const
inlineinherited

get the arguments number

Referenced by MATH_NodeExpression::addArgument(), MATH_ParentExpression::addArgument(), and MATH_ParentExpression::setArgument().

Here is the caller graph for this function:

static tString CORE_Object::getClassName ( const tString identityString)
inlinestaticinherited

return the class name of the object using only the identity string

Referenced by CORE_Object::printObjectsInMemory().

Here is the caller graph for this function:

tString CORE_Object::getClassName ( ) const
inherited

return the class name of the object

Returns
the class name of the object

References tString.

Referenced by CORE_Object::getIdentityString().

Here is the caller graph for this function:

tString CORE_Object::getIdentityString ( ) const
inlineinherited

return the identity string of the object of the form className_at_address

Returns
the identity string of the object

References CORE_Object::getClassName(), CORE_Object::pointer2String(), and tString.

Referenced by CORE_Object::toString().

Here is the call graph for this function:

Here is the caller graph for this function:

static ostream& CORE_Object::getOutput ( )
inlinestaticinherited

get output

tString CORE_Object::getPointerAddress ( ) const
inlineinherited

return the identity string of the object

Returns
the identity string of the object

References CORE_Object::pointer2String().

Here is the call graph for this function:

virtual const MATH_RootExpression* MATH_RootExpression::getRootNode ( ) const
inlinevirtual

return the root node of the node

Implements MATH_ParentExpression.

void CORE_Object::getSharedPointer ( SP::CORE_Object &  p)
inlineinherited
void CORE_Object::getSharedPointer ( SPC::CORE_Object &  p) const
inlineinherited

get the shared pointer of this class into p

template<class T >
static tString CORE_Object::getTypeName ( )
inlinestaticinherited

get type name

References tString.

const double& MATH_RootExpression::getValue ( const int &  index) const
inline

get the values

const double* MATH_RootExpression::getValues ( ) const
inline

get the values

static tBoolean CORE_Object::is32Architecture ( )
inlinestaticinherited

return true if the machine is a 32 bits machine

References CORE_Object::is64Architecture().

Here is the call graph for this function:

tBoolean CORE_Object::is64Architecture ( )
staticinherited

return true if the machine is a 64 bits machine

Referenced by CORE_Object::is32Architecture().

Here is the caller graph for this function:

template<class T >
tBoolean CORE_Object::isInstanceOf ( ) const
inlineinherited

return true if the object is an instance of T

References null.

Referenced by MATH_BinaryOperator::insertInTree(), MATH_UnaryOperator::insertInTree(), and MATH_EndBlock::insertInTree().

Here is the caller graph for this function:

static SP::MATH_RootExpression MATH_RootExpression::New ( )
inlinestatic

create a root expression

References MATH_RootExpression().

Referenced by MATH_ExpressionClassFactory::NewInstance(), and MATH_FunctionNode::readArguments().

Here is the call graph for this function:

Here is the caller graph for this function:

SP::MATH_ExpressionClassFactory MATH_RootExpression::newClassFactoryInstance ( ) const
virtual

create a class factory for leaves or operators

References MATH_ExpressionClassFactory::New().

Referenced by parse(), and MATH_FunctionNode::readArguments().

Here is the call graph for this function:

Here is the caller graph for this function:

const double& MATH_RootExpression::operator[] ( const int &  index) const
inline
void CORE_Object::outputPrint ( const tString message)
staticinherited

print on output

References null, and CORE_Object::print().

Referenced by CORE_Exception::CORE_Exception().

Here is the call graph for this function:

Here is the caller graph for this function:

tBoolean MATH_RootExpression::parse ( const tString expr,
MATH_Environment symbols 
)

parse the string

Parameters
exprthe expression to analyse
symbolsthe symbols in expression
Returns
true if the entire string has been read throw an exception if :
  • unrecognized node
  • a node can not be inserted.

References MATH_ParentExpression::resetArguments(), and tString.

Referenced by parse().

Here is the call graph for this function:

Here is the caller graph for this function:

tBoolean MATH_RootExpression::parse ( const tString expr)
inline

parse the string

Parameters
exprthe expression to analyse
symbolsthe symbols in expression
Returns
true if the entire string has been read throw an exception if :
  • unrecognized node
  • a node can not be inserted.

References MATH_Environment::New(), and parse().

Here is the call graph for this function:

tString MATH_RootExpression::parse ( const tString expr,
MATH_Environment env,
int &  retCode 
)

parse the string expr.

Parameters
exprthe expression to analyse
envthe symbols in expression
retCodethe retCode of the found node in expression
Returns
the rest of the expression to analyse throw an exception if :
  • unrecognized node
  • a node can not be inserted.

References MATH_ExpressionClassFactory::BLOCK_MISMATCHED, MATH_ExpressionClassFactory::EMPTY, MATH_ExpressionClassFactory::END_ARGUMENT, newClassFactoryInstance(), null, tString, and MATH_ExpressionClassFactory::UNKNOWN_NODE.

Here is the call graph for this function:

tString CORE_Object::pointer2String ( const void *  obj)
staticinherited

return the string represantation of a pointer

References tString.

Referenced by CORE_Object::CORE_Object(), CORE_Object::getIdentityString(), CORE_Object::getPointerAddress(), and CORE_Object::~CORE_Object().

Here is the caller graph for this function:

virtual void CORE_Object::print ( )
inlinevirtualinherited

print the class

References CORE_Object::toString().

Referenced by CORE_Object::outputPrint(), CORE_Out::print(), CORE_Object::print(), CORE_Out::printInt(), CORE_Out::println(), CORE_Out::printReal(), CORE_Out::printString(), and CORE_Out::setAction().

Here is the call graph for this function:

Here is the caller graph for this function:

virtual ostream& CORE_Object::print ( ostream &  out) const
inlinevirtualinherited

print the class

References CORE_Object::print(), and CORE_Object::toString().

Here is the call graph for this function:

void CORE_Object::print ( const tString message)
virtualinherited

print the class

Reimplemented in CORE_Out.

References null, and CORE_Object::print().

Here is the call graph for this function:

void CORE_Object::print ( const tInteger str)
virtualinherited

print

References null.

void CORE_Object::print ( const tRelativeInteger str)
virtualinherited

print

References null.

void CORE_Object::print ( const tReal str)
virtualinherited

print

References null.

void CORE_Object::print ( const int &  str)
virtualinherited

print

References null.

static ostream& CORE_Object::print ( ostream &  out,
const tString message 
)
inlinestaticinherited

print the class

void CORE_Object::printObjectsInMemory ( )
staticinherited

print object in memory

References CORE_Object::getClassName(), CORE_Object::getSharedPointer(), and CORE_Object::mIsMemoryTesting.

Referenced by main().

Here is the call graph for this function:

Here is the caller graph for this function:

void MATH_ParentExpression::resetArgument ( const int &  index)
inherited

reset the argument at index

References null.

Referenced by MATH_ParentExpression::resetArguments().

Here is the caller graph for this function:

void MATH_ParentExpression::resetArguments ( )
inlineinherited

reset all the arguments

References MATH_ParentExpression::resetArgument().

Referenced by parse().

Here is the call graph for this function:

Here is the caller graph for this function:

tBoolean MATH_ParentExpression::setArgument ( const int &  index,
SP::MATH_ChildExpression  org 
)
inherited

set the argument at index

Parameters
indexindex of the argument to set
argvalue of the argument
Returns
true if the setting succeeds

References MATH_ParentExpression::getArgumentsNumber(), and null.

Referenced by MATH_NodeExpression::addArgument(), MATH_ParentExpression::addArgument(), MATH_UnaryOperator::insertInTree(), MATH_BeginBlock::remove(), and MATH_ParentExpression::setArgument().

Here is the call graph for this function:

Here is the caller graph for this function:

tBoolean MATH_ParentExpression::setArgument ( const int &  index,
MATH_ChildExpression arg 
)
inlineinherited

set an argument at index

Parameters
indexindex of the argument to set
argvalue of the argument
Returns
true if the setting succeeds.

References CORE_Object::getSharedPointer(), null, and MATH_ParentExpression::setArgument().

Here is the call graph for this function:

void MATH_ParentExpression::setArgumentsNumber ( const int &  n)
inlineinherited
static void CORE_Object::setOutput ( ostream &  out)
inlinestaticinherited

set output

void CORE_Object::setThis ( SP::CORE_Object  p)
inlineprotectedinherited

set this weak shared pointer called toDoAfterThis setting method

References CORE_Object::toDoAfterThisSetting().

Here is the call graph for this function:

virtual void CORE_Object::setType ( tString  type)
inlineprotectedvirtualinherited
virtual void CORE_Object::toDoAfterThisSetting ( )
inlineprotectedvirtualinherited
tString MATH_RootExpression::toString ( ) const
virtual

return the string representation

Reimplemented from MATH_ParentExpression.

References MATH_ParentExpression::toString(), and tString.

Here is the call graph for this function:

Member Data Documentation

const tFlag MATH_Expression::ALGEBRIC =0
staticinherited
const tFlag MATH_Expression::COMPUTE_BOUNDS =2
staticinherited
const int MATH_Expression::FAIL =-1
staticinherited
const tFlag MATH_Expression::IS_INSIDE =1
staticinherited
tBoolean CORE_Object::mIsMemoryTesting =false
staticinherited

indicator to store all classes created and deleted only for debuging version

Referenced by CORE_Object::CORE_Object(), main(), CORE_Object::printObjectsInMemory(), and CORE_Object::~CORE_Object().

const int MATH_Expression::NULL_OPERAND =-5
staticinherited
const int MATH_Expression::OUT_OF_BOUNDS =-4
staticinherited
const int MATH_Expression::SIZE_MISMATCHED =-3
staticinherited
const int MATH_Expression::SUCCESS =0
staticinherited
const int MATH_Expression::TYPE_MISMATCHED =-2
staticinherited

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