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_ArrayFunction Class Reference

This class decribes an array function. More...

#include <MATH_ArrayFunction.h>

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

Public Member Functions

virtual SP::MATH_FunctionNode newInstance () const
 create a node expression More...
 
virtual int evaluate (const tFlag &action, MATH_Environment &symbols, MATH_Variable &var) const
 void evaluate the expression More...
 
void addArgument (SP::MATH_RootExpression arg)
 add arguments More...
 
virtual tBoolean isEnvironmentVariableNode () const
 return true if the node is a variable to add to environment More...
 
int getArgumentsNumber () const
 get the arguments number More...
 
SPC::MATH_RootExpression getArgument (const int &index) const
 get argument at index More...
 
SP::MATH_RootExpression getArgument (const int &index)
 get argument at index More...
 
virtual MATH_ChildExpressioninsertInTree (MATH_Expression *tree, MATH_Environment &symbols, tString &expr)
 insert the node This in tree & erase the This corresponding character in expr More...
 
int evaluate (MATH_Environment &symbols, MATH_Variable &value) const
 void evaluate the algebric expression More...
 
tString readArguments (const tString &formula, MATH_Environment &symbols)
 read the arguments from formula & add the found symbols in symbols list More...
 
virtual tString toString () const
 return the string representation of the class More...
 
virtual void copy (const MATH_LeafExpression &l)
 copy the leaf More...
 
void setSymbol (const tString &tag)
 set the symbol More...
 
tString getSymbol () const
 get the symbol More...
 
void setParent (SP::MATH_ParentExpression parent, const int &argIndex)
 set the parent More...
 
void resetParent ()
 reset the parent of the child More...
 
virtual const MATH_RootExpressiongetRootNode () const
 return the root node of the node More...
 
SP::MATH_ParentExpression getParent (int &index)
 get the parent More...
 
SPC::MATH_ParentExpression getParent (int &index) const
 get the parent More...
 
SP::MATH_ParentExpression getParent ()
 get the parent More...
 
SPC::MATH_ParentExpression getParent () const
 get the parent 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_ArrayFunction New ()
 create a node expression More...
 
static SP::MATH_LeafExpression New (const tString &symbol)
 create a leaf 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_ArrayFunction (void)
 create More...
 
