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
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
CnfMode
public CnfMode CnfMode { get; init; }
Property Value
ComputeAdvancedForms
public bool ComputeAdvancedForms { get; init; }
Property Value
ComputeCnf
public bool ComputeCnf { get; init; }
Property Value
ComputeDnf
public bool ComputeDnf { get; init; }
Property Value
Default
public static OptimizationOptions Default { get; }
Property Value
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
Everything
public static OptimizationOptions Everything { get; }
Property Value
IncludeDebugInfo
public bool IncludeDebugInfo { get; init; }
Property Value
IncludeMetrics
public bool IncludeMetrics { get; init; }
Property Value
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
IncludeTruthTables
public bool IncludeTruthTables { get; init; }