def lut( table, options = {} )
      if ( shape.first != 1 or dimension == 1 ) and table.dimension == 1
        [ self ].lut table, options
      else
        ( 0 ... shape.first ).collect { |i| unroll[i] }.lut table, options
      end
    end
def lut( table, options = {} )
      if ( shape.first != 1 or dimension == 1 ) and table.dimension == 1
        [ self ].lut table, options
      else
        ( 0 ... shape.first ).collect { |i| unroll[i] }.lut table, options
      end
    end
Perform element-wise lookup

 @param [Node] table The lookup table (LUT).
 @option options [Boolean] :safe (true) Do a boundary check before creating the
         element-wise lookup.

 @return [Node] The result of the lookup operation.