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