copasi API
0.1
|
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__ */