class Axiom::Optimizer::Algebra::Extension

Abstract base class representing Extension optimizations

Attributes

extensions[R]

The optimized extensions

@return [Hash{Attribute => Function}]

@api private

Public Class Methods

new(*) click to toggle source

Initialize a Summarization optimizer

@return [undefined]

@api private

Calls superclass method
# File lib/axiom/optimizer/algebra/extension.rb, line 22
def initialize(*)
  super
  @extensions = optimize_extensions
end

Private Instance Methods

optimize_extensions() click to toggle source

Optimize the extensions

@return [Hash{Attribute => Function}]

@api private

# File lib/axiom/optimizer/algebra/extension.rb, line 34
def optimize_extensions
  Function.optimize_functions(operation.extensions)
end
wrap_operand(operand = operand.operand) click to toggle source

Wrap the operand’s operand in an Extension

@return [Extension]

@api private

# File lib/axiom/optimizer/algebra/extension.rb, line 43
def wrap_operand(operand = operand.operand)
  operand.extend(extensions)
end