def reject_values(*values)
      resultant_pos = size.times.to_a - positions(*values)
      dv = at(*resultant_pos)
      # Handle the case when number of positions is 1
      # and hence #at doesn't return a vector
      if dv.is_a?(Daru::Vector)
        dv
      else
        pos = resultant_pos.first
        at(pos..pos)
      end
    end
def reject_values(*values)
      resultant_pos = size.times.to_a - positions(*values)
      dv = at(*resultant_pos)
      # Handle the case when number of positions is 1
      # and hence #at doesn't return a vector
      if dv.is_a?(Daru::Vector)
        dv
      else
        pos = resultant_pos.first
        at(pos..pos)
      end
    end
Return a vector with specified values removed
 @param values [Array] values to reject from resultant vector
 @return [Daru::Vector] vector with specified values removed
 @example
   dv = Daru::Vector.new [1, 2, nil, Float::NAN]
   dv.reject_values nil, Float::NAN
   # => #<Daru::Vector(2)>
   #   0   1
   #   1   2