lib/polynomials/analyzable.rb in polynomials-0.4.0 vs lib/polynomials/analyzable.rb in polynomials-0.4.1
- old
+ new
@@ -3,11 +3,12 @@
AfterExtremaCurvatureMapping = { maximum: :right, minimum: :left }
MinimumOrMaximum = {[1.0,-1.0] => :maximum,[-1.0,1.0] => :minimum}
def strives_for
roots = self.roots.map(&:x)
- return nil if roots.empty?
- [self.(roots.min - 1).sign, self.(roots.max + 1).sign].map { |d| d * Infinity }
+ local_extrema = self.local_extrema.map(&:x)
+ return nil if roots.empty? && local_extrema.empty?
+ [self.((roots.min || local_extrema.min) - 1).sign, self.((roots.max || local_extrema.max) + 1).sign].map { |d| d * Infinity }
end
def inflection_points
self.derivative.local_extrema.map { |p| InflectionPoint.new(p.x,self.calculate(p.x)) }.to_set
end