00001 #ifndef OPERATORENGINE_H 00002 #define OPERATORENGINE_H 00003 00004 #include "SundanceDefs.h" 00005 00006 #include "XMLInterface.h" 00007 #include "StaticLinearProblem.h" 00008 #include "ExprHashtable.h" 00009 00010 00011 namespace Sundance 00012 { 00013 00014 using namespace TSF; 00015 using std::string; 00016 00017 using std::ostream; 00018 00019 00020 class OperatorEngine 00021 { 00022 public: 00023 OperatorEngine(); 00024 00025 static int main(int argc, void** argv); 00026 00027 void run(); 00028 00029 void setupLinearSystem(const XMLObject& in, XMLObject& out); 00030 00031 void getInitialGuess(const XMLObject& in, XMLObject& out); 00032 00033 void solveLinearSystem(const XMLObject& in, XMLObject& out); 00034 00035 void norm(const XMLObject& in, XMLObject& out); 00036 00037 void daxpy(const XMLObject& in, XMLObject& out); 00038 00039 void assignVector(const XMLObject& in, XMLObject& out); 00040 00041 void writeVector(const XMLObject& in, XMLObject& out); 00042 00043 void killVector(const XMLObject& in, XMLObject& out); 00044 00045 void terminate(const XMLObject& in, XMLObject& out); 00046 00047 XMLObject recvObject(); 00048 00049 void sendObject(const XMLObject& xml); 00050 00051 00052 protected: 00053 ExprHashtable table_; 00054 XMLInterface interface_; 00055 StaticLinearProblem prob_; 00056 int idCounter_; 00057 }; 00058 00059 } 00060 #endif