Class Optimizer
Provides a set of combinators for optimizers.
Inheritance
Namespace: System.Linq.CompilerServices.Optimizers
Assembly: Nuqleon.Linq.CompilerServices.Optimizers.dll
Syntax
public static class Optimizer : Object
Methods
FixedPoint(IOptimizer)
Creates an optimizer that applies the given optimizer until a fixed point is found.
Declaration
public static IOptimizer FixedPoint(this IOptimizer optimizer)
Parameters
Type | Name | Description |
---|---|---|
IOptimizer | optimizer | The optimizer whose fixed point to find. |
Returns
Type | Description |
---|---|
IOptimizer | An optimizer that applies the given optimizer until a fixed point is found. |
FixedPoint(IOptimizer, Boolean)
Creates an optimizer that applies the given optimizer until a fixed point is found.
Declaration
public static IOptimizer FixedPoint(this IOptimizer optimizer, bool throwOnCycle)
Parameters
Type | Name | Description |
---|---|---|
IOptimizer | optimizer | The optimizer whose fixed point to find. |
System.Boolean | throwOnCycle | Flag indicating whether to throw on finding a cycle. |
Returns
Type | Description |
---|---|
IOptimizer | An optimizer that applies the given optimizer until a fixed point is found. |
FixedPoint(IOptimizer, Boolean, Int32)
Creates an optimizer that applies the given optimizer until a fixed point is found or retry limit is hit.
Declaration
public static IOptimizer FixedPoint(this IOptimizer optimizer, bool throwOnCycle, int maxIterations)
Parameters
Type | Name | Description |
---|---|---|
IOptimizer | optimizer | The optimizer whose fixed point to find. |
System.Boolean | throwOnCycle | Flag indicating whether to throw on finding a cycle. |
System.Int32 | maxIterations | The maximum number of iterations. |
Returns
Type | Description |
---|---|
IOptimizer | An optimizer that applies the given optimizer until a fixed point is found or retry limit is hit. |
Nop()
Gets an optimizer that does no optimizations.
Declaration
public static IOptimizer Nop()
Returns
Type | Description |
---|---|
IOptimizer | An optimizer that does no optimizations. |
Then(IOptimizer, IOptimizer)
Creates an optimizer that chains the given optimizers sequentially.
Declaration
public static IOptimizer Then(this IOptimizer first, IOptimizer second)
Parameters
Type | Name | Description |
---|---|---|
IOptimizer | first | The first optimizer. |
IOptimizer | second | The second optimizer. |
Returns
Type | Description |
---|---|
IOptimizer | An optimizer that chains the given optimizers sequentially. |