Skip to content

#378 More parameters for CIF data-based synthesis variable ordering algorithms

  • Generalize to allow mix of legacy and linearized hyper-edges/graphs:
    • Add RelationsKind to configure legacy vs linearized relations.
    • VarOrdererHelper has representations per RelationsKind.
  • Parameterize metrics for different relations:
    • Move metrics out of VarOrdererHelper (a class per metric).
    • More functionality from VarOrdererHelper in the metric classes.
    • Parameterize metrics with RelationsKind.
  • Debug output for different metric kinds:
    • VarOrdererHelper: dbgMetrics per RelationsKind.
  • Parameterize variable orders with metrics and relations kinds:
    • ChoiceVarOrderer: relations kind.
    • DcshVarOrderer: metric, relations kind.
    • ForceVarOrderer: metric, relations kind.
    • ReverseVarOrderer: relations kind.
    • SlidingWindowVarOrderer: metric, relations kind.
    • SloanVarOrderer: relations kind.
    • WeightedCuthillMcKeeVarOrderer: node finder, relations kind.
  • Moved defaults to CifToSynthesisConverter.
  • Some other improvements:
    • Fix: LinearizedHyperEdgeCreator must not extend LegacyHyperEdgeCreator.
    • Aligned hyper-edges and graphs in CifToSynthesisConverter.
    • Moved hyper-edge creators to separate package.
    • Moved variable ordering metrics to separate package.
  • Note that:
    • These changes are backwards compatible for the user.
    • There are no options yet to exploit the new possibilities. (that will be a separate merge request)
    • The base orderers have not been made into separate classes.

It is probably easiest to review this per commit.

Addresses #378 (closed)

Merge request reports