|
TraceMaker
C++ API of the engine
|
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 | |
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.
| RouteResult tmk::route::PortfolioResult::best |
Definition at line 356 of file router.hpp.
| int tmk::route::PortfolioResult::best_variant = 0 |
position in variants
Definition at line 357 of file router.hpp.
| std::vector<int> tmk::route::PortfolioResult::indices |
portfolio variant index per position
Definition at line 358 of file router.hpp.
| std::vector<int> tmk::route::PortfolioResult::routed |
routed count per variant
Definition at line 360 of file router.hpp.
| std::vector<double> tmk::route::PortfolioResult::seconds |
wall time per variant (its own clock)
Definition at line 361 of file router.hpp.
| std::vector<std::string> tmk::route::PortfolioResult::variants |
description per variant
Definition at line 359 of file router.hpp.
| std::vector<WorkProfile> tmk::route::PortfolioResult::work |
work profile per variant
Definition at line 362 of file router.hpp.