#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:

1.3.2