virtual ~MATH_ArrayFunction (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 decribes an array function.

Author
Stéphane Despréaux
Version
1.0

Constructor & Destructor Documentation

MATH_ArrayFunction::MATH_ArrayFunction ( void  )
protected

create

References MATH_LeafExpression::setSymbol().

Referenced by New().

Here is the call graph for this function:

Here is the caller graph for this function:

MATH_ArrayFunction::~MATH_ArrayFunction ( void  )
protectedvirtual

destroy

Member Function Documentation

void MATH_FunctionNode::addArgument ( SP::MATH_RootExpression  arg)
inlineinherited

add arguments

Referenced by MATH_FunctionNode::readArguments().

Here is the caller graph for this function:

virtual void MATH_LeafExpression::copy ( const MATH_LeafExpression l)
inlinevirtualinherited

copy the leaf

References MATH_LeafExpression::getSymbol().

Here is the call graph for this function:

int MATH_ArrayFunction::evaluate ( const tFlag action,
MATH_Environment symbols,
MATH_Variable var 
) const
virtual

void evaluate the expression

Parameters
actionaction of the evaluation:
symbolsvalues of symbols
valuesreturn values
sizenumber of returned values
typetype of values
  • REAL
  • BOOLEAN
  • STRING
  • SET
Returns
the code error:
  • TYPE_MISMATCHED
  • SIZE_MISMATCHED
  • SUCCESS
  • FAIL

evaluate an array.

Implements MATH_FunctionNode.

References MATH_Expression::ALGEBRIC, MATH_FunctionNode::getArgument(), MATH_FunctionNode::getArgumentsNumber(), MATH_Variable::getSize(), MATH_Variable::getStartIndex(), MATH_Variable::getType(), MATH_Variable::isNumericalType(), null, MATH_Variable::setFirstIndex(), MATH_Variable::setSize(), MATH_Expression::SUCCESS, tBoolean, tFlag, MATH_Expression::TYPE_MISMATCHED, and MATH_Variable::UNDEFINED.

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:

SPC::MATH_RootExpression MATH_FunctionNode::getArgument ( const int &  index) const
inlineinherited
SP::MATH_RootExpression MATH_FunctionNode::getArgument ( const int &  index)
inlineinherited

get argument at index

int MATH_FunctionNode::getArgumentsNumber ( ) const
inlineinherited
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

SP::MATH_ParentExpression MATH_ChildExpression::getParent ( int &  index)
inlineinherited

get the parent

Parameters
indexindex of the child this in parent.
Returns
the parent
SPC::MATH_ParentExpression MATH_ChildExpression::getParent ( int &  index) const
inlineinherited

get the parent

Parameters
indexindex of the child this in parent.
Returns
the parent
SP::MATH_ParentExpression MATH_ChildExpression::getParent ( )
inlineinherited
SPC::MATH_ParentExpression MATH_ChildExpression::getParent ( ) const
inlineinherited

get the parent

Returns
the parent

References MATH_ChildExpression::getParent().

Here is the call graph for this function:

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:

const MATH_RootExpression * MATH_ChildExpression::getRootNode ( ) const
virtualinherited

return the root node of the node

Returns
the root node

Reimplemented in MATH_NodeExpression.

References MATH_ChildExpression::getParent().

Referenced by MATH_NodeExpression::getRootNode(), and MATH_FunctionNode::readArguments().

Here is the call graph for this function:

Here is the caller graph for this function:

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

tString MATH_LeafExpression::getSymbol ( ) const
inlineinherited

get the symbol

Referenced by MATH_LeafExpression::copy(), MATH_LeafExpression::insertInTree(), MATH_FunctionNode::readArguments(), and MATH_FunctionNode::toString().

Here is the caller graph for this function:

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

get type name

References tString.

MATH_ChildExpression * MATH_FunctionNode::insertInTree ( MATH_Expression tree,
MATH_Environment symbols,
tString expr 
)
virtualinherited

insert the node This in tree & erase the This corresponding character in expr

Parameters
treeNode: the tree node access of the tree to insert the node This
expr: the expression string
Returns
the current node of the tree where This is added or
null if failed

Insert the node in the tree form treeNode if

RootUnary OperatorBinary OperatorBegin BlockEnd Block leaf node
truetrue true true false false

analyse its arguments

Reimplemented from MATH_LeafExpression.

References MATH_LeafExpression::insertInTree(), null, and MATH_FunctionNode::readArguments().

Here is the call graph for this function:

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:

virtual tBoolean MATH_FunctionNode::isEnvironmentVariableNode ( ) const
inlinevirtualinherited

return true if the node is a variable to add to environment

Reimplemented from MATH_LeafExpression.

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_ArrayFunction MATH_ArrayFunction::New ( )
inlinestatic

create a node expression

References MATH_ArrayFunction().

Referenced by MATH_ExpressionClassFactory::initNodesLists(), and newInstance().

Here is the call graph for this function:

Here is the caller graph for this function:

static SP::MATH_LeafExpression MATH_LeafExpression::New ( const tString symbol)
inlinestaticinherited

create a leaf expression

virtual SP::MATH_FunctionNode MATH_ArrayFunction::newInstance ( ) const
inlinevirtual

create a node expression

Implements MATH_FunctionNode.

References New().

Here is the call graph for this function:

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:

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:

tString MATH_FunctionNode::readArguments ( const tString formula,
MATH_Environment symbols 
)
inherited

read the arguments from formula & add the found symbols in symbols list

Parameters
formulaformula of the arguments
symbolslist of symbols of the arguments
Returns
the rest of the string to analyse

References MATH_FunctionNode::addArgument(), MATH_ExpressionClassFactory::BLOCK_MISMATCHED, MATH_ExpressionClassFactory::END_ARGUMENT, MATH_ChildExpression::getRootNode(), MATH_LeafExpression::getSymbol(), MATH_RootExpression::New(), MATH_RootExpression::newClassFactoryInstance(), null, CORE_Integer::toString(), and tString.

Referenced by MATH_FunctionNode::insertInTree().

Here is the call graph for this function:

Here is the caller graph for this function:

void MATH_ChildExpression::resetParent ( )
inherited

reset the parent of the child

References MATH_ChildExpression::getParent(), and null.

Referenced by MATH_ChildExpression::setParent().

Here is the call graph for this function:

Here is the caller graph for this function:

static void CORE_Object::setOutput ( ostream &  out)
inlinestaticinherited

set output

void MATH_ChildExpression::setParent ( SP::MATH_ParentExpression  parent,
const int &  argIndex 
)
inherited

set the parent

Parameters
parentparent of the child
argIndexoperand index of the child in the parent children list

References MATH_ChildExpression::getParent(), and MATH_ChildExpression::resetParent().

Here is the call graph for this function:

void MATH_LeafExpression::setSymbol ( const tString tag)
inlineinherited
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_FunctionNode::toString ( ) const
virtualinherited

return the string representation of the class

Reimplemented from MATH_LeafExpression.

References MATH_FunctionNode::getArgument(), MATH_FunctionNode::getArgumentsNumber(), MATH_LeafExpression::getSymbol(), null, 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: