void putkey(int nf, char **flds, int nref, const char *_keystr) { char t1[50], *sf; int ctype, i, count; fprintf(fo, ".\\\""); if (nf <= 0) fprintf(fo, "%s%c%c", labtab[nref], labc[nref], sep); else { while ((ctype = *_keystr++)) { count = atoi(_keystr); if (*_keystr=='+') count=999; if (count <= 0) count = 1; for(i = 1; i <= count; i++) { sf = fpar(nf, flds, t1, sizeof(t1), ctype, i, 1); if (sf == 0) break; sf = artskp(sf); fprintf(fo, "%s%c", sf, '-'); } } fprintf(fo, "%c%d%c%c", FLAG, nref, FLAG, sep); } }
Floats ReplicaExchange::get_friend_parameter(std::string key, int findex) { int frank=get_rank(findex); int nparam=parameters_[key].size(); double* myparameters=new double[nparam]; std::copy(parameters_[key].begin(), parameters_[key].end(), myparameters); double* fparameters=new double[nparam]; MPI_Sendrecv(myparameters,nparam,MPI_DOUBLE,frank,myrank_, fparameters,nparam,MPI_DOUBLE,frank,frank, MPI_COMM_WORLD,&status_); Floats fpar(fparameters,fparameters+nparam); delete [] myparameters; delete [] fparameters; return fpar; }
inline std::map<std::string, std::string> readIni(char const* fn) { std::map<std::string, std::string> par; //Parameters from wmext.dat std::ifstream fpar(fn, std::ios_base::in | std::ios_base::binary); while (fpar) { std::string key; std::getline(fpar, key, '='); if (key.length() > 0 && key[0] == '\r') { key.erase(0, 1); } std::string val; std::getline(fpar, val, '\n'); if (val.length() > 0 && val[val.length() - 1] == '\r') { val.erase(val.length() - 1, 1); } if (key != "" && key[0] != '#') { par.insert(std::make_pair(key, val)); } } return par; } //getParFromFile()
void putsig (int nf, char **flds, int nref, char *nstline, char *endline, int toindex) /* choose signal style */ { char t[100], t1[MXSIG], t2[100], format[10], *sd, *stline; int addon = 0, another = 0; static FILE *fhide = 0; if (labels) { if (nf == 0) /* old */ snprintf(t, sizeof(t), "%s%c", labtab[nref], labc[nref]); else { *t = 0; if (keywant) fpar(nf, flds, t, sizeof(t), keywant, 1, 0); if (science && t[0] == 0) { if (fpar(nf, flds, t, sizeof(t), 'A', 1, 0) != 0) { if (fpar(nf, flds, t2, sizeof(t2), 'D', 1, 0) != 0) { n_strcat(t, ", ", sizeof(t)); n_strcat(t, t2, sizeof(t)); } } } else if (t[0] == 0) { if (nmlen > 0) { snprintf(format, sizeof(format), "%%.%ds%%s", nmlen); } else { snprintf(format, sizeof(format), "%%s%%s"); } /* format is %s%s for default labels */ /* or %.3s%s eg if wanted */ if (fpar(nf, flds, t2, sizeof(t2), 'D', 1, 0)) { sd = t2; if (dtlen > 0) { int n = strlen(sd) - dtlen; if (n > 0) sd += n; } } else { sd = ""; } t1[0] = 0; fpar(nf, flds, t1, sizeof(t1), 'A', 1, 0); snprintf(t, sizeof(t), format, t1, sd); } if (keywant) { addon = 0; for (sd = t; *sd; sd++) ; if (*--sd == '-') { addon = 1; *sd = 0; } } if ((!keywant || addon) && !science) { addch(t, keylet(t, nref)); } else { tokeytab (t,nref); } } } else { if (sort) snprintf(t, sizeof(t), "%c%d%c", FLAG, nref, FLAG); else snprintf(t, sizeof(t), "%d", nref); } another = (sd = lookat()) ? prefix(sd, ".[") : 0; if (another && (strcmp(".[\n", sd) != SAME)) fprintf(stderr, "File %s line %d: punctuation ignored from: %s", Ifile, Iline, sd); if ((strlen(sig) + strlen(t)) > MXSIG) err("sig overflow (%d)", MXSIG); n_strcat(sig, t, sizeof(sig)); #if EBUG fprintf(stderr, "sig is now %s leng %d\n",sig,strlen(sig)); #endif trimnl(nstline); trimnl(endline); stline = stbuff; if (prevsig == 0) { n_strcpy (stline, nstline, sizeof(stbuff)); prevsig=1; } if (stline[2] || endline[2]) { stline += 2; endline += 2; } else { stline = "\\*([."; endline = "\\*(.]"; } if (science) { stline = " ("; endline = ")"; } if (bare == 0) { if (!another) { snprintf(t1, sizeof(t1), "%s%s%s\n", stline, sig, endline); if (strlen(t1) > MXSIG) err("t1 overflow (%d)", MXSIG); append(t1); flout(); sig[0] = 0; prevsig = 0; if (fo == fhide) { int ch; fclose(fhide); fhide = fopen(hidenam, "r"); fo = ftemp; while ((ch = getc(fhide)) != EOF) putc(ch, fo); fclose(fhide); unlink(hidenam); } } else { if (labels) { n_strcat(sig, ",\\|", sizeof(sig)); } else { /* * Seperate reference numbers with AFLAG * for later sorting and condensing. */ t1[0] = AFLAG; t1[1] = '\0'; n_strcat(sig, t1, sizeof(sig)); } if (fo == ftemp) { /* hide if need be */ snprintf(hidenam, NTFILE, "/tmp/rj%dc", (int)getpid()); #if EBUG fprintf(stderr, "hiding in %s\n", hidenam); #endif fhide = fopen(hidenam, "w"); if (fhide == NULL) err("Can't get scratch file %s", hidenam); fo = fhide; } } } if (bare < 2) if (nf > 0 && toindex) fprintf(fo,".ds [F %s%c",t,sep); if (bare > 0) flout(); #if EBUG fprintf(stderr, "sig is now %s\n",sig); #endif }