copasi API  0.1
copasi/compareExpressions/compare_utilities.h
Go to the documentation of this file.
00001 // Begin CVS Header
00002 //   $Source: /fs/turing/cvs/copasi_dev/copasi/compareExpressions/compare_utilities.h,v $
00003 //   $Revision: 1.6 $
00004 //   $Name: Build-33 $
00005 //   $Author: gauges $
00006 //   $Date: 2010/04/19 12:53:49 $
00007 // End CVS Header
00008 
00009 // Copyright (C) 2010 by Pedro Mendes, Virginia Tech Intellectual
00010 // Properties, Inc., University of Heidelberg, and The University
00011 // of Manchester.
00012 // All rights reserved.
00013 
00014 // Copyright (C) 2008 by Pedro Mendes, Virginia Tech Intellectual
00015 // Properties, Inc., EML Research, gGmbH, University of Heidelberg,
00016 // and The University of Manchester.
00017 // All rights reserved.
00018 
00019 // Copyright (C) 2001 - 2007 by Pedro Mendes, Virginia Tech Intellectual
00020 // Properties, Inc. and EML Research, gGmbH.
00021 // All rights reserved.
00022 
00023 #ifndef COMPARE_UTILITIES_H__
00024 #define COMPARE_UTILITIES_H__
00025 
00026 #include <string>
00027 #include <map>
00028 
00029 class ASTNode;
00030 class CNormalFraction;
00031 class ListOfFunctionDefinitions;
00032 class CNormalBase;
00033 class ConverterASTNode;
00034 class CEvaluationNode;
00035 class CEvaluationNodeCall;
00036 class CFunctionDB;
00037 
00038 ASTNode* create_expression(const ASTNode* pSource, const ListOfFunctionDefinitions* pFunctions);
00039 
00040 CNormalFraction* create_simplified_normalform(const ASTNode* pSource);
00041 
00042 CNormalFraction* create_normalform(const ASTNode* pSource);
00043 
00044 bool are_equal(const CNormalFraction* pLHS, const CNormalFraction* pRHS);
00045 
00046 void normalize_variable_names(CNormalBase* pBase, std::map<std::string, std::string>& variableMap);
00047 
00048 ASTNode* replace_variable_names(const ASTNode* pNode, const std::map<std::string, const ASTNode*>& argumentMap);
00049 
00050 ASTNode* expand_function_call(const ASTNode* pCall, const ListOfFunctionDefinitions* pFunctions);
00051 
00052 ASTNode* expand_function_calls(const ASTNode* pNode, const ListOfFunctionDefinitions* pFunctions);
00053 
00054 CEvaluationNode* expand_function_calls(const CEvaluationNode* pNode, CFunctionDB* pFunctionDB);
00055 
00056 CEvaluationNode* expand_function_call(const CEvaluationNodeCall* pNode, CFunctionDB* pFunctionDB);
00057 
00058 CEvaluationNode* replace_variable_names(const CEvaluationNode* pNode, const std::map<std::string, const CEvaluationNode*>& argumentMap);
00059 
00063 ASTNode* replace_SEC(const ASTNode* pChild);
00064 
00068 ASTNode* replace_CSC(const ASTNode* pChild);
00069 
00073 ASTNode* replace_COT(const ASTNode* pChild);
00074 
00078 ASTNode* replace_SINH(const ASTNode* pChild);
00079 
00083 ASTNode* replace_COSH(const ASTNode* pChild);
00084 
00088 ASTNode* replace_TANH(const ASTNode* pChild);
00089 
00093 ASTNode* replace_SECH(const ASTNode* pChild);
00094 
00098 ASTNode* replace_CSCH(const ASTNode* pChild);
00099 
00103 ASTNode* replace_COTH(const ASTNode* pChild);
00104 
00108 ASTNode* replace_ARCSINH(const ASTNode* pChild);
00109 
00113 ASTNode* replace_ARCCOSH(const ASTNode* pChild);
00114 
00118 ASTNode* replace_ARCTANH(const ASTNode* pChild);
00119 
00123 ASTNode* replace_ARCSECH(const ASTNode* pChild);
00124 
00128 ASTNode* replace_ARCCSCH(const ASTNode* pChild);
00129 
00148 #endif /* COMPARE_UTILITIES_H__ */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines