def memorise
      if memory
        contiguous_strides = (0 ... dimension).collect do |i|
          shape[0 ... i].inject 1, :*
        end
        if strides == contiguous_strides
          self
        else
          dup
        end
      else
        dup
      end
    end
def memorise
      if memory
        contiguous_strides = (0 ... dimension).collect do |i|
          shape[0 ... i].inject 1, :*
        end
        if strides == contiguous_strides
          self
        else
          dup
        end
      else
        dup
      end
    end
Duplicate array expression if it is not in row-major format

 @return [Node] Duplicate of array or +self+.