dydx 0.1.29 → 0.1.31

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6e4de7f815619a3ce01c34bc76a405749bd71f3b
4
+ data.tar.gz: 957aef1d10863b8fbacf8d142c5a8fd71d9c77e5
5
+ SHA512:
6
+ metadata.gz: 5236b464cc82383856640addf8bf5c0f725e68648282278195ac839050df72b35e65e444c15dbbd657b20a05dcb0fdf9df8046d123e735198dee306f764f8b07
7
+ data.tar.gz: a26cc47a1cb5be11eecb54c7358122dcd9d556644bda14a3a01e222db53779320736a9557036e9af9d967abfb37714f7019e559495bbb49e024f82bad9d5d20a
data/.pryrc ADDED
@@ -0,0 +1,2 @@
1
+ require 'dydx'
2
+ include Dydx
data/Gemfile CHANGED
@@ -2,4 +2,6 @@ source 'https://rubygems.org'
2
2
 
3
3
  # Specify your gem's dependencies in dydx.gemspec
4
4
  gem 'pry'
5
+ gem 'pry-coolline'
6
+ # gem 'pry-debugger'
5
7
  gemspec
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Dydx is new math DSL in Ruby
1
+ # Dydx is new MATH Language on Ruby.
2
2
 
3
3
  ### Since you report a bug, I will fix it within 24 hours.
4
4
 
@@ -8,6 +8,8 @@ we can handle math in the same sense sense of the math on paper.
8
8
 
9
9
  ex. limit, trigonometric functions and logarithmic.
10
10
 
11
+ ## We should enjoy MATH even using PC.
12
+ (to say nothing of using pen.)
11
13
 
12
14
  After `inlcude Dydx` , ruby become like other language.
13
15
 
@@ -25,7 +27,7 @@ f(3)
25
27
  f(x).to_s
26
28
  => "( x ^ 2 )"
27
29
 
28
- f(x) == eval('f(x).to_s')
30
+ f(x) == eval(f(x).to_s)
29
31
  => true
30
32
 
31
33
  # Differentiate
@@ -61,12 +63,12 @@ S(f(z), dz)[0,1]
61
63
 
62
64
  f(x) <= sin(x)
63
65
  S(f(x), dx)[0, Math::PI/2]
64
- => 1.000000000021139
66
+ => 1.0
65
67
 
66
68
  # standard normal distribution;
67
69
  f(x) <= (1.0 / ( ( 2.0 * pi ) ^ 0.5 ) ) * ( e ^ (- (x ^ 2) / 2) )
68
70
  S(f(x), dx)[-oo, oo]
69
- => 0.9952054164466917
71
+ => 1.0
70
72
  ```
71
73
 
72
74
  #### it's like a magic...
@@ -77,7 +79,7 @@ f(x) <= x ^ 2
77
79
  f(a + b).to_s
78
80
  => "( ( a + b ) ^ 2 )"
79
81
 
80
- #↓it"s magic!!!
82
+ #↓it's like a magic!!!
81
83
  g(a, b) <= f(a + b)
82
84
 
83
85
  g(a, b).to_s
@@ -156,6 +158,6 @@ Or install it yourself as:
156
158
  run `bundle exec rake spec`
157
159
 
158
160
  ```
159
- Finished in 3.23 seconds
160
- 309 examples, 0 failures
161
+ Finished in 3.76 seconds
162
+ 325 examples, 0 failures
161
163
  ```
data/lib/dydx.rb CHANGED
@@ -6,33 +6,18 @@ require 'dydx/integrand'
6
6
 
7
7
  module Dydx
8
8
  include Algebra
9
- # TODO: Refactor
10
9
  %w(f g h).each do |functioner|
11
10
  define_method(functioner) do |*vars|
12
- if function = eval("$#{functioner}")
13
- raise ArgumentError, "invalid number of values (#{vars.count} for #{function.vars.count})" unless function.vars.count == vars.count
14
- return function if function.vars == vars
15
- if function.algebra
16
- if vars.all?{|v| v.is_a?(Numeric)}
17
- string = function.algebra.to_s
18
- .gsub('cos', 'Math.cos')
19
- .gsub('sin', 'Math.sin')
20
- .gsub('log', 'Math.log')
21
- .gsub('e', 'Math::E')
22
- .gsub('pi', 'Math::PI')
23
- else
24
- string = function.algebra.to_s
25
- end
26
- function.vars.each_with_index do |var, i|
27
- string.gsub!(var.to_s, vars[i].to_s)
28
- end
29
- eval(string)
30
- else
31
- function
32
- end
33
- else
34
- eval("$#{functioner} = Function.new(*vars)")
35
- end
11
+ function = eval("$#{functioner}")
12
+ return eval("$#{functioner} = Function.new(*vars)") unless function
13
+
14
+ raise ArgumentError, "invalid number of values (#{vars.count} for #{function.vars.count})" unless function.vars.count == vars.count
15
+ return function if function.vars == vars
16
+ return function unless function.algebra
17
+
18
+ string = substitute(vars, function)
19
+ string = rename_for_calc(string) if all_vars_num?(vars)
20
+ eval(string)
36
21
  end
37
22
  end
38
23
 
@@ -58,4 +43,26 @@ module Dydx
58
43
  super
59
44
  end
60
45
  end
46
+
47
+ private
48
+
49
+ def substitute(vars, function)
50
+ string = function.algebra.to_s
51
+ function.vars.each_with_index { |var, i| string.gsub!(var.to_s, vars[i].to_s) }
52
+ string
53
+ end
54
+
55
+ def all_vars_num?(vars)
56
+ vars.all? { |v| v.is_a?(Numeric) }
57
+ end
58
+
59
+ def rename_for_calc(string)
60
+ # TODO: need more refactoring...
61
+ string.gsub!('cos', 'Math.cos')
62
+ string.gsub!('sin', 'Math.sin')
63
+ string.gsub!('log', 'Math.log')
64
+ string.gsub!(' e ', ' Math::E ')
65
+ string.gsub!('pi', 'Math::PI')
66
+ string
67
+ end
61
68
  end
data/lib/dydx/algebra.rb CHANGED
@@ -1,20 +1,13 @@
1
+ require 'dydx/algebra/set'
2
+ require 'dydx/algebra/operator'
1
3
  require 'dydx/algebra/formula'
2
4
  require 'dydx/algebra/inverse'
3
5
 
4
- require 'dydx/algebra/set'
5
-
6
- require 'dydx/algebra/operator/inverse'
7
- require 'dydx/algebra/operator/formula'
8
- require 'dydx/algebra/operator/symbol'
9
- require 'dydx/algebra/operator/num'
10
- require 'dydx/algebra/operator/general'
11
-
12
6
  module Dydx
13
7
  module Algebra
14
8
  include Set
15
9
  module Set
16
10
  # TODO: Refactor
17
- Symbol.class_eval{ include Operator::Symbol }
18
11
  Fixnum.class_eval do
19
12
  alias_method :addition, :+
20
13
  alias_method :subtraction, :-
@@ -68,10 +61,13 @@ module Dydx
68
61
  end
69
62
  end
70
63
  end
64
+ Symbol.class_eval{ include Operator::General }
71
65
  class Num; include Operator::Num; end
72
66
  class E; include Operator::General; end
73
67
  class Pi; include Operator::General; end
74
68
  class Log; include Operator::General; end
69
+ class Log2; include Operator::General; end
70
+ class Log10; include Operator::General; end
75
71
  class Sin; include Operator::General; end
76
72
  class Cos; include Operator::General; end
77
73
  class Tan; include Operator::General; end
@@ -0,0 +1,5 @@
1
+ require 'dydx/algebra/operator/parts'
2
+ require 'dydx/algebra/operator/inverse'
3
+ require 'dydx/algebra/operator/formula'
4
+ require 'dydx/algebra/operator/num'
5
+ require 'dydx/algebra/operator/general'
@@ -1,6 +1,3 @@
1
- require 'dydx/algebra/operator/common_parts'
2
- require 'dydx/algebra/operator/parts/formula'
3
-
4
1
  module Dydx
5
2
  module Algebra
6
3
  module Operator
@@ -1,6 +1,3 @@
1
- require 'dydx/algebra/operator/common_parts'
2
- require 'dydx/algebra/operator/parts/general'
3
-
4
1
  module Dydx
5
2
  module Algebra
6
3
  module Operator
@@ -1,6 +1,3 @@
1
- require 'dydx/algebra/operator/common_parts'
2
- require 'dydx/algebra/operator/parts/inverse'
3
-
4
1
  module Dydx
5
2
  module Algebra
6
3
  module Operator
@@ -1,6 +1,3 @@
1
- require 'dydx/algebra/operator/common_parts'
2
- require 'dydx/algebra/operator/parts/num'
3
-
4
1
  module Dydx
5
2
  module Algebra
6
3
  module Operator
@@ -1,3 +1,6 @@
1
1
  require 'dydx/algebra/operator/parts/base'
2
2
  require 'dydx/algebra/operator/parts/general'
3
3
  require 'dydx/algebra/operator/parts/interface'
4
+ require 'dydx/algebra/operator/parts/formula'
5
+ require 'dydx/algebra/operator/parts/inverse'
6
+ require 'dydx/algebra/operator/parts/num'
@@ -13,36 +13,36 @@ module Dydx
13
13
  else
14
14
  super(x)
15
15
  end
16
- elsif formula?(sub_ope(operator)) && openable?(operator, x)
17
- f.send(operator, x).send(sub_ope(operator), g.send(operator, x))
18
- elsif formula?(super_ope(operator)) && x.formula?(super_ope(operator))
16
+ elsif formula?(operator.sub) && openable?(operator, x)
17
+ f.send(operator, x).send(operator.sub, g.send(operator, x))
18
+ elsif formula?(operator.super) && x.formula?(operator.super)
19
19
  w1, w2 = common_factors(x)
20
- return super(x) unless (w1 && w2) && (super_ope(operator).commutative? || w1 == w2)
20
+ return super(x) unless (w1 && w2) && (operator.super.commutative? || w1 == w2)
21
21
 
22
22
  case operator
23
23
  when :+
24
- send(w1).send(super_ope(operator), send(rest(w1)).send(operator, x.send(rest(w2))))
24
+ send(w1).send(operator.super, send(rest(w1)).send(operator, x.send(rest(w2))))
25
25
  when :*
26
26
  case w1
27
27
  when :f
28
- send(w1).send(super_ope(operator), send(rest(w1)).send(sub_ope(operator), x.send(rest(w2))))
28
+ send(w1).send(operator.super, send(rest(w1)).send(operator.sub, x.send(rest(w2))))
29
29
  when :g
30
- send(w1).send(super_ope(operator), send(rest(w1)).send(operator, x.send(rest(w2)))).commutate!
30
+ send(w1).send(operator.super, send(rest(w1)).send(operator, x.send(rest(w2)))).commutate!
31
31
  end
32
32
  end
33
- elsif formula?(super_ope(operator)) && x.inverse?(operator) && x.x.formula?(super_ope(operator))
33
+ elsif formula?(operator.super) && x.inverse?(operator) && x.x.formula?(operator.super)
34
34
  w1, w2 = common_factors(x.x)
35
- return super(x) unless (w1 && w2) && (super_ope(operator).commutative? || w1 == w2)
35
+ return super(x) unless (w1 && w2) && (operator.super.commutative? || w1 == w2)
36
36
 
37
37
  case operator
38
38
  when :+
39
- send(w1).send(super_ope(operator), send(rest(w1)).send(inverse_ope(operator), x.x.send(rest(w2))))
39
+ send(w1).send(operator.super, send(rest(w1)).send(inverse_ope(operator), x.x.send(rest(w2))))
40
40
  when :*
41
41
  case w1
42
42
  when :f
43
- send(w1).send(super_ope(operator), send(rest(w1)).send(inverse_ope(sub_ope(operator)), x.x.send(rest(w2))))
43
+ send(w1).send(operator.super, send(rest(w1)).send(inverse_ope(operator.sub), x.x.send(rest(w2))))
44
44
  when :g
45
- send(w1).send(super_ope(operator), send(rest(w1)).send(inverse_ope(operator), x.x.send(rest(w2)))).commutate!
45
+ send(w1).send(operator.super, send(rest(w1)).send(inverse_ope(operator), x.x.send(rest(w2)))).commutate!
46
46
  end
47
47
  end
48
48
  else
@@ -53,8 +53,8 @@ module Dydx
53
53
 
54
54
  %w(^).map(&:to_sym).each do |operator|
55
55
  define_method(operator) do |x|
56
- if formula?(sub_ope(operator)) && openable?(operator, x)
57
- f.send(operator, x).send(sub_ope(operator), g.send(operator, x))
56
+ if formula?(operator.sub) && openable?(operator, x)
57
+ f.send(operator, x).send(operator.sub, g.send(operator, x))
58
58
  else
59
59
  super(x)
60
60
  end
@@ -35,6 +35,8 @@ module Dydx
35
35
  else
36
36
  super(x)
37
37
  end
38
+ elsif [:+, :*].include?(operator) && x.formula?(operator.super) && self == x.f
39
+ send(operator.super, (1 + x.g))
38
40
  elsif x.is_a?(Inverse) && x.operator == operator && x.x.formula?(operator)
39
41
  if combinable?(x.x.f, operator)
40
42
  send(operator, inverse(x.x.f, operator)).send(operator, inverse(x.x.g, operator))
@@ -6,6 +6,8 @@ require 'dydx/algebra/set/symbol'
6
6
  require 'dydx/algebra/set/e'
7
7
  require 'dydx/algebra/set/pi'
8
8
  require 'dydx/algebra/set/log'
9
+ require 'dydx/algebra/set/log2'
10
+ require 'dydx/algebra/set/log10'
9
11
  require 'dydx/algebra/set/sin'
10
12
  require 'dydx/algebra/set/cos'
11
13
  require 'dydx/algebra/set/tan'
@@ -56,6 +58,44 @@ module Dydx
56
58
  end
57
59
  end
58
60
 
61
+ def log2(formula)
62
+ # TODO: refactor with log function.
63
+ if formula.multiplication?
64
+ f, g = formula.f, formula.g
65
+ log2(f) + log2(g)
66
+ elsif formula.exponentiation?
67
+ f, g = formula.f, formula.g
68
+ g * log2(f)
69
+ elsif formula.is_1?
70
+ e0
71
+ elsif formula.is_a?(Num)
72
+ (formula.n == 2) ? e1 : log2(formula.n)
73
+ elsif formula == 2
74
+ e1
75
+ else
76
+ Log2.new(formula)
77
+ end
78
+ end
79
+
80
+ def log10(formula)
81
+ # TODO: refactor with log function.
82
+ if formula.multiplication?
83
+ f, g = formula.f, formula.g
84
+ log10(f) + log10(g)
85
+ elsif formula.exponentiation?
86
+ f, g = formula.f, formula.g
87
+ g * log10(f)
88
+ elsif formula.is_1?
89
+ e0
90
+ elsif formula.is_a?(Num)
91
+ (formula.n == 10) ? e1 : log10(formula.n)
92
+ elsif formula == 10
93
+ e1
94
+ else
95
+ Log10.new(formula)
96
+ end
97
+ end
98
+
59
99
  def sin(x)
60
100
  multiplier = x.is_multiple_of(pi)
61
101
  if multiplier.is_a?(Num)
@@ -0,0 +1,22 @@
1
+ module Dydx
2
+ module Algebra
3
+ module Set
4
+ class Log10 < Base
5
+ attr_accessor :f
6
+
7
+ def initialize(f)
8
+ @f = f
9
+ end
10
+
11
+ def to_s
12
+ "log10( #{f.to_s} )"
13
+ end
14
+
15
+ def differentiate(sym=:x)
16
+ f.d(sym) / (f * log(10))
17
+ end
18
+ alias_method :d, :differentiate
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,22 @@
1
+ module Dydx
2
+ module Algebra
3
+ module Set
4
+ class Log2 < Base
5
+ attr_accessor :f
6
+
7
+ def initialize(f)
8
+ @f = f
9
+ end
10
+
11
+ def to_s
12
+ "log2( #{f.to_s} )"
13
+ end
14
+
15
+ def differentiate(sym=:x)
16
+ f.d(sym) / (f * log(2))
17
+ end
18
+ alias_method :d, :differentiate
19
+ end
20
+ end
21
+ end
22
+ end
data/lib/dydx/helper.rb CHANGED
@@ -22,20 +22,12 @@ module Dydx
22
22
  :| => :^
23
23
  }
24
24
 
25
- def super_ope(operator)
26
- SUPER_OPE_RELATION[operator]
27
- end
28
-
29
- def sub_ope(operator)
30
- SUPER_OPE_RELATION.invert[operator]
31
- end
32
-
33
25
  def inverse_ope(operator)
34
26
  INVERSE_OPE_RELATION[operator]
35
27
  end
36
28
 
37
29
  def inverse_super_ope(operator)
38
- inverse_ope(super_ope(operator))
30
+ inverse_ope(operator.super)
39
31
  end
40
32
 
41
33
  def is_num?
@@ -55,7 +47,7 @@ module Dydx
55
47
  end
56
48
 
57
49
  def distributive?(ope1, ope2)
58
- [super_ope(ope1), inverse_super_ope(ope1)].include?(ope2)
50
+ [ope1.super, ope1.inverse_super].include?(ope2)
59
51
  end
60
52
 
61
53
  def combinable?(x, operator)
@@ -132,6 +124,18 @@ module Dydx
132
124
  def commutative?
133
125
  [:+, :*].include?(self)
134
126
  end
127
+
128
+ def super
129
+ SUPER_OPE_RELATION[self] || self
130
+ end
131
+
132
+ def sub
133
+ SUPER_OPE_RELATION.invert[self] || self
134
+ end
135
+
136
+ def inverse_super
137
+ inverse_super_ope(self) || self
138
+ end
135
139
  end
136
140
 
137
141
  def ==(x)
@@ -6,21 +6,27 @@ module Dydx
6
6
  @var = var
7
7
  end
8
8
 
9
- def [](a, b, n = 100)
10
- f = function
11
- a, b = [a, b].map(&:to_f)
9
+ def [](a, b, n = 1000)
12
10
  raise ArgumentError, 'b should be greater than a' if a > b
11
+ f = function
13
12
  # HOT FIX: should implement Infinity class
14
13
  a = - 1000 if a == - Float::INFINITY
15
14
  b = 1000 if b == Float::INFINITY
16
15
 
16
+ a, b = [a, b].map(&:to_f)
17
+ n = [n, (b - a) * 2].max
18
+ n += 1 if n.to_i.odd?
17
19
  h = (b - a) / n
18
- sum = 0.0
19
- xi = ->(i){ a + h * i }
20
- n.to_i.times do |i|
21
- sum += ( f(xi.(i)) + 4.0 * f(xi.(i) + h / 2.0 ) + f(xi.(i) + h) )
22
- end
23
- ( h * sum ) / 6.0
20
+ x = ->(i){ a + h * i }
21
+
22
+ odd_sum = (1..n - 1).to_a.select(&:odd?).inject(0) { |sum, i| sum += f(x.(i))}
23
+ even_sum = (1..n - 1).to_a.select(&:even?).inject(0) { |sum, i| sum += f(x.(i))}
24
+ round_8( (h / 3) * (f(a) + f(b) + 2 * even_sum + 4 * odd_sum) )
25
+ end
26
+
27
+ def round_8(num)
28
+ return num if num.abs == Float::INFINITY
29
+ (num * 10 ** 8).round * 10.0 ** (-8)
24
30
  end
25
31
  end
26
32
  end
data/lib/dydx/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Dydx
2
- VERSION = "0.1.29"
2
+ VERSION = "0.1.31"
3
3
  end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Dydx::Algebra::Set::Log10 do
4
+ it { expect(log10(1)).to eq(_(0)) }
5
+ it { expect(log10(10)).to eq(_(1)) }
6
+ it { expect(log10(10 ^ :n)).to eq(:n) }
7
+ it { expect(log10(3 ^ :n).to_s).to eq('( n * log10( 3 ) )') }
8
+
9
+ describe '#to_s' do
10
+ end
11
+ describe '#differentiate' do
12
+ it { expect(log10(:x).d(:x).to_s).to eq('( 1 / ( x * log( 10 ) ) )') }
13
+ end
14
+ describe 'Calculate' do
15
+ end
16
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ describe Dydx::Algebra::Set::Log2 do
4
+ it { expect(log2(1)).to eq(_(0)) }
5
+ it { expect(log2(2)).to eq(_(1)) }
6
+ it { expect(log2(2 ^ :n)).to eq(:n) }
7
+ it { expect(log2(3 ^ :n).to_s).to eq('( n * log2( 3 ) )') }
8
+
9
+ describe '#to_s' do
10
+ end
11
+ describe '#differentiate' do
12
+ it { expect(log2(:x).d(:x).to_s).to eq('( 1 / ( x * log( 2 ) ) )') }
13
+ end
14
+ describe 'Calculate' do
15
+ end
16
+ end
@@ -15,17 +15,17 @@ describe Dydx:Integrand do
15
15
 
16
16
  it 'ex2' do
17
17
  f(x) <= x * x
18
- expect(S(f(x), dx)[0, 1]).to eq(0.3333333333333334)
18
+ expect(S(f(x), dx)[0, 1]).to eq(0.33333333)
19
19
  end
20
20
 
21
21
  it 'ex3' do
22
22
  f(x) <= sin(x)
23
- expect(S(f(x), dx)[0, Math::PI/2]).to eq(1.000000000021139)
23
+ expect(S(f(x), dx)[0, Math::PI/2]).to eq(1.0)
24
24
  end
25
25
 
26
26
  it 'ex4' do
27
27
  f(x) <= cos(x)
28
- expect(S(f(x), dx)[0, Math::PI]).to eq(7.440786129085082e-17)
28
+ expect(S(f(x), dx)[0, Math::PI]).to eq(0.0)
29
29
  end
30
30
 
31
31
  it 'ex5' do
@@ -38,16 +38,16 @@ describe Dydx:Integrand do
38
38
  expect(f(0)).to eq(1)
39
39
  expect(f(1)).to eq(1.0/Math::E)
40
40
  expect(f(1000)).to eq(0)
41
- expect(S(f(x), dx)[-1000, 1000, 3000]).to eq(1.7724538506374117)
41
+ expect(S(f(x), dx)[-1000, 1000, 3000]).to eq(1.77239273)
42
42
  end
43
43
 
44
44
  it 'ex7' do
45
45
  f(x) <= (1.0 / ( ( 2.0 * Math::PI ) ^ 0.5 ) ) * ( e ^ (- (x ^ 2) / 2) )
46
- expect(S(f(x), dx)[-1000, 1000, 1000]).to eq(0.9952054164466917)
46
+ expect(S(f(x), dx)[-1000, 1000]).to eq(1.0)
47
47
  end
48
48
 
49
49
  it 'ex8' do
50
- f(x) <= (1.0 / ( ( 2.0 * pi ) ^ 0.5 ) ) * ( e ^ (- (x ^ 2) / 2) )
51
- expect(S(f(x), dx)[-oo, oo, 1000]).to eq(0.9952054164466917)
50
+ f(x) <= (1.0 / ( ( 2.0 * Math::PI ) ^ 0.5 ) ) * ( e ^ (- (x ^ 2) / 2) )
51
+ expect(S(f(x), dx)[-oo, oo]).to eq(1.0)
52
52
  end
53
53
  end
metadata CHANGED
@@ -1,62 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dydx
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.29
5
- prerelease:
4
+ version: 0.1.31
6
5
  platform: ruby
7
6
  authors:
8
7
  - gogotanaka
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-05-27 00:00:00.000000000 Z
11
+ date: 2014-05-31 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: bundler
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
19
  version: '1.6'
22
20
  type: :development
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ~>
24
+ - - "~>"
28
25
  - !ruby/object:Gem::Version
29
26
  version: '1.6'
30
27
  - !ruby/object:Gem::Dependency
31
28
  name: rake
32
29
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
30
  requirements:
35
- - - ! '>='
31
+ - - ">="
36
32
  - !ruby/object:Gem::Version
37
33
  version: '0'
38
34
  type: :development
39
35
  prerelease: false
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
- - - ! '>='
38
+ - - ">="
44
39
  - !ruby/object:Gem::Version
45
40
  version: '0'
46
41
  - !ruby/object:Gem::Dependency
47
42
  name: rspec
48
43
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
44
  requirements:
51
- - - ! '>='
45
+ - - ">="
52
46
  - !ruby/object:Gem::Version
53
47
  version: '0'
54
48
  type: :development
55
49
  prerelease: false
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - ">="
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  description: Dydx is new math DSL in Ruby. The most important thing in this DSL is
@@ -67,9 +60,10 @@ executables: []
67
60
  extensions: []
68
61
  extra_rdoc_files: []
69
62
  files:
70
- - .gitignore
71
- - .rspec
72
- - .travis.yml
63
+ - ".gitignore"
64
+ - ".pryrc"
65
+ - ".rspec"
66
+ - ".travis.yml"
73
67
  - Gemfile
74
68
  - LICENSE.txt
75
69
  - README.md
@@ -79,11 +73,12 @@ files:
79
73
  - lib/dydx/algebra.rb
80
74
  - lib/dydx/algebra/formula.rb
81
75
  - lib/dydx/algebra/inverse.rb
82
- - lib/dydx/algebra/operator/common_parts.rb
76
+ - lib/dydx/algebra/operator.rb
83
77
  - lib/dydx/algebra/operator/formula.rb
84
78
  - lib/dydx/algebra/operator/general.rb
85
79
  - lib/dydx/algebra/operator/inverse.rb
86
80
  - lib/dydx/algebra/operator/num.rb
81
+ - lib/dydx/algebra/operator/parts.rb
87
82
  - lib/dydx/algebra/operator/parts/base.rb
88
83
  - lib/dydx/algebra/operator/parts/formula.rb
89
84
  - lib/dydx/algebra/operator/parts/general.rb
@@ -91,7 +86,6 @@ files:
91
86
  - lib/dydx/algebra/operator/parts/inverse.rb
92
87
  - lib/dydx/algebra/operator/parts/num.rb
93
88
  - lib/dydx/algebra/operator/parts/symbol.rb
94
- - lib/dydx/algebra/operator/symbol.rb
95
89
  - lib/dydx/algebra/set.rb
96
90
  - lib/dydx/algebra/set/base.rb
97
91
  - lib/dydx/algebra/set/cos.rb
@@ -99,6 +93,8 @@ files:
99
93
  - lib/dydx/algebra/set/fixnum.rb
100
94
  - lib/dydx/algebra/set/float.rb
101
95
  - lib/dydx/algebra/set/log.rb
96
+ - lib/dydx/algebra/set/log10.rb
97
+ - lib/dydx/algebra/set/log2.rb
102
98
  - lib/dydx/algebra/set/num.rb
103
99
  - lib/dydx/algebra/set/pi.rb
104
100
  - lib/dydx/algebra/set/sin.rb
@@ -118,6 +114,8 @@ files:
118
114
  - spec/lib/algebra/set/e_spec.rb
119
115
  - spec/lib/algebra/set/fixnum_spec.rb
120
116
  - spec/lib/algebra/set/float_spec.rb
117
+ - spec/lib/algebra/set/log10_spec.rb
118
+ - spec/lib/algebra/set/log2_spec.rb
121
119
  - spec/lib/algebra/set/log_spec.rb
122
120
  - spec/lib/algebra/set/num_spec.rb
123
121
  - spec/lib/algebra/set/pi_spec.rb
@@ -132,33 +130,26 @@ files:
132
130
  homepage: https://github.com/gogotanaka
133
131
  licenses:
134
132
  - MIT
133
+ metadata: {}
135
134
  post_install_message:
136
135
  rdoc_options: []
137
136
  require_paths:
138
137
  - lib
139
138
  required_ruby_version: !ruby/object:Gem::Requirement
140
- none: false
141
139
  requirements:
142
- - - ! '>='
140
+ - - ">="
143
141
  - !ruby/object:Gem::Version
144
142
  version: '0'
145
- segments:
146
- - 0
147
- hash: -4040478879646027093
148
143
  required_rubygems_version: !ruby/object:Gem::Requirement
149
- none: false
150
144
  requirements:
151
- - - ! '>='
145
+ - - ">="
152
146
  - !ruby/object:Gem::Version
153
147
  version: '0'
154
- segments:
155
- - 0
156
- hash: -4040478879646027093
157
148
  requirements: []
158
149
  rubyforge_project:
159
- rubygems_version: 1.8.23
150
+ rubygems_version: 2.2.2
160
151
  signing_key:
161
- specification_version: 3
152
+ specification_version: 4
162
153
  summary: We can enjoy the math.
163
154
  test_files:
164
155
  - spec/dydx_spec.rb
@@ -170,6 +161,8 @@ test_files:
170
161
  - spec/lib/algebra/set/e_spec.rb
171
162
  - spec/lib/algebra/set/fixnum_spec.rb
172
163
  - spec/lib/algebra/set/float_spec.rb
164
+ - spec/lib/algebra/set/log10_spec.rb
165
+ - spec/lib/algebra/set/log2_spec.rb
173
166
  - spec/lib/algebra/set/log_spec.rb
174
167
  - spec/lib/algebra/set/num_spec.rb
175
168
  - spec/lib/algebra/set/pi_spec.rb
@@ -1,15 +0,0 @@
1
- require 'dydx/algebra/operator/common_parts'
2
- require 'dydx/algebra/operator/parts/symbol'
3
-
4
- module Dydx
5
- module Algebra
6
- module Operator
7
- module Symbol
8
- include Parts::Base
9
- include Parts::Symbol
10
- include Parts::General
11
- include Parts::Interface
12
- end
13
- end
14
- end
15
- end