module Axiom::Optimizer::Function::Binary::UnoptimizedOperands

Optimize when the operand is unoptimized

Public Instance Methods

optimizable?() click to toggle source

Test if the operands are unoptimized

@return [Boolean]

@api private

# File lib/axiom/optimizer/function/binary.rb, line 87
def optimizable?
  left_optimizable? || right_optimizable?
end
optimize() click to toggle source

Return a Binary connective with optimized operands

@return [Binary]

@api private

# File lib/axiom/optimizer/function/binary.rb, line 96
def optimize
  operation.class.new(left, right)
end

Private Instance Methods

left_optimizable?() click to toggle source

Test if the left operand is optimizable

@return [Boolean]

@api private

# File lib/axiom/optimizer/function/binary.rb, line 107
def left_optimizable?
  !left.equal?(operation.left)
end
right_optimizable?() click to toggle source

Test if the right operand is optimizable

@return [Boolean]

@api private

# File lib/axiom/optimizer/function/binary.rb, line 116
def right_optimizable?
  !right.equal?(operation.right)
end