#include #include #include #include #include #include using namespace std; ofstream *out; void print(string str) { (*out)<* ret) { size_t last = 0; string s=sr; size_t index = s.find(delim, last); while (index != std::string::npos) { //cout<<"begin:"<push_back(s.substr(last, index - last)); last = index + delim.length() ; s=s.substr(last,s.size()-last); last=0; index = s.find(delim, last); } if (index - last>0) { ret->push_back(s); //ret->push_back(s.substr(last, index - last)); } } string trim(string& s){ const string drop=" "; s.erase(s.find_last_not_of(drop)+1); s[s.find_last_not_of(drop)+1]='\0'; return s.erase(0,s.find_first_not_of(drop)); } int main() { int N; cout<<"Please input the number of cars:"<>N; out=new ofstream("motorcar_"+to_string(N)+".xml"); string head="\n"; string foot=""; print(head); print("\t"); for(unsigned i=0;i"); } for(unsigned i=0;i<3*(N-1);i++) { print("\t\t"); } //loc 1 { print("\t\t"); string invariant=""; string flow=""; for(unsigned i=0;i"+invariant+""); print("\t\t\t"+flow+""); print("\t\t"); } //loc 2-N for(unsigned i=1;i"); string invariant=""; string flow=""; for(unsigned j=0;j"+invariant+""); print("\t\t\t"+flow+""); print("\t\t"); } { print("\t\t"); string flow=""; for(unsigned i=0;i"+flow+""); print("\t\t"); } int count=1; for(unsigned i=1;i"); print("\t\t\t"); print("\t\t\t"+name1+"-"+name2+"<=4"); print("\t\t"); print("\t\t"); print("\t\t\t"); print("\t\t\t"+name1+"-"+name2+">=4"); print("\t\t"); print("\t\t"); print("\t\t\t"); print("\t\t\t"+name1+"-"+name2+"<=1"); print("\t\t"); } print("\t"); print("\t"); for(unsigned i=0;i"); } for(unsigned i=0;i<3*(N-1);i++) { print("\t\t"); } print("\t\t"); for(unsigned i=0;i"+name+""); } for(unsigned i=0;i<3*(N-1);i++) { print("\t\t\te"+to_string(i+1)+""); } print("\t\t"); print("\t"); print(foot); out->close(); /* out=new ofstream("/home/xefox/BACH/examples/motorcar_"+to_string(N)+".cfg"); print("# analysis options"); print("system = \"system\""); string init=""; int v=20; for(int i=N-1;i>=0;i--) { string name="x_"+to_string(i+1); string tmp=name+"=="+to_string(v); v+=5; if(init=="") init=tmp; else init=tmp+" & "+init; } print("initially = \""+init+" & loc()==v1\""); print("forbidden=\"loc()==v"+to_string(N+1)+"\""); print("scenario = \"phaver\""); print("directions = \"uni32\""); print("sampling-time = 0.1"); print("time-horizon = 40000"); print("iter-max = 10"); print("rel-err = 1.0e-12"); print("abs-err = 1.0e-13"); out->close(); */ return 0; }