#include "libscl.h" using namespace scl; using namespace std; namespace { typedef vector record; typedef vector::iterator recitr; typedef vector rule; typedef vector::iterator rulitr; typedef vector::size_type rulst; } int main(int argc, char** argp, char** envp) { if (argc == 1) error("Error, need input filename on command line"); ++argp; string filename = *argp; ifstream fin; ofstream fout; fin.open(filename.c_str()); if (!fin) error("Error, cannot open " + filename); rule rul; string line; while (getline(fin,line)) { record rec = cutstr(line,' '); char last = rec[0][rec[0].size() - 1]; if (rec.size() == 6 && last == '2') { rul.push_back(rec); } } realmat confidence(rul.size(),1); INTEGER count = 1; for (rulitr r=rul.begin(); r!=rul.end(); ++r) { (*r)[3][0] = ' '; (*r)[3][(*r)[3].size()-1] = ' '; (*r)[4][(*r)[4].size()-1] = ' '; (*r)[5][(*r)[5].size()-1] = ' '; confidence[count++] = atof((*r)[4].c_str()); } intvec sidx = confidence.sort(-1); for (INTEGER j=1; j<=sidx.size(); ++j) { rulst i = sidx[j] - 1; cout << rul[i][0] << " & $\\leftarrow$ &" << rul[i][2] << " & " << rul[i][3] << " & " << rul[i][4] << " & " << rul[i][5] << "\\\\\n"; } return 0; }