59   r.
w -= r.
x; r.
h -= r.
y;
 
  124     assert(g_place_concreteNets);
 
  129     g_place_numNets = net->
m_id+1;
 
  132   g_place_concreteNets[net->
m_id] = net;
 
  143   g_place_concreteNets[net->
m_id] = 0;
 
  165     assert(g_place_concreteCells);
 
  170     g_place_numCells = cell->
m_id+1;
 
  172   g_place_concreteCells[cell->
m_id] = cell;
 
  218   g_place_concreteCells[cell->
m_id] = 0;
 
  240   if (!pa && !pb) 
return 0;
 
  241   else if (!pa) 
return -1;
 
  242   else if (!pb) 
return 1;
 
  244   if (ba.
x < bb.
x) 
return -1;
 
  245   if (ba.
x > bb.
x) 
return 1;
 
  254   if (!pa && !pb) 
return 0;
 
  255   else if (!pa) 
return -1;
 
  256   else if (!pb) 
return 1;
 
  258   if (ba.
x + ba.
w < bb.
x + bb.
w) 
return -1;
 
  259   if (ba.
x + ba.
w > bb.
x + bb.
w) 
return 1;
 
  268   if (!pa && !pb) 
return 0;
 
  269   else if (!pa) 
return -1;
 
  270   else if (!pb) 
return 1;
 
  272   if (ba.
y + ba.
h < bb.
y + bb.
h) 
return -1;
 
  273   if (ba.
y + ba.
h > bb.
y + bb.
h) 
return 1;
 
  282   if (!pa && !pb) 
return 0;
 
  283   else if (!pa) 
return -1;
 
  284   else if (!pb) 
return 1;
 
  286   if (ba.
y < bb.
y) 
return -1;
 
  287   if (ba.
y > bb.
y) 
return 1;
 
  295   if (!pa && !pb) 
return 0;
 
  296   else if (!pa) 
return -1;
 
  297   else if (!pb) 
return 1;
 
  318   if (!pa && !pb) 
return 0;
 
  319   else if (!pa) 
return -1;
 
  320   else if (!pb) 
return 1;
 
  321   if (pa->
m_x < pb->
m_x) 
return -1;
 
  322   if (pa->
m_x > pb->
m_x) 
return 1;
 
  330   if (!pa && !pb) 
return 0;
 
  331   else if (!pa) 
return -1;
 
  332   else if (!pb) 
return 1;
 
  333   if (pa->
m_y < pb->
m_y) 
return -1;
 
  334   if (pa->
m_y > pb->
m_y) 
return 1;
 
  342   if (!pa && !pb) 
return 0;
 
  343   else if (!pa) 
return -1;
 
  344   else if (!pb) 
return 1;
 
int cellSortByX(const void *a, const void *b)
Sorts cells by either position coordinate. 
struct Partition * m_sub1
int cellSortByY(const void *a, const void *b)
ConcreteNet ** g_place_concreteNets
Partition * g_place_rootPartition
int netSortByR(const void *a, const void *b)
int g_place_concreteNetsSize
void addConcreteNet(ConcreteNet *net)
Adds a net to the placement database. 
int netSortByB(const void *a, const void *b)
ConcreteCell ** g_place_concreteCells
int netSortByID(const void *a, const void *b)
struct Partition * m_sub2
float getCellArea(const ConcreteCell *cell)
int g_place_concreteCellsSize
void addConcreteCell(ConcreteCell *cell)
float getNetWirelength(const ConcreteNet *net)
Returns the half-perimeter wirelength of a net. 
int netSortByT(const void *a, const void *b)
#define ABC_NAMESPACE_IMPL_END
int cellSortByID(const void *a, const void *b)
float getTotalWirelength()
Returns the total HPWL of all nets. 
ConcreteCell ** m_members
#define ABC_NAMESPACE_IMPL_START
void delCellFromPartition(ConcreteCell *cell, Partition *p)
Rect getNetBBox(const ConcreteNet *net)
Returns the bounding box of a net. 
ABC_NAMESPACE_IMPL_START int g_place_numCells
void delConcreteNet(ConcreteNet *net)
Does not deallocate memory. 
void delConcreteCell(ConcreteCell *cell)
Removes a cell from the placement database. 
int netSortByL(const void *a, const void *b)
Sorts nets by position of one of its corners.