Alps heart
TableComparisonProc: TYPE = PROC [oldTable, newTable: AlpsBool.TableOfVariables] RETURNS [newIsBetter: BOOL];
ImproveAreaAndDelay: TableComparisonProc;
ImproveSizeAndDelay: TableComparisonProc;
ImproveSize: TableComparisonProc;
ImproveDelay: TableComparisonProc;
AlwaysBetter: TableComparisonProc;
Example: PUBLIC PROC [] RETURNS [table: AlpsBool.TableOfVariables];
ExampleC1MX07A: PUBLIC PROC [] RETURNS [table: AlpsBool.TableOfVariables];
MostUsed: PUBLIC PROC [table: AlpsBool.TableOfVariables] RETURNS [exprs: LIST OF AlpsBool.Expression ← NIL];
EachRestrictionProc: TYPE = PROC [table: AlpsBool.TableOfVariables, expr: AlpsBool.Expression, nb: INT] RETURNS [quit: BOOL ← FALSE];
InterestProc: TYPE = PROC [table: AlpsBool.TableOfVariables, expr: AlpsBool.Expression] RETURNS [exprIsInteresting: BOOL ← FALSE];
DefaultInterestProc: InterestProc;
EnumerateRestrictions: PUBLIC PROC [table: AlpsBool.TableOfVariables, eachRestriction: EachRestrictionProc, interestProc: InterestProc ← DefaultInterestProc];
FactorizeBest: PUBLIC PROC [table: AlpsBool.TableOfVariables, better: TableComparisonProc, printLevel: INT ← 2] RETURNS [newTable: AlpsBool.TableOfVariables, ok: BOOL];
AllPermute: PUBLIC PROC [table: AlpsBool.TableOfVariables, better: TableComparisonProc, permutLimit: INT ← 99] RETURNS [newTable: AlpsBool.TableOfVariables];
BestPermute: PUBLIC PROC [table: AlpsBool.TableOfVariables, better: TableComparisonProc] RETURNS [newTable: AlpsBool.TableOfVariables, ok: BOOL ← FALSE];
FastPermute: PUBLIC PROC [table: AlpsBool.TableOfVariables, better: TableComparisonProc] RETURNS [newTable: AlpsBool.TableOfVariables, ok: BOOL ← FALSE];
BestPermuteInfinitely: PUBLIC PROC [table: AlpsBool.TableOfVariables, better: TableComparisonProc] RETURNS [newTable: AlpsBool.TableOfVariables];
NbOfUseOfVarInTable: PUBLIC PROC [table: AlpsBool.TableOfVariables, varNb: AlpsBool.VarNb] RETURNS [sigma: INT ← 0];
RemoveAuxVar: PUBLIC PROC [table: AlpsBool.TableOfVariables, better: TableComparisonProc, printLevel: INT ← 2] RETURNS [newTable: AlpsBool.TableOfVariables, ok: BOOL];
Reverse: PUBLIC PROC [table: AlpsBool.TableOfVariables] RETURNS [newTable: AlpsBool.TableOfVariables];