10#if !defined(PLACE_GORDIAN_H_)
11#define ABC__phys__place__place_gordian_h
21#define CLIQUE_PENALTY 1.0
22#define IGNORE_NETSIZE 20
25#define LARGEST_FINAL_SIZE 20
26#define PARTITION_AREA_ONLY true
27#define REALLOCATE_PARTITIONS false
28#define FINAL_REALLOCATE_PARTITIONS false
29#define IGNORE_COG false
30#define MAX_PARTITION_NONSYMMETRY 0.30
33#define REPARTITION_LEVEL_DEPTH 4
34#define REPARTITION_TARGET_FRACTION 0.15
35#define REPARTITION_FM false
36#define REPARTITION_HMETIS true
40#define FM_MAX_PASSES 10
#define ABC_NAMESPACE_HEADER_END
#define ABC_NAMESPACE_HEADER_START
NAMESPACES ///.
ABC_NAMESPACE_IMPL_START qps_problem_t * g_place_qpProb
ABC_NAMESPACE_IMPL_START int g_place_numPartitions
void repartitionHMetis(Partition *parent)
Repartitions the two subpartitions using the hMetis min-cut library.
bool refinePartitions()
Splits large leaf partitions.
void solveQuadraticProblem(bool useCOG)
Calls quadratic solver.
void reallocPartition(Partition *p)
Reallocates a partition and all of its children.
void repartitionFM(Partition *parent)
Fiduccia-Matheyses mincut partitioning algorithm.
Partition * g_place_rootPartition
void partitionEqualArea(Partition *parent)
Splits a partition into two halves of equal area.
void reallocPartitions()
Reallocates the partitions based on placement information.
void initPartitioning()
Initializes data structures necessary for partitioning.
void incrementalPartition()
Adds new cells to an existing partition. Partition sizes/locations are unchanged.
void constructQuadraticProblem()
Constructs the matrices necessary to do analytical placement.
void resizePartition(Partition *p)
Recomputes the bounding boxes of the child partitions based on their relative areas.
void sanitizePlacement()
Moves any cells that are outside of the core bounds to the nearest location within.
void partitionScanlineMincut(Partition *parent)
Scans the cells within a partition from left to right and chooses the min-cut.
bool refinePartition(Partition *p)
Splits any large leaves within a partition.
struct qps_problem qps_problem_t
struct Partition * m_sub1
ConcreteCell ** m_members
struct Partition * m_sub2