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