polynomials 0.4.3 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.travis.yml CHANGED
@@ -1,4 +1,4 @@
1
- script: "rake"
1
+ script: "bundle exec rake"
2
2
  rvm:
3
3
  - 1.9.2
4
4
 
data/Gemfile CHANGED
@@ -6,10 +6,10 @@ source "http://rubygems.org"
6
6
  # Add dependencies to develop your gem here.
7
7
  # Include everything needed to run rake, tests, features, etc.
8
8
  group :development do
9
- gem "bundler", "~> 1.0.0"
9
+ gem "rake"
10
10
  gem "jeweler", "~> 1.6.0"
11
11
  gem "simplecov", ">= 0"
12
- gem 'awesome_print'
13
12
  end
13
+
14
14
  gem "activesupport"
15
- gem 'i18n'
15
+ gem "i18n"
data/Gemfile.lock CHANGED
@@ -1,15 +1,14 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
- activesupport (3.0.7)
5
- awesome_print (0.3.2)
4
+ activesupport (3.0.9)
6
5
  git (1.2.5)
7
- i18n (0.5.0)
8
- jeweler (1.6.0)
9
- bundler (~> 1.0.0)
6
+ i18n (0.6.0)
7
+ jeweler (1.6.2)
8
+ bundler (~> 1.0)
10
9
  git (>= 1.2.5)
11
10
  rake
12
- rake (0.8.7)
11
+ rake (0.9.2)
13
12
  simplecov (0.4.2)
14
13
  simplecov-html (~> 0.4.4)
15
14
  simplecov-html (0.4.5)
@@ -19,8 +18,7 @@ PLATFORMS
19
18
 
20
19
  DEPENDENCIES
21
20
  activesupport
22
- awesome_print
23
- bundler (~> 1.0.0)
24
21
  i18n
25
22
  jeweler (~> 1.6.0)
23
+ rake
26
24
  simplecov
