33void net_mst(
const std::vector<Point>& pts,
int net, std::vector<Seg>& out);
Placement legality (design doc 04 §3 D/E): exact integer tests of courtyards, through-hole obstacles,...
bool proper_cross(const Seg &s, const Seg &t)
True if the two segments cross at a single interior point (touching or collinear overlap does not cou...
std::int64_t count_crossings(const Problem &p, const Placement &pl)
Number of crossing pairs of airwires that belong to different signal nets (reference: O(n²)).
Coord net_hpwl(const Problem &p, const Placement &pl, int net)
HPWL of one net (unweighted, nm).
std::int64_t total_hpwl(const Problem &p, const Placement &pl)
Σ HPWL over all nets, unweighted (nm).
std::int64_t weighted_hpwl(const Problem &p, const Placement &pl)
Σ weight · HPWL over all nets (weights kSignalWeight / kPowerWeight).
std::int64_t side_vias(const Problem &p, const Placement &pl, bool weighted)
Via estimate of the side assignment (doc 04 §3 C, D48): a net whose surface-mount pins sit on both si...
std::vector< Seg > airwires(const Problem &p, const Placement &pl)
MST airwires of every signal net.
std::array< int, 2 > side_counts(const Problem &p, const Placement &pl, int net)
Front/back surface-mount pin counts of one net in pl (as used by side_vias).
void net_mst(const std::vector< Point > &pts, int net, std::vector< Seg > &out)
Minimum spanning tree of the pins (Prim, Manhattan metric, ties by pin order) appended to out.
std::int64_t Coord
Engine coordinate: signed 64-bit nanometres.