def demand
      if variables.empty?
        if @source.dimension > 0
          self.class.new( @dest.element( INT.new( 0 ) ),
                          @source.element( INT.new( 0 ) ) ).demand
          INT.new( 1 ).upto INT.new( @source.shape.last ) - 1 do |i|
            dest = @dest.element INT.new( i )
            source = @source.element INT.new( i )
            self.class.new( dest, source ).demand
            Store.new( dest, dest + @dest.element( INT.new( i ) - 1 ) ).demand
          end
        else
          Store.new( @dest, @source ).demand
        end
        @dest
      else
        super
      end
    end
def demand
      if variables.empty?
        if @source.dimension > 0
          self.class.new( @dest.element( INT.new( 0 ) ),
                          @source.element( INT.new( 0 ) ) ).demand
          INT.new( 1 ).upto INT.new( @source.shape.last ) - 1 do |i|
            dest = @dest.element INT.new( i )
            source = @source.element INT.new( i )
            self.class.new( dest, source ).demand
            Store.new( dest, dest + @dest.element( INT.new( i ) - 1 ) ).demand
          end
        else
          Store.new( @dest, @source ).demand
        end
        @dest
      else
        super
      end
    end
Reevaluate computation

 @return [Node,Object] Result of computation

 @see #force

 @private