# Package com.saxonica.ee.optim

This package contains classes used to support optimized expressions and instructions that are specific to Saxon-EE, and that don't fit conveniently into a more specialized category (such as streaming). They include the Saxon-EE optimiser; the code to implement multithreading in `xsl:for-each` in XSLT, and the code to perform optimized evaluation of general comparisons.

None of these classes will be used by typical user applications.

- Class Summary
  Class | Description
  --- | ---
  CommonSubexpressionPromoter | This class is responsible for identifying and extracting common subexpressions within an expression.
  GeneralComparisonEE | This class provides an implementation of the GeneralComparison "=" operator, which deals efficiently with comparing two sequences.
  GlobalExtractor | This class is responsible for extracting global variables from subexpressions within a function or template
  IndexedFilterExpression | An IndexedFilterExpression contains a base expression and a filter predicate.
  IndexedValue | A representation of a (sequence) value that allows the construction of one or more indexes to provide rapid access to the items in the sequence.
  MultiIndex | A MultiIndex provides fast access to the items in a sequence.
  MultiIndex.SelectedItemsIterator | Iterator over a subset of the items in this IndexedValue, identified by an IntSet holding the positions of the items in the selected subset (zero-based)
  MultithreadedContextMappingIterator | This class performs the same role as ContextMappingIterator, but using multiple threads.
  MultithreadedFocusTrackingIterator | This is a thread-safe version of the parent class `FocusTrackingIterator`.
  MultithreadedForEach | This instruction represents an xsl:for-each instruction using more than one thread
  MultithreadedItemMappingIterator | Parallel-processing version of the ItemMappingIterator class, which executes a mapping function for each item in a sequence.
  OptimizerEE | This class performs a number of optimizations that are specific to the Saxon-EE product.
  QuickXPathParser | This class performs a quick parse of commonly encountered XPath expressions that conform to common syntactic patterns.
  SearchableValue | A sequence that is held in a form that permits rapid searching, typically by use of indexes.
  StaticQueryContextEE | A version of StaticQueryContext for Saxon-EE, that extends the capability by allowing compilation of library modules.
  SwitchExpression | An optimized Choose expression in which all the branches are tests of the same expression for equality with some value.
  SwitchExpression.SwitchCaseInfo | Data structure used for holding details of a switch expression
  XQueryExpressionEE | Saxon-EE version of XQueryExpression.