Class OptimizationOptions

Namespace
LogicalOptimizer
Assembly
LogicalOptimizer.dll

Which artifacts OptimizeExpression(string, OptimizationOptions) should produce. The optimized expression itself is always computed; everything else is opt-in so callers do not pay for normal forms they never read.

public sealed class OptimizationOptions
Inheritance
OptimizationOptions
Inherited Members

Properties

Budget

Work budgets for the expensive engines (exact minimizer, SAT guard).

public ResourceBudget Budget { get; init; }

Property Value

ResourceBudget

CancellationToken

Cooperative cancellation for the whole call; observed between optimization iterations and inside the exact/SAT engines. Throws OperationCanceledException.

public CancellationToken CancellationToken { get; init; }

Property Value

CancellationToken

CnfMode

public CnfMode CnfMode { get; init; }

Property Value

CnfMode

ComputeAdvancedForms

public bool ComputeAdvancedForms { get; init; }

Property Value

bool

ComputeCnf

public bool ComputeCnf { get; init; }

Property Value

bool

ComputeDnf

public bool ComputeDnf { get; init; }

Property Value

bool

Default

public static OptimizationOptions Default { get; }

Property Value

OptimizationOptions

EnableAigRewriting

Multi-level, DAG-aware structural rewriting of the optimized expression via the internal And-Inverter Graph (cut-based ABC-style rewrite). The optimizer produces one extra candidate — the AIG-rewritten form — and adopts it only if it is verified equivalent to the input and strictly cheaper than the current best; it can never make the result worse. On by default since v3.0, so the default optimizer output may be a smaller multi-level form than the two-level/multi-level result produced before v3.0. Set it to false to restore the exact pre-3.0 behavior; results stay equivalence-verified either way.

public bool EnableAigRewriting { get; init; }

Property Value

bool

Everything

public static OptimizationOptions Everything { get; }

Property Value

OptimizationOptions

IncludeDebugInfo

public bool IncludeDebugInfo { get; init; }

Property Value

bool

IncludeMetrics

public bool IncludeMetrics { get; init; }

Property Value

bool

IncludeTrace

Record how the result was reached — engine choice and its threshold, budgets in force, candidates and their costs, what was adopted or rejected and why, how equivalence and minimality were discharged — into Trace. Off by default; enabling it adds bookkeeping only, never changes the result.

public bool IncludeTrace { get; init; }

Property Value

bool

IncludeTruthTables

public bool IncludeTruthTables { get; init; }

Property Value

bool