data/README.markdown CHANGED
@@ -1,6 +1,4 @@
1
- # Polynomials
2
-
3
- [![Build Status](http://travis-ci.org/mkorfmann/polynomials.png)](http://travis-ci.org/mkorfmann/polynomials)
1
+ # Polynomials [![Build Status](http://travis-ci.org/mkorfmann/polynomials.png)](http://travis-ci.org/mkorfmann/polynomials)
4
2
 
5
3
  ## Example App
6
4
 
@@ -9,7 +7,7 @@ see the gem in action!
9
7
 
10
8
  ## Usage
11
9
 
12
- <pre><code>
10
+ ```ruby
13
11
  require 'polynomials'
14
12
  require 'gnuplot'
15
13
  include Polynomials
@@ -17,11 +15,10 @@ include Polynomials
17
15
 
18
16
  polynomial = Polynomial.parse(ARGV[0])
19
17
 
20
- points = polynomial.roots | polynomial.local_extrema |
21
- polynomial.inflection_points
18
+ points = polynomial.roots | polynomial.local_extrema | polynomial.inflection_points
22
19
 
23
- max_x = points.max_by(&amp;:x)
24
- min_x = points.min_by(&amp;:x)
20
+ max_x = points.max_by(&:x)
21
+ min_x = points.min_by(&:x)
25
22
  max_x = max_x == 0 ? max_x.x : 1
26
23
  min_x = min_x == 0 ? min_x.x : -1
27
24
 
@@ -32,38 +29,34 @@ stop = max_x + difference/4.0
32
29
  step = (start-stop).abs/1000.0
33
30
 
34
31
  pointset = polynomial.pointset(start,stop,step)
35
- data_x= pointset.map(&amp;:first)
36
- data_y = pointset.map(&amp;:last)
32
+ data_x= pointset.map(&:first)
33
+ data_y = pointset.map(&:last)
37
34
 
38
35
  Gnuplot.open do |gp|
39
36
  Gnuplot::Plot.new(gp) do |plot|
40
- plot.xrange &quot;[#{start}:#{stop}]&quot;
41
- plot.title &quot;Polynomial&quot;
42
- plot.ylabel &quot;f(x)&quot;
43
- plot.xlabel &quot;x&quot;
37
+ plot.xrange "[#{start}:#{stop}]"
38
+ plot.title "Polynomial"
39
+ plot.ylabel "f(x)"
40
+ plot.xlabel "x"
44
41
  plot.grid
45
- plot.data &lt;&lt; Gnuplot::DataSet.new( [data_x,data_y] ) do |ds|
46
- ds.with = &quot;lines&quot;
42
+ plot.data << Gnuplot::DataSet.new( [data_x,data_y] ) do |ds|
43
+ ds.with = "lines"
47
44
  ds.linewidth = 0.2
48
- ds.title = &quot;f(x) = #{polynomial}&quot;
45
+ ds.title = "f(x) = #{polynomial}"
49
46
  ds.smooth
50
47
  end
51
48
 
52
- [:inflection_point,:root, :maximum, :minimum].each do
53
- |kind_of_point|
54
- selected_points =
55
- points.select(&amp;:&quot;#{kind_of_point}?&quot;)
56
- plot.data &lt;&lt;
57
- Gnuplot::DataSet.new([selected_points.map(&amp;:x),
58
- selected_points.map(&amp;:y)]) do |ds|
59
- ds.with = &quot;points&quot;
49
+ [:inflection_point,:root, :maximum, :minimum].each do |kind_of_point|
50
+ selected_points = points.select(&:"#{kind_of_point}?")
51
+ plot.data << Gnuplot::DataSet.new([selected_points.map(&:x), selected_points.map(&:y)]) do |ds|
52
+ ds.with = "points"
60
53
  ds.linewidth = 2
61
54
  ds.title = kind_of_point.to_s.pluralize.titleize
62
55
  end
63
56
  end
64
57
  end
65
58
  end
66
- </code></pre>
59
+ ```
67
60
 
68
61
  ### Bash Command
69
62
  <pre><code> % ruby examples/plot_only_mutual_data.rb '20.432 x^4 - 17.75 x^3 - 20x^2 + 5 x -50'</code></pre>
data/Rakefile CHANGED
@@ -1,7 +1,5 @@
1
- # encoding: utf-8
2
-
3
- require 'rubygems'
4
1
  require 'bundler'
2
+
5
3
  begin
6
4
  Bundler.setup(:default, :development)
7
5
  rescue Bundler::BundlerError => e
@@ -9,9 +7,11 @@ rescue Bundler::BundlerError => e
9
7
  $stderr.puts "Run `bundle install` to install missing gems"
10
8
  exit e.status_code
11
9
  end
10
+
12
11
  require 'rake'
13
12
 
14
13
  require 'jeweler'
14
+
15
15
  Jeweler::Tasks.new do |gem|
16
16
  # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
17
17
  gem.name = "polynomials"
@@ -35,22 +35,4 @@ Rake::TestTask.new(:test) do |test|
35
35
  test.verbose = true
36
36
  end
37
37
 
38
- #require 'rcov/rcovtask'
39
- #Rcov::RcovTask.new do |test|
40
- # test.libs << 'test'
41
- # test.pattern = 'test/**/*_test.rb'
42
- # test.verbose = true
43
- # test.rcov_opts << '--exclude "gems/*"'
44
- #end
45
- #
46
38
  task :default => :test
47
-
48
- require 'rake/rdoctask'
49
- Rake::RDocTask.new do |rdoc|
50
- version = File.exist?('VERSION') ? File.read('VERSION') : ""
51
-
52
- rdoc.rdoc_dir = 'rdoc'
53
- rdoc.title = "polynomials #{version}"
54
- rdoc.rdoc_files.include('README*')
55
- rdoc.rdoc_files.include('lib/**/*.rb')
56
- end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.3
1
+ 0.4.4
data/lib/polynomials.rb CHANGED
@@ -13,6 +13,7 @@ require 'set'
13
13
  require 'point'
14
14
  require 'term'
15
15
  require 'analyzable'
16
+ require 'plotable'
16
17
  require 'polynomial'
17
18
 
18
19
 
@@ -4,10 +4,13 @@ module Polynomials
4
4
  MinimumOrMaximum = {[1.0,-1.0] => :maximum,[-1.0,1.0] => :minimum}
5
5
 
6
6
  def strives_for
7
- roots = self.roots.map(&:x)
8
- local_extrema = self.local_extrema.map(&:x)
9
- return nil if roots.empty? && local_extrema.empty?
10
- [self.((roots.min || local_extrema.min) - 1).sign, self.((roots.max || local_extrema.max) + 1).sign].map { |d| d * Infinity }
7
+ points = self.roots.map(&:x) | self.local_extrema.map(&:x)
8
+ return nil if points.empty?
9
+ points.minmax.zip([-1,1])
10
+ .map do |point,direction|
11
+ sign = self.(point + direction).sign
12
+ Extremum.new(Infinity * direction, sign * Infinity, sign < 0 ? :minimum : :maximum)
13
+ end
11
14
  end
12
15
 
13
16
  def inflection_points
@@ -28,7 +31,7 @@ module Polynomials
28
31
  samples.push possible_extrema.last + 1
29
32
 
30
33
  possible_extrema.zip(samples.each_cons(2)).inject(Set[]) do |set,(pe,sample)|
31
- directions = sample.map { |x| derivative.(x).sign}
34
+ directions = sample.map { |x| derivative.(x).sign }
32
35
  kind_of_extremum = MinimumOrMaximum[directions]
33
36
  next set unless kind_of_extremum
34
37
  set << Extremum.new(pe,self.calculate(pe), kind_of_extremum)
@@ -37,19 +40,14 @@ module Polynomials
37
40
 
38
41
  def curvature_behaviour
39
42
  hash = Hash.new {|h,k|h[k]=[]}
40
-
41
43
  dd = self.derivative.derivative
42
- return nil if !(strives_for = derivative.strives_for) || dd.(dd.roots.sort.last.to_f + 1) == 0
43
-
44
- ([[-Infinity,strives_for[0]]] + derivative.local_extrema.sort + [[Infinity,strives_for[-1]]]).each_cons(2).chunk do |b,_|
45
- if b.is_a? Point
46
- AfterExtremaCurvatureMapping[b.kind_of_extremum]
47
- else
48
- b.last < 0 ? :left : :right
49
- end
50
- end.with_index.inject(hash) do |hash,((curvature,values),i)|
51
- hash.tap { |h| h[curvature].concat values.each {|a| a.map! { |p| (p.is_a? Point) ? p.x : p.first }}}
52
- end
44
+ strives_for = derivative.strives_for
45
+ return nil if !strives_for
46
+
47
+ delimiter = [strives_for[0]] | derivative.local_extrema.to_a | [strives_for[1]]
48
+ delimiter.sort.each_cons(2).group_by do |b,_|
49
+ AfterExtremaCurvatureMapping[b.kind_of_extremum]
50
+ end.tap { |h| h.values.each { |a| a.each { |r| r.map!(&:x) }}}
53
51
  end
54
52
  end
55
53
  end
@@ -0,0 +1,23 @@
1
+ module Polynomials
2
+ module Plotable
3
+ def pointset(start,stop,step=0.1)
4
+ data = []
5
+ x = start
6
+ while x < stop
7
+ data << [x,self.(x)]
8
+ x += step
9
+ end
10
+ data << [stop,self.(stop)]
11
+ end
12
+
13
+ def grouped_pointset(start,stop,step=0.1,grouped)
14
+ Hash[grouped.map do |key,intervals|
15
+ intervals = intervals.reject { |s,e| e < start || s > stop }
16
+ intervals = intervals.map do |s,e|
17
+ self.pointset([s,start].max, [e,stop].min, step)
18
+ end
19
+ [key,intervals]
20
+ end]
21
+ end
22
+ end
23
+ end
@@ -4,13 +4,14 @@ module Polynomials
4
4
  attr_accessor :x, :y
5
5
  alias to_f x
6
6
 
7
- def self.inherited(subclass)
8
- self.class_eval do
9
- define_method :"#{subclass.name.demodulize.underscore}?" do
10
- self.is_a? subclass
7
+ %w{Extremum Root InflectionPoint}.each do |special_point|
8
+ self.class_eval do
9
+ define_method :"#{special_point.underscore}?" do
10
+ self.is_a? Polynomials.const_get(special_point)
11
11
  end
12
12
  end
13
13
  end
14
+
14
15
  def initialize(x,y)
15
16
  @x,@y = x,y
16
17
  end
@@ -69,4 +70,12 @@ module Polynomials
69
70
 
70
71
  class InflectionPoint < Point
71
72
  end
73
+
74
+ [:maximum,:minimum].each do |kind_of_extremum|
75
+ const_set(kind_of_extremum.to_s.capitalize, Class.new(Extremum) do
76
+ def initialize(x,y)
77
+ super x,y,kind_of_extremum
78
+ end
79
+ end)
80
+ end
72
81
  end
@@ -1,6 +1,7 @@
1
1
  module Polynomials
2
2
  class Polynomial
3
3
  include Analyzable
4
+ include Plotable
4
5
 
5
6
  attr_accessor :terms
6
7
 
@@ -30,14 +31,13 @@ module Polynomials
30
31
  alias call calculate
31
32
 
32
33
  def derivative
33
- new_function = self.alter do |nf, term|
34
- (nf.terms[term.exponent - 1].coefficient += term.exponent * term.coefficient) unless term.exponent.zero?
34
+ new_function = self.alter do |new_function, term|
35
+ (new_function.terms[term.exponent - 1].coefficient += term.exponent * term.coefficient) unless term.exponent.zero?
35
36
  end
36
-
37
37
  end
38
38
 
39
39
  def roots
40
- if !terms.empty? and (terms.keys.none?(&:zero?) || terms[0].coefficient.zero?)
40
+ if terms[0].coefficient.zero? and !terms.values.map(&:coefficient).all?(&:zero?)
41
41
  self.alter { |nf, term| nf.terms[term.exponent-self.lt.exponent].coefficient = term.coefficient }.roots << Root.new(0.0)
42
42
  else
43
43
  case self.degree
@@ -67,36 +67,21 @@ module Polynomials
67
67
  end
68
68
 
69
69
  def ==(other)
70
- delete_zeros = proc{ |_,t| t.coefficient.zero? }
71
- self.terms.delete_if(&delete_zeros) == other.terms.delete_if(&delete_zeros)
70
+ check_if_zero = proc { |_,t| t.coefficient.zero? }
71
+ self.terms.delete_if(&check_if_zero) == other.terms.delete_if(&check_if_zero)
72
72
  end
73
73
 
74
+ # greatest term
74
75
  def gt
75
76
  self.terms[self.degree]
76
77
  end
77
78
 
79
+ # lowest term
78
80
  def lt
79
- self.terms[self.terms.reject { |_,t| t.coefficient.zero? }.min_by{ |_,t| t.exponent}.first]
80
- end
81
-
82
- def pointset(start,stop,step=0.1)
83
- data = []
84
- x = start
85
- while x < stop
86
- data << [x,self.(x)]
87
- x += step
88
- end
89
- data << [stop,self.(stop)]
90
- end
91
-
92
- def grouped_pointset(start,stop,step=0.1,grouped)
93
- Hash[grouped.map do |key,intervals|
94
- intervals = intervals.reject { |s,e| e < start || s > stop }
95
- intervals = intervals.map do |s,e|
96
- self.pointset([s,start].max, [e,stop].min, step)
97
- end
98
- [key,intervals]
99
- end]
81
+ self.terms[
82
+ self.terms.reject { |_,t| t.coefficient.zero? }
83
+ .min_by{ |_,t| t.exponent}.first
84
+ ]
100
85
  end
101
86
 
102
87
  def coefficients_till(n)
@@ -117,5 +102,4 @@ module Polynomials
117
102
  end
118
103
  protected :alter
119
104
  end
120
-
121
105
  end
data/polynomials.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{polynomials}
8
- s.version = "0.4.3"
8
+ s.version = "0.4.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Manuel Korfmann"]
12
- s.date = %q{2011-05-25}
12
+ s.date = %q{2011-06-30}
13
13
  s.description = %q{
14
14
  This is a gem dedicated to parsing, manipulating and finding roots,extrema and inflection points of polynomials.
15
15
  It can solve polynomial equations with a degree up to 4 by implementing formulas for solving quadratic, cubic and quartic functions.
@@ -33,6 +33,7 @@ It can solve polynomial equations with a degree up to 4 by implementing formulas
33
33
  "lib/polynomials/analyzable.rb",
34
34
  "lib/polynomials/exceptions.rb",
35
35
  "lib/polynomials/formulas.rb",
36
+ "lib/polynomials/plotable.rb",
36
37
  "lib/polynomials/point.rb",
37
38
  "lib/polynomials/polynomial.rb",
38
39
  "lib/polynomials/term.rb",
@@ -47,35 +48,31 @@ It can solve polynomial equations with a degree up to 4 by implementing formulas
47
48
  s.homepage = %q{http://github.com/mkorfmann/polynomials}
48
49
  s.licenses = ["MIT"]
49
50
  s.require_paths = ["lib"]
50
- s.rubygems_version = %q{1.3.7}
51
+ s.rubygems_version = %q{1.6.2}
51
52
  s.summary = %q{parsing and computing data on polynomials}
52
53
 
53
54
  if s.respond_to? :specification_version then
54
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
55
55
  s.specification_version = 3
56
56
 
57
57
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
58
58
  s.add_runtime_dependency(%q<activesupport>, [">= 0"])
59
59
  s.add_runtime_dependency(%q<i18n>, [">= 0"])
60
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
60
+ s.add_development_dependency(%q<rake>, [">= 0"])
61
61
  s.add_development_dependency(%q<jeweler>, ["~> 1.6.0"])
62
62
  s.add_development_dependency(%q<simplecov>, [">= 0"])
63
- s.add_development_dependency(%q<awesome_print>, [">= 0"])
64
63
  else
65
64
  s.add_dependency(%q<activesupport>, [">= 0"])
66
65
  s.add_dependency(%q<i18n>, [">= 0"])
67
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
66
+ s.add_dependency(%q<rake>, [">= 0"])
68
67
  s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
69
68
  s.add_dependency(%q<simplecov>, [">= 0"])
70
- s.add_dependency(%q<awesome_print>, [">= 0"])
71
69
  end
72
70
  else
73
71
  s.add_dependency(%q<activesupport>, [">= 0"])
74
72
  s.add_dependency(%q<i18n>, [">= 0"])
75
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
73
+ s.add_dependency(%q<rake>, [">= 0"])
76
74
  s.add_dependency(%q<jeweler>, ["~> 1.6.0"])
77
75
  s.add_dependency(%q<simplecov>, [">= 0"])
78
- s.add_dependency(%q<awesome_print>, [">= 0"])
79
76
  end
80
77
  end
81
78
 
@@ -1,5 +1,4 @@
1
1
  require "#{File.dirname(File.expand_path(__FILE__))}/test_helper"
2
- Infinity = 1.0/0
3
2
  class TestAnalyzable < MiniTest::Unit::TestCase
4
3
  include Polynomials
5
4
 
@@ -60,18 +59,18 @@ class TestAnalyzable < MiniTest::Unit::TestCase
60
59
 
61
60
  def test_strives_for
62
61
  polynomial = Polynomial.new(2,0,0)
63
- assert_equal [Infinity,Infinity], polynomial.strives_for
62
+ assert_equal [Maximum.new(-Infinity,Infinity),Maximum.new(Infinity,Infinity)], polynomial.strives_for
64
63
  polynomial = Polynomial.new(-2,0,0)
65
- assert_equal [-Infinity,-Infinity], polynomial.strives_for
64
+ assert_equal [Minimum.new(-Infinity,-Infinity),Minimum.new(Infinity,-Infinity)], polynomial.strives_for
66
65
  polynomial = Polynomial.new(2,0,0,0)
67
- assert_equal [-Infinity,Infinity], polynomial.strives_for
66
+ assert_equal [Minimum.new(-Infinity,-Infinity),Maximum.new(Infinity,Infinity)], polynomial.strives_for
68
67
  polynomial = Polynomial.new(-2,0,0,0)
69
- assert_equal [Infinity,-Infinity], polynomial.strives_for
68
+ assert_equal [Maximum.new(-Infinity,Infinity),Minimum.new(Infinity,-Infinity)], polynomial.strives_for
70
69
  polynomial = Polynomial.new(2)
71
70
  assert_equal nil, polynomial.strives_for
72
71
 
73
72
  polynomial = Polynomial.parse('+ 1.0 x^4 + 5.0 x^3 - 1.0 x^2 + 3.0 x + 5.0').derivative
74
- assert_equal [-Infinity,Infinity], polynomial.strives_for
73
+ assert_equal [Minimum.new(-Infinity,-Infinity),Maximum.new(Infinity,Infinity)], polynomial.strives_for
75
74
  end
76
75
 
77
76
  def test_inflection_points_some_coefficients_of_derivative2_zero
@@ -86,6 +85,6 @@ class TestAnalyzable < MiniTest::Unit::TestCase
86
85
 
87
86
  def test_strives_for_no_roots
88
87
  polynomial = Polynomial.new(1,0,0,0,0)
89
- assert_equal [Infinity,Infinity], polynomial.strives_for
88
+ assert_equal [Maximum.new(-Infinity,Infinity),Maximum.new(Infinity,Infinity)], polynomial.strives_for
90
89
  end
91
90
  end
@@ -95,4 +95,10 @@ class TestPolynomial < MiniTest::Unit::TestCase
95
95
  polynomial = Polynomial.parse('5x + 2')
96
96
  assert_equal 7, polynomial.(1)
97
97
  end
98
+
99
+ def test_constant_zero_polynomial
100
+ constant_function = Polynomial.new(0)
101
+ assert_equal Set[], constant_function.roots
102
+ assert_equal nil, constant_function.curvature_behaviour
103
+ end
98
104
  end
data/test/test_helper.rb CHANGED
@@ -1,6 +1,7 @@
1
- require 'awesome_print'
2
1
  require 'simplecov'
3
- SimpleCov.start
2
+ SimpleCov.start do
3
+ add_filter 'test'
4
+ end
4
5
  require 'minitest/autorun'
5
6
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
7
  $LOAD_PATH.unshift(File.dirname(__FILE__))
metadata CHANGED
@@ -1,12 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polynomials
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
5
- segments:
6
- - 0
7
- - 4
8
- - 3
9
- version: 0.4.3
4
+ prerelease:
5
+ version: 0.4.4
10
6
  platform: ruby
11
7
  authors:
12
8
  - Manuel Korfmann
@@ -14,7 +10,7 @@ autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
12
 
17
- date: 2011-05-25 00:00:00 +02:00
13
+ date: 2011-06-30 00:00:00 +02:00
18
14
  default_executable:
19
15
  dependencies:
20
16
  - !ruby/object:Gem::Dependency
@@ -24,8 +20,6 @@ dependencies:
24
20
  requirements:
25
21
  - - ">="
26
22
  - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
23
  version: "0"
30
24
  type: :runtime
31
25
  prerelease: false
@@ -37,24 +31,18 @@ dependencies:
37
31
  requirements:
38
32
  - - ">="
39
33
  - !ruby/object:Gem::Version
40
- segments:
41
- - 0
42
34
  version: "0"
43
35
  type: :runtime
44
36
  prerelease: false
45
37
  version_requirements: *id002
46
38
  - !ruby/object:Gem::Dependency
47
- name: bundler
39
+ name: rake
48
40
  requirement: &id003 !ruby/object:Gem::Requirement
49
41
  none: false
50
42
  requirements:
51
- - - ~>
43
+ - - ">="
52
44
  - !ruby/object:Gem::Version
53
- segments:
54
- - 1
55
- - 0
56
- - 0
57
- version: 1.0.0
45
+ version: "0"
58
46
  type: :development
59
47
  prerelease: false
60
48
  version_requirements: *id003
@@ -65,10 +53,6 @@ dependencies:
65
53
  requirements:
66
54
  - - ~>
67
55
  - !ruby/object:Gem::Version
68
- segments:
69
- - 1
70
- - 6
71
- - 0
72
56
  version: 1.6.0
73
57
  type: :development
74
58
  prerelease: false
@@ -80,25 +64,10 @@ dependencies:
80
64
  requirements:
81
65
  - - ">="
82
66
  - !ruby/object:Gem::Version
83
- segments:
84
- - 0
85
67
  version: "0"
86
68
  type: :development
87
69
  prerelease: false
88
70
  version_requirements: *id005
89
- - !ruby/object:Gem::Dependency
90
- name: awesome_print
91
- requirement: &id006 !ruby/object:Gem::Requirement
92
- none: false
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- segments:
97
- - 0
98
- version: "0"
99
- type: :development
100
- prerelease: false
101
- version_requirements: *id006
102
71
  description: "\n\
103
72
  This is a gem dedicated to parsing, manipulating and finding roots,extrema and inflection points of polynomials.\n\
104
73
  It can solve polynomial equations with a degree up to 4 by implementing formulas for solving quadratic, cubic and quartic functions.\n "
@@ -124,6 +93,7 @@ files:
124
93
  - lib/polynomials/analyzable.rb
125
94
  - lib/polynomials/exceptions.rb
126
95
  - lib/polynomials/formulas.rb
96
+ - lib/polynomials/plotable.rb
127
97
  - lib/polynomials/point.rb
128
98
  - lib/polynomials/polynomial.rb
129
99
  - lib/polynomials/term.rb
@@ -148,7 +118,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
148
118
  requirements:
149
119
  - - ">="
150
120
  - !ruby/object:Gem::Version
151
- hash: 2798926848061420980
121
+ hash: 3457251127404448824
152
122
  segments:
153
123
  - 0
154
124
  version: "0"
@@ -157,13 +127,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
157
127
  requirements:
158
128
  - - ">="
159
129
  - !ruby/object:Gem::Version
160
- segments:
161
- - 0
162
130
  version: "0"
163
131
  requirements: []
164
132
 
165
133
  rubyforge_project:
166
- rubygems_version: 1.3.7
134
+ rubygems_version: 1.6.2
167
135
  signing_key:
168
136
  specification_version: 3
169
137
  summary: parsing and computing data on polynomials