EXPORT void print_machine_parameters( FILE *file) { struct utsname Uts; (void) foutput(file); (void) fprintf(file,"#MACHINE PARAMETERS\n"); (void) uname(&Uts); (void) fprintf(file,"#\tHostname = %s\n",Uts.nodename); (void) fprintf(file,"#\tOperating System = %s\n",Uts.sysname); (void) fprintf(file,"#\tOS Release = %s\n",Uts.release); (void) fprintf(file,"#\tOS Version = %s\n",Uts.version); (void) fprintf(file,"#\tCPU Type = %s\n",Uts.machine); (void) fprintf(file,"#\tByte Ordering = "); switch (ft_endian_type()) { case FT_BIG_ENDIAN: (void) fprintf(file,"Big Endian\n"); break; case FT_LITTLE_ENDIAN: (void) fprintf(file,"Little Endian\n"); break; case FT_UNKNOWN_ENDIAN: default: (void) printf("Undetermined Endian\n"); break; } (void) fprintf(file,"#\tFloating Point Word Size = %lu\n", sizeof(double)); (void) fprintf(file,"\n"); } /*end print_machine_parameters*/
void moduleToPTX(terra_State * T, llvm::Module * M, int major, int minor, std::string * buf) { #if LLVM_VERSION < 38 for(llvm::Module::iterator it = M->begin(), end = M->end(); it != end; ++it) { it->setAttributes(llvm::AttributeSet()); //remove annotations because syntax doesn't match RemoveAttr A; A.visit(&*it); //remove annotations on CallInsts as well. } #endif int nmajor,nminor; CUDA_DO(T->cuda->nvvmVersion(&nmajor,&nminor)); int nversion = nmajor*10 + nminor; if(nversion >= 12) M->setTargetTriple("nvptx64-unknown-cuda"); else M->setTargetTriple(""); //clear these because nvvm doesn't like them M->setDataLayout(""); //nvvm doesn't like data layout either std::stringstream device; device << "-arch=compute_" << major << minor; std::string deviceopt = device.str(); std::string llvmir; { llvm::raw_string_ostream output(llvmir); #if LLVM_VERSION >= 38 M->setDataLayout(cudadatalayout); llvm::WriteBitcodeToFile(M, output); #else llvm::formatted_raw_ostream foutput(output); foutput << "target datalayout = \"" << cudadatalayout << "\";\n"; foutput << *M; #endif } nvvmProgram prog; CUDA_DO(T->cuda->nvvmCreateProgram(&prog)); CUDA_DO(T->cuda->nvvmAddModuleToProgram(prog, llvmir.data(), llvmir.size(), M->getModuleIdentifier().c_str())); int numOptions = 1; const char * options[] = { deviceopt.c_str() }; size_t size; int err = T->cuda->nvvmCompileProgram(prog, numOptions, options); if (err != CUDA_SUCCESS) { CUDA_DO(T->cuda->nvvmGetProgramLogSize(prog,&size)); buf->resize(size); CUDA_DO(T->cuda->nvvmGetProgramLog(prog, &(*buf)[0])); terra_reporterror(T,"%s:%d: nvvm error reported (%d)\n %s\n",__FILE__,__LINE__,err,buf->c_str()); } CUDA_DO(T->cuda->nvvmGetCompiledResultSize(prog, &size)); buf->resize(size); CUDA_DO(T->cuda->nvvmGetCompiledResult(prog, &(*buf)[0])); }
LOCAL void print_ses_tri_solution_data( FILE *file, Front *fr, Wave *wv, const char *tri_header, const char *table_name, size_t num_plots, float (**plot_fns)(float*,Front*,POINTER,COMPONENT,Locstate), SESAME_EOS *seos) { RECT_GRID *rgr; float area; static const char *FORMAT = "\n stop_time = %-10g stop_step = %-10d\n"; if (file != stdout) { record_print_version(file); print_title_for_sesame(file,seos); } rgr = fr->rect_grid; (void) foutput(file); (void) fprintf(file,"\t\t\tINITIAL DATA:\n\n\n"); fprint_rectangular_grid(file,rgr); (void) fprintf(file,FORMAT,0.0,0); area = (rgr->U[0] - rgr->L[0])*(rgr->U[1] - rgr->L[1]); (void) fprintf(file,"\n\t\tComputational Area = %g\n",area); (void) fprintf(file,"\n\t\tRemap Geometry: IDENTITY_REMAP\n"); (void) fprintf(file,"\n\t\tPrinting Interval: 1 mesh units\n\n\n\n\n"); (void) fprintf(file,"\n\n\n\n"); (void) foutput(file); (void) fprintf(file,"%s INTERFACE\n",table_name); (void) fprintf(file,"\n\n\n\n"); (void) foutput(file); (void) fprintf(file,"\t\t\tFRONT DATA:\n"); (void) fprintf(file," \n\t\t\tFront Rectangular Grid:\n\n"); fprint_rectangular_grid(file,rgr); (void) fprintf(file,"\n\t\t\tInterface Topological Grid:\n\n"); fprint_rectangular_grid(file,&topological_grid(fr->interf)); fprint_interface(file,fr->interf); (void) fprintf(file,"\n\n\n\n"); (void) foutput(file); (void) fprintf(file,"\t\t\tEND OF FRONT DATA:\n"); (void) foutput(file); (void) fprintf(file,"\t\t\tSTATE DATA:\n"); (void) foutput(file); (void) fprintf(file,"%s",tri_header); (void) fprintf(file,"\n"); (void) fprintf(file,"#Point Source Data\n#0\n"); print_tri_soln(file,fr,wv,wave_tri_soln(wv),num_plots,plot_fns); (void) fprintf(file,"END OF TRI_SOLN\n"); (void) fprintf(file,"\n\n\n\n"); (void) foutput(file); (void) fprintf(file,"\t\t\tEND OF STATE DATA\n"); } /*end print_ses_tri_solution_data*/
void SimpleProfilerWriteToFile( const std::string& filename, bool to_std_cout ) { std::fstream foutput( filename.c_str(), std::ios::out ); SimpleProfilerGlobal* global = ceng::GetSingletonPtr< SimpleProfilerGlobal >(); for( std::map< std::string, SimpleProfilerGlobal::TProfilerData* >::const_iterator i = global->mDataMap.begin(); i != global->mDataMap.end(); ++i ) { std::string name = i->first; const SimpleProfilerGlobal::TProfilerData* data = i->second; foutput << name << ": average " << data->GetAverage() << ", max " << data->GetMax() << ", total " << data->GetTotal() << std::endl; if( to_std_cout ) std::cout << name << ": average " << data->GetAverage() << ", max " << data->GetMax() << ", total " << data->GetTotal() << std::endl; } foutput.close(); }
int main() { std::string stringFilePath = ""; //FileInput Path std::vector<std::string> vectorStringNumbers; //Literals int numberOfLiterals = 0; //Assigned from the size of vectorNumbers std::string numberOfXLiterals = ""; //Number of X unique literals std::string numberOfClauses = ""; //Will be read from text file std::multimap<std::string, std::vector<std::string>> multiMapLiteralClause; //Multi map for data structure std::multimap<std::string, bool> mapClauseValues; //TRUE/FALSE SAT clauses map std::map<std::string, bool> mapLiteralValues; //TRUE/FALSE literals map std::vector<std::string> initialClusterCollection; //Cluster collection that contains initial clusters (made randomly) std::vector<std::string> clusterCollection; //Cluster collection that contains clusters int levelCounter = 0; //Level counter std::map<std::string, std::string> mapLevelClusters;//Map that contains level and the clusters within that level int bestSoFar = 0; double timeElapsedMultilevelClustering = 0; double timeElapsedTabuSearch = 0; double totalTimeElapsed = 0; std::string outputFile = ""; std::string problemName = ""; /**The objects that we need**/ TimeElapsed te; OpenFileWindow ofw; FileInput fileInput; MultilevelClustering mc; TabuSearch ts; /**OpenFileDialog**/ TCHAR * filePath = ofw.open(); char charFilePath[260] = {0}; if(filePath != NULL) { for(int i = 0; i < wcslen((wchar_t*)filePath); i++) charFilePath[i] = filePath[i]; for(int j = 0; j < sizeof(charFilePath)/sizeof(char); j++) stringFilePath += charFilePath[j]; std::string fileFormat = ""; int counter = 0; for(int i = stringFilePath.length() - 1; i > 0; i--) { if(counter == 3) break; if(stringFilePath[i] != 0) { fileFormat += stringFilePath[i]; counter++; } } if(fileFormat == "txt") { /**Read text file (Input)**/ std::string collectionString = fileInput.readFile(stringFilePath); std::string noLettersCollectionString = fileInput.removeLetters(collectionString, numberOfXLiterals, numberOfClauses); /**Output file**/ for(int i = stringFilePath.length() - 1; i > 0; i--) { if(stringFilePath[i] == '\\') break; if(stringFilePath[i] != 0) outputFile += stringFilePath[i]; } std::reverse(outputFile.begin(), outputFile.end()); while(outputFile[outputFile.length() - 1] != '.') outputFile.erase(outputFile.end() - 1); if(outputFile[outputFile.length() - 1] == '.') outputFile.erase(outputFile.end() - 1); problemName = outputFile; outputFile += "_output.txt"; std::ofstream foutput(outputFile); foutput << "Problem: " << problemName << "\n"; /**Initialize literals**/ std::vector<int> vectorNumbers = mc.initializeNumbers(noLettersCollectionString, numberOfLiterals); /**Initialize data structure**/ mc.initializeDataStructure(vectorStringNumbers, vectorNumbers, multiMapLiteralClause); /**Start timer**/ clock_t begin = clock(); /**Start clustering (Multilevel)**/ mc.cluster(foutput, bestSoFar, numberOfXLiterals, levelCounter, mapLevelClusters, vectorStringNumbers, numberOfLiterals, numberOfClauses, initialClusterCollection, clusterCollection, mapLiteralValues, mapClauseValues, begin); /**Stop timer**/ clock_t end = clock(); timeElapsedMultilevelClustering = te.GetTimeElapsed(end, begin)/1000; /**Start timer**/ begin = clock(); /**Run Tabu Search, print out results**/ ts.run(foutput, bestSoFar, noLettersCollectionString, numberOfLiterals, levelCounter, mapLevelClusters, vectorStringNumbers, initialClusterCollection, clusterCollection, mapLiteralValues, mapClauseValues, numberOfXLiterals, numberOfClauses, multiMapLiteralClause, begin); /**Stop timer**/ end = clock(); timeElapsedTabuSearch = te.GetTimeElapsed(end, begin)/1000; std::cout << "Time elapsed Multilevel: " << timeElapsedMultilevelClustering << " seconds" << std::endl; std::cout << "Time elapsed Tabu Search: " << timeElapsedTabuSearch << " seconds" << std::endl; std::cout << "Total time elapsed: " << timeElapsedMultilevelClustering + timeElapsedTabuSearch << " seconds" << std::endl << std::endl; foutput << "\nTotal time elapsed: " << timeElapsedMultilevelClustering + timeElapsedTabuSearch << " seconds"; foutput.close(); //Finished! Beep(800, 2000); system("pause"); } else { std::cout << "Incorrect file format. Input must be a text file. Exiting....." << std::endl << std::endl; system("pause"); } } else { std::cout << "No file input. Exiting....." << std::endl << std::endl; system("pause"); } return 0; }
void UserProcessingCenter::handleWebChgPwd(CMazeMsg* context) { string input(context->getMsg()); MBlockSocket *pclient = context->getSocket(); UserDatabase *userdb = UserDatabase::getInstance(); cout <<" : WebChgPwd : "<<endl; string old_pwd = MXMLHandler::GetNode(input,"OldPwd"); string new_pwd = MXMLHandler::GetNode(input,"NewPwd"); USERDB* one = new USERDB; memset(one, 0, sizeof(USERDB)); string error_msg=""; ofstream foutput("/home/maze/usr_epoll/run/chpwd_test.log",ios::app); bool success = true; string output = MXMLHandler::CreateNode ("Err",""); if(MXMLHandler::isExistNode(input,"UID")) { unsigned long uid = CConvert::StringToInt (MXMLHandler::GetNode(input,"UID")); if(userdb->get_record( uid, one)!=0) { error_msg+="uid not exist"; foutput<<error_msg<<endl; output = MXMLHandler::CreateNode("Err","NotExist"); success = false; } } else if(MXMLHandler::isExistNode(input,"EmailAddr")) { string newmail=MXMLHandler::GetNode(input,"EmailAddr"); if(userdb->get_record( newmail, one)!=0) { error_msg+="email addr not exist"; foutput<<error_msg<<endl; output = MXMLHandler::CreateNode("Err","NotExist"); success = false; } } else { error_msg+="other error"; foutput<<error_msg<<endl; return; } if(success) { if(old_pwd==string(one->Pwd) || strcmp("maze.#@!",old_pwd.c_str())==0) { strcpy(one->Pwd,MXMLHandler::GetNode(input,"NewPwd").substr(0,63).c_str()); if(userdb->put_record( one->UID, one) == 0) output=MXMLHandler::CreateNode ("Success",""); else{ error_msg+="can not put_record"; foutput<<error_msg<<endl; output=MXMLHandler::CreateNode ("Err","SaveErr"); } } else{ error_msg+="not match"; foutput<<error_msg<<endl; output=MXMLHandler::CreateNode ("Err","PasswordNotMatch"); } } pclient->SendPacket(output.c_str(), output.length()+1); //cout<<"WebChgPwd -> "<<one->UID<<endl; delete one; foutput.close(); }
void UserProcessingCenter::handleWebRegister(CMazeMsg* context) { cout<<" : WebRegister : " << endl; ofstream foutput("/home/maze/usr_epoll/run/webreg_test.log",ios::app); string input(context->getMsg()); MBlockSocket *pclient = context->getSocket(); UserDatabase *userdb = UserDatabase::getInstance(); string output = MXMLHandler::CreateNode ("Err",""); unsigned long uid; bool success = true; USERDB* one = new USERDB; memset(one, 0, sizeof(USERDB)); one->Account = START_ACCOUNT; one->Level = LOW_LEVEL; strcpy(one->MailAddr,MXMLHandler::GetNode(input,"EmailAddr").substr(0,127).c_str()); strcpy(one->NickName, MXMLHandler::GetNode(input,"Name").substr(0,63).c_str()); strcpy(one->Pwd, MXMLHandler::GetNode(input,"Pwd").substr(0,63).c_str()); string desc = MXMLHandler::CreateNode("MachineID",MXMLHandler::GetNode(input,"MachineID")); desc += MXMLHandler::CreateNode("Q",MXMLHandler::GetNode(input,"Q")); desc += MXMLHandler::CreateNode("A",MXMLHandler::GetNode(input,"A")); desc += MXMLHandler::CreateNode("Intro",MXMLHandler::GetNode(input,"Intro")); strcpy(one->Describe, desc.substr(0,255).c_str()); one->LastLoginIP = CConvert::StringToInt(MXMLHandler::GetNode(input,"IP")); one->LastLogin = time(NULL); string gender = MXMLHandler::GetNode(input,"Gender"); //string career = MXMLHandler::GetNode(input,"Identity"); int identity = 0; if(gender == "1") identity |= 2; else if(gender == "0") identity |= 4; //if(career == "1") // identity |= 8; //else if(career == "0") // identity |= 16; foutput<<"everything is ok."<<endl; //gooduid if(MXMLHandler::isExistNode(input,"Uid")) { foutput<<"exist uid"<<endl; uid = CConvert::StringToInt (MXMLHandler::GetNode(input,"Uid")); USERDB* temp = new USERDB; memset(temp, 0, sizeof(USERDB)); int ret = userdb->get_record(uid, temp); if(ret==0) { foutput<<"then get success."<<endl; time_t nowTime; time(&nowTime); int offsetTime = 365*24*3600;//两年 unsigned long judgePoint = nowTime - offsetTime; //不是过期的号码 if(temp->LastLogin>judgePoint) { foutput<<"not offtime"<<endl; g_csUser.Lock(); uid = g_UserCount; g_UserCount++; g_csUser.Unlock(); } } else if(ret==DB_NOTFOUND) { foutput<<"db not found"<<endl; //do nothing } else { foutput<<"db error"<<endl; output = MXMLHandler::CreateNode ("Err","Save"); pclient->SendPacket (output.c_str(), output.length()+1); delete one; return; } delete temp; } else { foutput<<"not exist uid"<<endl; g_csUser.Lock(); uid = g_UserCount; g_UserCount++; g_csUser.Unlock(); } foutput<<"uid: "<<uid<<endl; one->UID = uid; one->Identity = identity; if(userdb->isExist(uid)){ foutput<<"already exist uid,can not reg"<<endl; output = MXMLHandler::CreateNode ("Err","Save"); } else{ if(userdb->put_record( uid, one) == 0) { foutput<<"put_record success"<<endl; output = MXMLHandler::CreateNode("Success", ""); string uidstr = CConvert::IntToString(uid); output += MXMLHandler::CreateNode("UID", uidstr); } else { foutput<<"put record error"<<endl; output = MXMLHandler::CreateNode ("Err","Save"); } } pclient->SendPacket (output.c_str(), output.length()+1); //cout<<" : WebRegister : "<<one->UID<<endl; delete one; userdb->setCount(g_UserCount); char buf[256]; time_t timep; struct tm *p; time(&timep); p=localtime(&timep); sprintf(buf,"%d%0.2d%0.2d_register.txt",(1900+p->tm_year),(1+p->tm_mon),p->tm_mday); Configuration config = Configuration::getInstance(); string logDir = config.get("log"); string logName = logDir + buf; ofstream registerLogOutput(logName.c_str(),ofstream::app); registerLogOutput<<uid<<" "<<timep<<endl; foutput<<"web reg handle done"<<endl; foutput.close(); }
void UserProcessingCenter::handleRefreshPersonalInfo(CMazeMsg* context) { string input(context->getMsg()); MBlockSocket *pclient = context->getSocket(); UserDatabase *userdb = UserDatabase::getInstance(); ofstream foutput("/home/maze/usr_epoll/run/refreshPI_test.log",ios::app); cout<<" refresh personal information"<<endl; USERDB* one = new USERDB; memset(one, 0, sizeof(USERDB)); string output = MXMLHandler::CreateNode("Cmd","ReplyPersonalInfo"); bool success = true; unsigned long uid; if(MXMLHandler::isExistNode(input,"UID")) { uid = CConvert::StringToInt (MXMLHandler::GetNode(input,"UID")); if(userdb->get_record(uid, one)!=0) { foutput<<"uid not exist"<<endl; output += MXMLHandler::CreateNode("Err","NotExist"); success = false; } } else if(MXMLHandler::isExistNode(input,"EmailAddr")) { string newmail=MXMLHandler::GetNode(input,"EmailAddr"); if(userdb->get_record( newmail, one)!=0) { foutput<<"Email not exist"<<endl; output += MXMLHandler::CreateNode("Err","NotExist"); success = false; } else uid = one->UID; } else { foutput<<"both not exist"<<endl; return; } output += MXMLHandler::CreateNode("UID",CConvert::IntToString(uid)); if(success == false) { foutput<<"not success"<<endl; pclient->SendPacket(output.c_str(),output.length() + 1); delete one; } else { foutput<<"find! now create output..."<<endl; int imageid = one->Identity | 0x00008000; if(find(admin.begin(),admin.end(),uid) != admin.end()) imageid += 32; output += MXMLHandler::CreateNode("NickName",one->NickName); output += MXMLHandler::CreateNode("Credits",CConvert::IntToString(one->Account).c_str()); output += MXMLHandler::CreateNode("Level",CConvert::IntToString(one->Level).c_str()); output += MXMLHandler::CreateNode("FaceImage",CConvert::IntToString(imageid).c_str()); foutput<<"to send..."<<endl; pclient->SendPacket(output.c_str(),output.length() + 1); foutput<<"sended,ok!"<<endl; delete one; } foutput.close(); }
int main(){ Convexhull h; vector<Point> point; vector<Point> result; vector<Point> internal; while(1){ int i,option,n; cout << "Please choose method: (1)brute force (2)Jarvis's march (3)exit" <<endl; cin >> option; ifstream finput("Input.txt"); internal.clear(); point.clear(); result.clear(); finput >> n; // Ū¤F´XÓ¦r¤¸ for(i=0; i<n; i++){ double x,y; finput >> x >> y; Point a = Point(x,y); point.push_back(a); } struct timeval tv, tv2; unsigned long long int start_utime, end_utime; if(option == 1){ gettimeofday(&tv, NULL); h.FindConvexHull_bf(point, result); gettimeofday(&tv2, NULL); start_utime = tv.tv_sec*1000000 + tv.tv_usec; end_utime = tv2.tv_sec*1000000 + tv2.tv_usec; } else if(option == 2){ gettimeofday(&tv, NULL); h.FindConvexHull_jm(point, result); gettimeofday(&tv2, NULL); start_utime = tv.tv_sec*1000000 + tv.tv_usec; end_utime = tv2.tv_sec*1000000 + tv2.tv_usec; } else break; cout << "cost time: " << end_utime - start_utime << " us" <<endl; internal = h.FindInternalPoint(point,result); ofstream foutput("Output.txt"); foutput << internal.size() << endl; vector<Point> upper; vector<Point> lower; upper.clear(); lower.clear(); for(i=0; i<internal.size(); i++){ if(internal[i].y >= 0) upper.push_back(internal[i]); else lower.push_back(internal[i]); } sort(upper.begin(), upper.end(), up_compare); sort(lower.begin(), lower.end(), low_compare); for(i=0; i<upper.size(); i++) foutput << upper[i].x << " " << upper[i].y << endl; for(i=0; i<lower.size(); i++) foutput << lower[i].x << " " << lower[i].y << endl; foutput << endl; foutput << result.size() << endl; Point start_p = FindStartPoint(result); upper.clear(); lower.clear(); for(i=0; i<result.size(); i++){ if(result[i] == start_p) continue; if(result[i].y > start_p.y) upper.push_back(result[i]); else lower.push_back(result[i]); } sort(upper.begin(), upper.end(), up_compare); sort(lower.begin(), lower.end(), low_compare); foutput << start_p.x << " " << start_p.y << endl; for(i=0; i<upper.size(); i++) foutput << upper[i].x << " " << upper[i].y << endl; for(i=0; i<lower.size(); i++) foutput << lower[i].x << " " << lower[i].y << endl; } return 0; }