TraceMaker
C++ API of the engine
Loading...
Searching...
No Matches
tmk::route::PortfolioResult Struct Reference

Runs several differently configured routers (portfolio variants) and keeps the best result. More...

#include <route/router.hpp>

Public Attributes

RouteResult best
int best_variant = 0
 position in variants
std::vector< int > indices
 portfolio variant index per position
std::vector< std::string > variants
 description per variant
std::vector< int > routed
 routed count per variant
std::vector< double > seconds
 wall time per variant (its own clock)
std::vector< WorkProfile > work
 work profile per variant

Detailed Description

Runs several differently configured routers (portfolio variants) and keeps the best result.

Variant i is a pure function of (base options, i): it never depends on the thread count, and with a work budget each variant's result is deterministic. The variants are scheduled on threads worker threads (0 = one per variant) in index order and the winner is the minimum of a total order (most connections routed, then fewest vias, then shortest copper, then the lowest variant index), so with base.work_budget > 0 the output is the same for any threads (requirement N3, decision D47). Only the first variant streams events live.

Definition at line 355 of file router.hpp.

Member Data Documentation

◆ best

RouteResult tmk::route::PortfolioResult::best

Definition at line 356 of file router.hpp.

◆ best_variant

int tmk::route::PortfolioResult::best_variant = 0

position in variants

Definition at line 357 of file router.hpp.

◆ indices

std::vector<int> tmk::route::PortfolioResult::indices

portfolio variant index per position

Definition at line 358 of file router.hpp.

◆ routed

std::vector<int> tmk::route::PortfolioResult::routed

routed count per variant

Definition at line 360 of file router.hpp.

◆ seconds

std::vector<double> tmk::route::PortfolioResult::seconds

wall time per variant (its own clock)

Definition at line 361 of file router.hpp.

◆ variants

std::vector<std::string> tmk::route::PortfolioResult::variants

description per variant

Definition at line 359 of file router.hpp.

◆ work

std::vector<WorkProfile> tmk::route::PortfolioResult::work

work profile per variant

Definition at line 362 of file router.hpp.


The documentation for this struct was generated from the following file: