polynomials 0.1.7 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.7
1
+ 0.2.0
data/lib/polynomials.rb CHANGED
@@ -19,8 +19,13 @@ class Polynomial
19
19
  return polynomial
20
20
  end
21
21
 
22
- def initialize
22
+ def initialize(*args)
23
23
  self.terms = Hash.new { |hash, key| hash[key] = Term.new(key) }
24
+ unless args.empty?
25
+ args.reverse.each.with_index do |coefficient,exponent|
26
+ self.terms[exponent].coefficient += coefficient
27
+ end
28
+ end
24
29
  end
25
30
 
26
31
  def calculate(x)
@@ -30,16 +35,16 @@ class Polynomial
30
35
  end
31
36
 
32
37
  def derivative
33
- new_function = self.alter do |nf, term|
34
- nf.terms[term.exponent - 1].coefficient += term.exponent * term.coefficient
35
- end
36
- new_function.terms.reject! { |_,t| t.coefficient == 0 }
38
+ new_function = self.alter do |nf, term|
39
+ nf.terms[term.exponent - 1].coefficient += term.exponent * term.coefficient
40
+ end
41
+ new_function.terms.reject! { |_,t| t.coefficient == 0 }
37
42
  return new_function
38
43
  end
39
44
 
40
45
  def roots
41
46
  if !terms.empty? and terms.keys.none?(&:zero?)
42
- self.alter { |nf, term| nf.terms[term.exponent-1].coefficient = term.coefficient }.roots << 0.0
47
+ self.alter { |nf, term| nf.terms[term.exponent-self.lt.exponent].coefficient = term.coefficient }.roots << 0.0
43
48
  else
44
49
  case self.degree
45
50
  when 1
@@ -67,9 +72,9 @@ class Polynomial
67
72
 
68
73
  possible_extrema.zip(samples.each_cons(2)).each do |pe,(after,before)|
69
74
  yafter = derivative.calculate(after)
70
- ybefore = derivative.calculate(before)
71
- kind_of_extremum = NegPosMinMaxExtremumMapping[[yafter/yafter.abs,ybefore/ybefore.abs]]
72
- max_min_extremum[kind_of_extremum] << pe if kind_of_extremum
75
+ ybefore = derivative.calculate(before)
76
+ kind_of_extremum = NegPosMinMaxExtremumMapping[[yafter/yafter.abs,ybefore/ybefore.abs]]
77
+ max_min_extremum[kind_of_extremum] << pe if kind_of_extremum
73
78
  end
74
79
  end
75
80
  return max_min_extremum
@@ -77,11 +82,11 @@ class Polynomial
77
82
 
78
83
  def curvature_behaviour
79
84
  hash = Hash.new {|h,k|h[k]=Set.new}
85
+ return hash if self.degree > 5
80
86
  extrema = self.derivative.extrema
81
- extrema.values.inject(Set[],&:|).sort.each_cons(2).inject(hash) do |curvature_behaviour,(start_point,end_point)|
82
- kind_of_curvature = AfterextremaCurvatureMapping[extrema.find { |k,v| v.include?(start_point) }.first]
83
- curvature_behaviour[kind_of_curvature] << Range.new(start_point,end_point)
84
- curvature_behaviour
87
+ all_extremas = extrema.values.inject(Set[],&:|).sort
88
+ all_extremas.each_cons(2).map { |s,e| Range.new(s,e) }.group_by do |range|
89
+ kind_of_curvature = AfterextremaCurvatureMapping[extrema.find { |k,v| v.include?(range.begin) }.first]
85
90
  end
86
91
  end
87
92
 
@@ -90,9 +95,10 @@ class Polynomial
90
95
  end
91
96
 
92
97
  def to_s
93
- terms.delete_if { |_,t| t.coefficient.zero? }.sort_by { |_,t| -t.exponent }.inject("") do |string,(_,term)|
94
- string << term.to_s
95
- end.strip
98
+ terms.sort_by { |_,t| -t.exponent }.inject("") do |string,(_,term)|
99
+ string << term.to_s unless term.coefficient.zero? && !term.exponent.zero?
100
+ string
101
+ end.strip.sub(/\A\+\s/, '')
96
102
  end
97
103
 
98
104
  def ==(other)
@@ -102,16 +108,22 @@ class Polynomial
102
108
 
103
109
  def extrema
104
110
  extrema = local_extrema
105
- a = self.terms[self.degree].coefficient
106
111
  unless self.degree == 0
107
- max_or_min = (self.degree.even? ? [1,1] : [-1,1]).map { |n| (n * a)/a.abs }
112
+ a = self.gt.coefficient
113
+ max_or_min = (self.degree.even? ? [1.0,1.0] : [-1.0,1.0]).map { |n| (n * a)/a.abs }
108
114
  extrema[MinMaxMapping[max_or_min.first]] << -1.0/0
109
115
  extrema[MinMaxMapping[max_or_min.last]] << 1.0/0
110
116
  end
111
117
  return extrema
112
118
  end
113
119
 
114
- private
120
+ def gt
121
+ self.terms[self.degree]
122
+ end
123
+
124
+ def lt
125
+ self.terms[self.terms.min_by{ |_,t| t.exponent}.first]
126
+ end
115
127
 
116
128
  def coefficients_till(n)
117
129
  coefficients = []
@@ -120,8 +132,7 @@ class Polynomial
120
132
  end
121
133
  return coefficients.reverse
122
134
  end
123
-
124
- protected
135
+ private :coefficients_till
125
136
 
126
137
  def alter
127
138
  new_function = self.class.new
@@ -130,4 +141,5 @@ class Polynomial
130
141
  end
131
142
  return new_function
132
143
  end
144
+ protected :alter
133
145
  end
data/lib/term.rb CHANGED
@@ -1,3 +1,4 @@
1
+ class NotParsableError < ArgumentError;end
1
2
  class Term
2
3
  attr_accessor :coefficient, :exponent
3
4
 
@@ -7,16 +8,30 @@ class Term
7
8
 
8
9
  def self.parse(string)
9
10
  term = self.new
10
- float = /\d*(?:\.\d*)?/
11
- integer = /\d*/
12
- raw_data = string.match(/(?<algebraic_sign>[-+]?)\s*(?<coefficient>#{float})?\s*(?<power>x.*)?\s*\Z/)
13
- term.coefficient = (raw_data[:algebraic_sign] + (!raw_data[:coefficient].empty? ? raw_data[:coefficient] : "1")).to_f
14
- term.exponent = (raw_data[:power] ? (raw_data[:power] =~ /x\^(#{integer})/ ? $1.to_i : 1) : 0)
11
+ float = /\d+(?:\.\d+)?/
12
+ integer = /\d+/
13
+ polynomial_regex = /
14
+ \A\s*
15
+ (?<algebraic_sign>[-+]?)
16
+ \s*
17
+ (?<coefficient>#{float})?
18
+ \s*
19
+ (?<power>x(?:\^(?<exponent>#{integer}))?)?
20
+ \s*\Z
21
+ /x
22
+
23
+ raw_data = string.match(polynomial_regex)
24
+ raise NotParsableError unless raw_data
25
+ term.coefficient = (raw_data[:algebraic_sign] + ( raw_data[:coefficient] || "1")).to_f
26
+ term.exponent = raw_data[:power] ? (raw_data[:exponent] || 1).to_i : 0
15
27
  term
16
28
  end
17
29
 
18
30
  def to_s
19
- "#{ (coefficient < 0) ? '-' : '+' } #{coefficient.abs} #{ "x#{"^#{exponent}" unless exponent == 1}" unless exponent.zero?} "
31
+ pretty_coeffiecent = coefficient.denominator == 1 ? coefficient.abs.to_i : coefficient.abs
32
+ algebraic_sign = coefficient < 0 ? '-' : '+'
33
+ power = "x#{"^#{exponent}" unless exponent == 1}"
34
+ "#{algebraic_sign} #{pretty_coeffiecent}#{ power unless exponent.zero?} "
20
35
  end
21
36
 
22
37
  def dup
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.1.7"
8
+ s.version = "0.2.0"
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-13}
12
+ s.date = %q{2011-05-14}
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.
@@ -31,7 +31,6 @@ It can solve polynomial equations with a degree up to 4 by implementing formulas
31
31
  "lib/polynomials.rb",
32
32
  "lib/term.rb",
33
33
  "polynomials.gemspec",
34
- "tags",
35
34
  "test/helper.rb",
36
35
  "test/math_test.rb",
37
36
  "test/polynomial_test.rb",
data/test/math_test.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'test_helper'
1
+ require_relative 'test_helper'
2
2
  class TestMath < MiniTest::Unit::TestCase
3
3
  def test_roots_for_constant_functions
4
4
  polynomial = Polynomial.parse('5')
@@ -1,9 +1,14 @@
1
1
  require_relative 'test_helper'
2
2
 
3
+ Infinity = 1.0/0
3
4
  class TestPolynomial < MiniTest::Unit::TestCase
4
5
  def test_to_s
5
6
  polynomial = Polynomial.parse('5x + 2x^2 + 20')
6
- assert_equal '+ 2.0 x^2 + 5.0 x + 20.0', polynomial.to_s
7
+ assert_equal '2x^2 + 5x + 20', polynomial.to_s
8
+ polynomial = Polynomial.parse('6.5435x^234 + 5.0 + 20x')
9
+ assert_equal '6.5435x^234 + 20x + 5', polynomial.to_s
10
+ polynomial = Polynomial.parse('0x^0')
11
+ assert_equal "0", polynomial.to_s
7
12
  end
8
13
 
9
14
  def test_derivative_of_linear_functions
@@ -58,13 +63,13 @@ class TestPolynomial < MiniTest::Unit::TestCase
58
63
 
59
64
  def test_no_inflection_points
60
65
  polynomial = Polynomial.parse('1 x^4')
61
- assert_equal({ left: Set[-1.0/0..+1.0/0] }, polynomial.curvature_behaviour)
66
+ assert_equal({ left: [-1.0/0..+1.0/0] }, polynomial.curvature_behaviour)
62
67
 
63
68
  polynomial = Polynomial.parse('-1 x^4')
64
- assert_equal({ right: Set[-1.0/0..+1.0/0] }, polynomial.curvature_behaviour)
69
+ assert_equal({ right: [-1.0/0..+1.0/0] }, polynomial.curvature_behaviour)
65
70
 
66
71
  polynomial = Polynomial.parse('5x^2')
67
- assert_equal({ left: Set[-1.0/0..+1.0/0] }, polynomial.curvature_behaviour)
72
+ assert_equal({ left: [-1.0/0..+1.0/0] }, polynomial.curvature_behaviour)
68
73
  end
69
74
 
70
75
  def test_no_extremums
@@ -72,7 +77,7 @@ class TestPolynomial < MiniTest::Unit::TestCase
72
77
  assert_equal({}, polynomial.extrema)
73
78
  end
74
79
 
75
- def test_no_curve_and_no_inflection_points
80
+ def test_no_curvature
76
81
  polynomials = []
77
82
  polynomials << Polynomial.parse('5 x + 4')
78
83
  polynomials << Polynomial.parse('4')
@@ -81,8 +86,39 @@ class TestPolynomial < MiniTest::Unit::TestCase
81
86
  end
82
87
  end
83
88
 
89
+ def test_local_extrema_of_derivative_leads_to_no_curvature
90
+ polynomial = Polynomial.parse('50x^10 - 20x^2')
91
+ assert_equal({}, polynomial.curvature_behaviour)
92
+ end
93
+
84
94
  def test_two_inflection_points
85
95
  polynomial = Polynomial.parse('+ 1.0 x^4 + 5.0 x^3 - 1.0 x^2 + 3.0 x + 5.0')
86
- assert_equal({left:Set[-1.0/0..-2.5649778198, 0.0649778198..1.0/0], right: Set[-2.5649778198..0.0649778198] } , polynomial.curvature_behaviour)
96
+ assert_equal({left:[-1.0/0..-2.5649778198, 0.0649778198..1.0/0], right: [-2.5649778198..0.0649778198] } , polynomial.curvature_behaviour)
97
+ end
98
+
99
+ def test_three_inflection_points
100
+ polynomial = Polynomial.new(20,4,0,-1,-200)
101
+ assert_equal( {:right=>[(-1/10)..0.0], :left=>[-Infinity..(-1/10), 0.0..Infinity]}, polynomial.curvature_behaviour)
102
+ end
103
+
104
+
105
+ def test_efficient_roots_calculation
106
+ polynomial = Polynomial.parse('200x^2342435 + 6x^20')
107
+ assert_equal(Set[0.0], polynomial.roots)
108
+ end
109
+
110
+ def test_lt
111
+ polynomial = Polynomial.parse('1x^2342435 + 5x')
112
+ assert_euqal Term.new(5,1), polynomial.lt
113
+ end
114
+
115
+ def test_lt
116
+ polynomial = Polynomial.parse('1x^2342435 + 5x')
117
+ assert_equal Term.new(2342435,1), polynomial.gt
118
+ end
119
+
120
+ def test_initalizer
121
+ polynomial = Polynomial.new(5,0,2,-1)
122
+ assert_equal '5x^3 + 2x - 1', polynomial.to_s
87
123
  end
88
124
  end
data/test/term_test.rb CHANGED
@@ -24,4 +24,16 @@ class TestTerm < MiniTest::Unit::TestCase
24
24
  assert_equal 6, Term.parse('6').coefficient
25
25
  assert_equal 0, Term.parse('6').exponent
26
26
  end
27
+
28
+ def test_invalid_string_raises_not_parsable_error
29
+ ['6x^ -5', '6^20', '2 2', 'xx', '2 ^ x'].each do |not_parsable_string|
30
+ assert_raises NotParsableError do
31
+ term = Term.parse not_parsable_string
32
+ end
33
+ end
34
+ end
35
+
36
+ def testing_to_s
37
+ assert_equal "+ 6 ", Term.parse('6').to_s
38
+ end
27
39
  end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 1
8
- - 7
9
- version: 0.1.7
7
+ - 2
8
+ - 0
9
+ version: 0.2.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Manuel Korfmann
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-05-13 00:00:00 +02:00
17
+ date: 2011-05-14 00:00:00 +02:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
@@ -96,7 +96,6 @@ files:
96
96
  - lib/polynomials.rb
97
97
  - lib/term.rb
98
98
  - polynomials.gemspec
99
- - tags
100
99
  - test/helper.rb
101
100
  - test/math_test.rb
102
101
  - test/polynomial_test.rb
@@ -116,7 +115,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
116
115
  requirements:
117
116
  - - ">="
118
117
  - !ruby/object:Gem::Version
119
- hash: -2463697157255217048
118
+ hash: -2290630464224354984
120
119
  segments:
121
120
  - 0
122
121
  version: "0"
data/tags DELETED
@@ -1,91 +0,0 @@
1
- !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
2
- !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
3
- !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
4
- !_TAG_PROGRAM_NAME Exuberant Ctags //
5
- !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
6
- !_TAG_PROGRAM_VERSION 5.8 //
7
- == lib/polynomials.rb /^ def ==(other)$/;" f class:Polynomial
8
- == lib/term.rb /^ def ==(other)$/;" f class:Term
9
- AfterExtremumsCurvatureMapping rdoc/Polynomial.html /^ <dt><a name="AfterExtremumsCurvatureMapping">AfterExtremumsCurvatureMapping<\/a><\/dt>$/;" a
10
- Math lib/core_ext/math.rb /^module Math$/;" m
11
- MinMaxMapping rdoc/Polynomial.html /^ <dt><a name="MinMaxMapping">MinMaxMapping<\/a><\/dt>$/;" a
12
- NegPosMinMaxExtremumMapping rdoc/Polynomial.html /^ <dt><a name="NegPosMinMaxExtremumMapping">NegPosMinMaxExtremumMapping<\/a><\/dt>$/;" a
13
- Polynomial lib/polynomials.rb /^class Polynomial$/;" c
14
- Term lib/term.rb /^class Term$/;" c
15
- Test test/helper.rb /^class Test::Unit::TestCase$/;" c
16
- TestMath test/math_test.rb /^class TestMath < MiniTest::Unit::TestCase$/;" c
17
- TestPolynomial test/polynomial_test.rb /^class TestPolynomial < MiniTest::Unit::TestCase$/;" c
18
- TestTerm test/term_test.rb /^class TestTerm < MiniTest::Unit::TestCase$/;" c
19
- alter lib/polynomials.rb /^ def alter$/;" f class:Polynomial
20
- calculate lib/polynomials.rb /^ def calculate(x)$/;" f class:Polynomial
21
- coefficient rdoc/Term.html /^ <a name="coefficient"><\/a>$/;" a
22
- coefficient= rdoc/Term.html /^ <a name="coefficient="><\/a>$/;" a
23
- coefficients_till lib/polynomials.rb /^ def coefficients_till(n)$/;" f class:Polynomial
24
- curvature_behaviour lib/polynomials.rb /^ def curvature_behaviour$/;" f class:Polynomial
25
- degree lib/polynomials.rb /^ def degree$/;" f class:Polynomial
26
- derivative lib/polynomials.rb /^ def derivative$/;" f class:Polynomial
27
- dup lib/term.rb /^ def dup$/;" f class:Term
28
- exponent rdoc/Term.html /^ <a name="exponent"><\/a>$/;" a
29
- exponent= rdoc/Term.html /^ <a name="exponent="><\/a>$/;" a
30
- extrema lib/polynomials.rb /^ def extrema$/;" f class:Polynomial
31
- initialize lib/polynomials.rb /^ def initialize$/;" f class:Polynomial
32
- initialize lib/term.rb /^ def initialize(exponent = 0, coefficient = 0)$/;" f class:Term
33
- local_extrema lib/polynomials.rb /^ def local_extrema$/;" f class:Polynomial
34
- method-c-new rdoc/Polynomial.html /^ <a name="method-c-new"><\/a>$/;" a
35
- method-c-new rdoc/Term.html /^ <a name="method-c-new"><\/a>$/;" a
36
- method-c-parse rdoc/Polynomial.html /^ <a name="method-c-parse"><\/a>$/;" a
37
- method-c-parse rdoc/Term.html /^ <a name="method-c-parse"><\/a>$/;" a
38
- method-c-roots_of_cubic_function rdoc/Math.html /^ <a name="method-c-roots_of_cubic_function"><\/a>$/;" a
39
- method-c-roots_of_quadratic_function rdoc/Math.html /^ <a name="method-c-roots_of_quadratic_function"><\/a>$/;" a
40
- method-c-roots_of_quartic_function rdoc/Math.html /^ <a name="method-c-roots_of_quartic_function"><\/a>$/;" a
41
- method-i-%3D%3D rdoc/Polynomial.html /^ <a name="method-i-%3D%3D"><\/a>$/;" a
42
- method-i-%3D%3D rdoc/Term.html /^ <a name="method-i-%3D%3D"><\/a>$/;" a
43
- method-i-alter rdoc/Polynomial.html /^ <a name="method-i-alter"><\/a>$/;" a
44
- method-i-calculate rdoc/Polynomial.html /^ <a name="method-i-calculate"><\/a>$/;" a
45
- method-i-coefficients_till rdoc/Polynomial.html /^ <a name="method-i-coefficients_till"><\/a>$/;" a
46
- method-i-curvature_behaviour rdoc/Polynomial.html /^ <a name="method-i-curvature_behaviour"><\/a>$/;" a
47
- method-i-degree rdoc/Polynomial.html /^ <a name="method-i-degree"><\/a>$/;" a
48
- method-i-derivative rdoc/Polynomial.html /^ <a name="method-i-derivative"><\/a>$/;" a
49
- method-i-dup rdoc/Term.html /^ <a name="method-i-dup"><\/a>$/;" a
50
- method-i-extremums rdoc/Polynomial.html /^ <a name="method-i-extremums"><\/a>$/;" a
51
- method-i-local_extremums rdoc/Polynomial.html /^ <a name="method-i-local_extremums"><\/a>$/;" a
52
- method-i-nulls rdoc/Polynomial.html /^ <a name="method-i-nulls"><\/a>$/;" a
53
- method-i-to_s rdoc/Polynomial.html /^ <a name="method-i-to_s"><\/a>$/;" a
54
- method-i-to_s rdoc/Term.html /^ <a name="method-i-to_s"><\/a>$/;" a
55
- parse lib/polynomials.rb /^ def self.parse(string)$/;" F class:Polynomial
56
- parse lib/term.rb /^ def self.parse(string)$/;" F class:Term
57
- roots lib/polynomials.rb /^ def roots$/;" f class:Polynomial
58
- roots_of_cubic_function lib/core_ext/math.rb /^ def self.roots_of_cubic_function(a,b,c,d,with_complex = false)$/;" F class:Math
59
- roots_of_quadratic_function lib/core_ext/math.rb /^ def self.roots_of_quadratic_function(a,b,c)$/;" F class:Math.roots_of_cubic_function
60
- roots_of_quartic_function lib/core_ext/math.rb /^ def self.roots_of_quartic_function(*args)$/;" F class:Math.roots_of_cubic_function
61
- terms rdoc/Polynomial.html /^ <a name="terms"><\/a>$/;" a
62
- terms= rdoc/Polynomial.html /^ <a name="terms="><\/a>$/;" a
63
- test_calculation test/polynomial_test.rb /^ def test_calculation$/;" f class:TestPolynomial
64
- test_degree test/polynomial_test.rb /^ def test_degree$/;" f class:TestPolynomial
65
- test_derivative_functions_with_higher_degree test/polynomial_test.rb /^ def test_derivative_functions_with_higher_degree$/;" f class:TestPolynomial
66
- test_derivative_of_linear_functions test/polynomial_test.rb /^ def test_derivative_of_linear_functions$/;" f class:TestPolynomial
67
- test_equality test/polynomial_test.rb /^ def test_equality$/;" f class:TestPolynomial
68
- test_extrema test/polynomial_test.rb /^ def test_extrema$/;" f class:TestPolynomial
69
- test_extrema_with_slope_of_derivative_equal_to_zero test/polynomial_test.rb /^ def test_extrema_with_slope_of_derivative_equal_to_zero$/;" f class:TestPolynomial
70
- test_initializer test/term_test.rb /^ def test_initializer$/;" f class:TestTerm
71
- test_no_curve_and_no_inflection_points test/polynomial_test.rb /^ def test_no_curve_and_no_inflection_points$/;" f class:TestPolynomial
72
- test_no_inflection_points test/polynomial_test.rb /^ def test_no_inflection_points$/;" f class:TestPolynomial
73
- test_no_local_extrema test/polynomial_test.rb /^ def test_no_local_extrema$/;" f class:TestPolynomial
74
- test_parsing test/polynomial_test.rb /^ def test_parsing$/;" f class:TestPolynomial
75
- test_parsing_variable_omitted test/term_test.rb /^ def test_parsing_variable_omitted$/;" f class:TestTerm
76
- test_parsing_with_default_coefficient_equal_to_one test/term_test.rb /^ def test_parsing_with_default_coefficient_equal_to_one$/;" f class:TestTerm
77
- test_parsing_with_default_exponent_equal_to_one test/term_test.rb /^ def test_parsing_with_default_exponent_equal_to_one$/;" f class:TestTerm
78
- test_parsing_with_standard_format test/term_test.rb /^ def test_parsing_with_standard_format$/;" f class:TestTerm
79
- test_roots_biquadratic_equation test/math_test.rb /^ def test_roots_biquadratic_equation$/;" f class:TestMath
80
- test_roots_for_constant_functions test/math_test.rb /^ def test_roots_for_constant_functions$/;" f class:TestMath
81
- test_roots_for_cubic_functions test/math_test.rb /^ def test_roots_for_cubic_functions$/;" f class:TestMath
82
- test_roots_for_cubic_functions_one_real_all_equal test/math_test.rb /^ def test_roots_for_cubic_functions_one_real_all_equal$/;" f class:TestMath
83
- test_roots_for_cubic_functions_with_complex test/math_test.rb /^ def test_roots_for_cubic_functions_with_complex$/;" f class:TestMath
84
- test_roots_for_linear_functions test/math_test.rb /^ def test_roots_for_linear_functions$/;" f class:TestMath
85
- test_roots_for_quartic_functions test/math_test.rb /^ def test_roots_for_quartic_functions$/;" f class:TestMath
86
- test_roots_quadratic_functions test/math_test.rb /^ def test_roots_quadratic_functions$/;" f class:TestMath
87
- test_roots_without_term_with_exponent_of_zero test/math_test.rb /^ def test_roots_without_term_with_exponent_of_zero$/;" f class:TestMath
88
- test_to_s test/polynomial_test.rb /^ def test_to_s$/;" f class:TestPolynomial
89
- test_two_inflection_points test/polynomial_test.rb /^ def test_two_inflection_points$/;" f class:TestPolynomial
90
- to_s lib/polynomials.rb /^ def to_s$/;" f class:Polynomial
91
- to_s lib/term.rb /^ def to_s$/;" f class:Term