#include "FPcommon.h"
#include "Annealer.h"
#include "CommandLine.h"
#include "ABKCommon/paramproc.h"
#include "ABKCommon/infolines.h"
Include dependency graph for FPEvalTest3.cxx:
Go to the source code of this file.
Functions | |
int | main (int argc, const char *argv[]) |
|
Definition at line 42 of file FPEvalTest3.cxx. References BoolParam::found(), and NoParams::found().
00043 { 00044 double currXSize; 00045 double currYSize; 00046 double currArea; 00047 double currWS; 00048 double currWL; 00049 double currWLnoWts; 00050 double currAR=0; 00051 00052 00053 BoolParam help1 ("h", argc, argv); 00054 BoolParam help2 ("help", argc, argv); 00055 NoParams noParams(argc,argv); // this acts as a flag 00056 Command_Line* params = new Command_Line(argc, argv); 00057 params->printAnnealerParams(); 00058 if (noParams.found() || help1.found() || help2.found()) 00059 { 00060 cerr<<"This test case test analytical techniques\n" 00061 <<"Options \n" 00062 <<"FPEvalTest3.exe\n" 00063 <<"-f baseFileName\n" 00064 <<"-initQP (initial SP is constructed from quadratic min WL)\n" 00065 <<"-plot (plot floorplan)\n" 00066 <<"-save (save in bookshelf floorplan format)\n" 00067 <<"-savePl (save only .pl file)\n" 00068 <<"-saveCapoPl (save .pl in Capo bookshelf format)\n" 00069 <<"-saveCapo (save design in Capo bookshelf format)\n"; 00070 exit (0); 00071 } 00072 00073 DB* db = new DB(params->inFileName); 00074 double blocksArea = db->getNodesArea(); 00075 00076 Annealer annealer(params, db); 00077 annealer.solveQP(); 00078 if(params->initQP) 00079 { 00080 annealer.takeSPfromDB(); 00081 annealer.eval(); 00082 00083 currXSize = annealer.getXSize(); 00084 currYSize = annealer.getYSize(); 00085 currArea = currXSize*currYSize; 00086 } 00087 else 00088 { 00089 currXSize = db->getXSize(); 00090 currYSize = db->getYSize(); 00091 currArea = db->evalArea(); 00092 } 00093 00094 currWS = 100*(currArea - blocksArea)/blocksArea; 00095 currWL = db->evalHPWL(); 00096 currWLnoWts = db->evalHPWL(false); 00097 00098 if(params->plot) 00099 { 00100 currAR = currXSize/currYSize; 00101 bool plotSlacks = !params->plotNoSlacks; 00102 bool plotNets = !params->plotNoNets; 00103 bool plotNames = !params->plotNoNames; 00104 db->plot("out.plt", currArea, currWS, currAR, 0, 00105 currWL, plotSlacks, plotNets, plotNames); 00106 } 00107 00108 if(params->savePl) 00109 db->getNodes()->savePl(params->outPlFile); 00110 00111 if(params->saveCapoPl) 00112 db->getNodes()->saveCapoPl(params->capoPlFile); 00113 00114 if(params->saveCapo) 00115 db->saveCapo(params->capoBaseFile, params->reqdAR); 00116 00117 if(params->save) 00118 db->save(params->baseFile); 00119 00120 cout<<"Final Area: "<<currArea<<" WhiteSpace "<<currWS<<"%" 00121 <<" currAR "<<currAR<<" HPWL "<<currWL<<" Unweighted HPWL " 00122 <<currWLnoWts<<endl; 00123 00124 return 0; 00125 } |
Here is the call graph for this function: