Main Page | Namespace List | Class Hierarchy | Compound List | File List | Namespace Members | Compound Members | File Members

FPEvalTest1.cxx File Reference

#include "FPcommon.h"
#include "Annealer.h"
#include "CommandLine.h"
#include "ABKCommon/paramproc.h"
#include "ABKCommon/infolines.h"

Include dependency graph for FPEvalTest1.cxx:

Include dependency graph

Go to the source code of this file.

Functions

int main (int argc, const char *argv[])


Function Documentation

int main int  argc,
const char *  argv[]
 

Definition at line 42 of file FPEvalTest1.cxx.

References DoubleParam::found(), 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            BoolParam help1 ("h", argc, argv);
00053            BoolParam help2 ("help", argc, argv);
00054            NoParams  noParams(argc,argv);  // this acts as a flag
00055            DoubleParam reqdWS_("reqdWS", argc, argv);
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 can plot, save existing floorplans\n"
00061                    <<"Options \n"
00062                    <<"FPEvalTest1.exe\n"
00063                    <<"-f baseFileName\n"
00064                    <<"-takePl   (construct SP from existing floorplan)\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                    <<"-reqdAR <double>(reqd aspect ratio for the capo layout)\n"
00071                    <<"-reqdWS <double>(reqd whitespace for the capo layout)\n";
00072                exit (0);
00073              }  
00074         
00075            DB* db = new DB(params->inFileName);
00076            double blocksArea = db->getNodesArea();
00077            
00078            if(params->takePl)
00079              {
00080                Annealer annealer(params, db);
00081                annealer.takeSPfromDB();
00082                annealer.eval();
00083                annealer.evalSlacks();
00084              }
00085 
00086            currXSize = db->getXSize();
00087            currYSize = db->getYSize();
00088            currArea = db->evalArea();
00089            currWS = 100*(currArea - blocksArea)/blocksArea;
00090            currWL = db->evalHPWL();
00091            currWLnoWts = db->evalHPWL(false);
00092 
00093            if(params->plot)
00094             {
00095               currAR = currXSize/currYSize;
00096               bool plotSlacks = !params->plotNoSlacks;
00097               bool plotNets = !params->plotNoNets;
00098               bool plotNames = !params->plotNoNames;
00099               db->plot("out.plt", currArea, currWS, currAR, 0, 
00100                         currWL, plotSlacks, plotNets, plotNames);
00101             }
00102             
00103            if(params->savePl)
00104              db->getNodes()->savePl(params->outPlFile);
00105                               
00106            if(params->saveCapoPl)
00107              db->getNodes()->saveCapoPl(params->capoPlFile);
00108 
00109            double reqdWS;
00110            if(reqdWS_.found())
00111              reqdWS = reqdWS_;
00112            else
00113              reqdWS = 30;
00114            if(params->saveCapo)
00115              db->saveCapo(params->capoBaseFile, params->reqdAR, reqdWS);
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            cout<<"blocksArea: "<<blocksArea<<endl; 
00124         return 0;
00125 }

Here is the call graph for this function:


Generated on Mon Apr 25 01:11:24 2005 for Parquete by doxygen 1.3.2