#include #include #include void panic (char * str); main (int argc, char* argv[]) { if (argc !=5) panic ("dop "); ifstream in1 (argv[1]), in2 (argv[2]) ; ofstream out (argv[3]); float wanted_pur = 0 ; if (! in1 || !in2) panic ("Missing input file(s)"); // wanted_pur = atof (argv[4]); double maxeff, maxpur1, maxpur2; for (wanted_pur = 0.2; wanted_pur < 1.01 ; wanted_pur += 0.005) { maxeff = 0 ; cureff = 0; if (wanted_pur < 0 || wanted_pur > 1) panic ("Illegal purity"); double eff1, eff2, pur1, pur2; double eff, pur; while (! in1.eof()) { in1 >> eff1 >> pur1; while (! in2.eof()) { in2 >> eff2 >> pur2; eff = eff1 + eff2; pur = eff*pur1*pur2 / ( eff1*pur2+eff2*pur1 ) ; if (pur >= wanted_pur) { if (eff > maxeff) { maxpur1 = pur1; maxpur2 = pur2; maxeff = eff; } } } out << pur1 << " " << pur2 << " " << pur << " " << eff << endl ; break ; in2.close(); in2.open (argv[2]); } } void panic (char * str) { cerr << str << endl; exit (0); }