}
}else{
- sort(quantilesMembers[i].begin(), quantilesMembers[i].end(), compareQuanMembers);
+ sort(quantilesMembers[i].begin(), quantilesMembers[i].end());
//save 10%
- temp.push_back(quantilesMembers[i][int(quantilesMembers[i].size() * 0.10)].score);
+ temp.push_back(quantilesMembers[i][int(quantilesMembers[i].size() * 0.10)]);
//save 25%
- temp.push_back(quantilesMembers[i][int(quantilesMembers[i].size() * 0.25)].score);
+ temp.push_back(quantilesMembers[i][int(quantilesMembers[i].size() * 0.25)]);
//save 50%
- temp.push_back(quantilesMembers[i][int(quantilesMembers[i].size() * 0.5)].score);
+ temp.push_back(quantilesMembers[i][int(quantilesMembers[i].size() * 0.5)]);
//save 75%
- temp.push_back(quantilesMembers[i][int(quantilesMembers[i].size() * 0.75)].score);
+ temp.push_back(quantilesMembers[i][int(quantilesMembers[i].size() * 0.75)]);
//save 95%
- temp.push_back(quantilesMembers[i][int(quantilesMembers[i].size() * 0.95)].score);
+ temp.push_back(quantilesMembers[i][int(quantilesMembers[i].size() * 0.95)]);
//save 99%
- temp.push_back(quantilesMembers[i][int(quantilesMembers[i].size() * 0.99)].score);
+ temp.push_back(quantilesMembers[i][int(quantilesMembers[i].size() * 0.99)]);
}
printQuanFile(noOutliers, outputString);
+ //free memory
+ quantilesMembers.clear();
+
m->mothurOut("Done."); m->mothurOutEndLine();
}
MPI_Status statusAcc;
int length = outAccString.length();
- char buf[length];
- strcpy(buf, outAccString.c_str());
+ char* buf = new char[length];
+ memcpy(buf, outAccString.c_str(), length);
MPI_File_write_shared(outAcc, buf, length, MPI_CHAR, &statusAcc);
-
+ delete buf;
+
results = true;
}
outputString += "Observed\t";
MPI_Status status;
int length = outputString.length();
- char buf2[length];
- strcpy(buf2, outputString.c_str());
+ char* buf2 = new char[length];
+ memcpy(buf2, outputString.c_str(), length);
MPI_File_write_shared(out, buf2, length, MPI_CHAR, &status);
+ delete buf2;
return results;
}
MPI_File inMPI;
MPI_Offset size;
MPI_Status status;
+
+ //char* inFileName = new char[consfile.length()];
+ //memcpy(inFileName, consfile.c_str(), consfile.length());
- char inFileName[consfile.length()];
+ char inFileName[1024];
strcpy(inFileName, consfile.c_str());
MPI_File_open(MPI_COMM_WORLD, inFileName, MPI_MODE_RDONLY, MPI_INFO_NULL, &inMPI);
MPI_File_get_size(inMPI, &size);
+ //delete inFileName;
- char buffer[size];
+ char* buffer = new char[size];
MPI_File_read(inMPI, buffer, size, MPI_CHAR, &status);
string tempBuf = buffer;
+ delete buffer;
if (tempBuf.length() > size) { tempBuf = tempBuf.substr(0, size); }
istringstream iss (tempBuf,istringstream::in);
for (int i = 0; i < quantilesMembers.size(); i++) {
out << quantilesMembers[i].size() << '\t';
for (int j = 0; j < quantilesMembers[i].size(); j++) {
- out << quantilesMembers[i][j].score << '\t' << quantilesMembers[i][j].member1 << '\t' << quantilesMembers[i][j].member2 << '\t';
+ out << quantilesMembers[i][j] << '\t';
}
out << endl;
}
string s = toString(processIDS[i]) + ".temp";
openInputFile(s, in);
- vector< vector<quanMember> > quan;
+ vector< vector<float> > quan;
quan.resize(100);
//get quantiles
- for (int m = 0; m < quan.size(); m++) {
+ for (int h = 0; h < quan.size(); h++) {
int num;
in >> num;
gobble(in);
- vector<quanMember> q; float w; int b, n;
+ vector<float> q; float w;
for (int j = 0; j < num; j++) {
- in >> w >> b >> n;
-
- quanMember newMember(w, b, n);
- q.push_back(newMember);
+ in >> w;
+ q.push_back(w);
}
- quan[m] = q;
+ quan[h] = q;
gobble(in);
}
MPI_Offset size;
MPI_Status status;
- char inFileName[quanfile.length()];
+ //char* inFileName = new char[quanfile.length()];
+ //memcpy(inFileName, quanfile.c_str(), quanfile.length());
+
+ char inFileName[1024];
strcpy(inFileName, quanfile.c_str());
MPI_File_open(MPI_COMM_WORLD, inFileName, MPI_MODE_RDONLY, MPI_INFO_NULL, &inMPI);
MPI_File_get_size(inMPI, &size);
+ //delete inFileName;
- char buffer[size];
+
+ char* buffer = new char[size];
MPI_File_read(inMPI, buffer, size, MPI_CHAR, &status);
string tempBuf = buffer;
if (tempBuf.length() > size) { tempBuf = tempBuf.substr(0, size); }
istringstream iss (tempBuf,istringstream::in);
+ delete buffer;
while(!iss.eof()) {
iss >> num >> ten >> twentyfive >> fifty >> seventyfive >> ninetyfive >> ninetynine;
MPI_Comm_rank(MPI_COMM_WORLD, &pid); //find out who we are
int outMode=MPI_MODE_CREATE|MPI_MODE_WRONLY;
+
+ //char* FileName = new char[file.length()];
+ //memcpy(FileName, file.c_str(), file.length());
- char FileName[file.length()];
+ char FileName[1024];
strcpy(FileName, file.c_str());
if (pid == 0) {
MPI_File_open(MPI_COMM_SELF, FileName, outMode, MPI_INFO_NULL, &outQuan); //comm, filename, mode, info, filepointer
int length = outputString.length();
- char buf[length];
- strcpy(buf, outputString.c_str());
+ char* buf = new char[length];
+ memcpy(buf, outputString.c_str(), length);
MPI_File_write(outQuan, buf, length, MPI_CHAR, &status);
-
+ delete buf;
+
MPI_File_close(&outQuan);
}
+
+ //delete FileName;
#else
ofstream outQuan;
openOutputFile(file, outQuan);