dydx 0.0.8 → 0.0.9
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.
- checksums.yaml +7 -0
- data/lib/dydx.rb +7 -2
- data/lib/dydx/algebra/operator/parts/formula.rb +10 -6
- data/lib/dydx/helper.rb +6 -0
- data/lib/dydx/version.rb +1 -1
- data/spec/dydx_spec.rb +8 -0
- metadata +15 -29
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d8ca3c4000aeec1a5bf45fd3c7ed3fbd406d6617
|
4
|
+
data.tar.gz: 5de895a80ebd9d7684f0ef0544709979709293fc
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: dc98862c3a69ffc14d6ace6ebe15dcf41d1ce7559e5ab52713c9f48394ebb1fb7b18fbb0ccbcaf06dab58eadd1c8bf31acb2fa15ccca07f3563375cd7936df1e
|
7
|
+
data.tar.gz: ff75009f67db271fe0b7e25ed08d8e15bd724b1544b86b668e79c5e5b2a4b623de758a94d390e95da0e7deac2e7a5328f2477306e2521b5fd322362483e80da9
|
data/lib/dydx.rb
CHANGED
@@ -21,7 +21,12 @@ module Dydx
|
|
21
21
|
|
22
22
|
def method_missing(method, *args, &block)
|
23
23
|
method_name = method.to_s
|
24
|
-
|
25
|
-
|
24
|
+
if method_name =~ /^d.?$/
|
25
|
+
Delta.new(method_name[1] ? method_name[1].to_sym : nil, args.first)
|
26
|
+
elsif method_name =~ /^[a-z]$/
|
27
|
+
method_name.to_sym
|
28
|
+
else
|
29
|
+
super
|
30
|
+
end
|
26
31
|
end
|
27
32
|
end
|
@@ -14,28 +14,32 @@ module Dydx
|
|
14
14
|
super(x)
|
15
15
|
end
|
16
16
|
elsif formula?(super_ope(operator)) && x.formula?(super_ope(operator))
|
17
|
-
return super(x) if !common_factors(x) || (operator == :* && common_factors(x)[0] != common_factors(x)[1])
|
18
17
|
w1, w2 = common_factors(x)
|
18
|
+
return super(x) unless (w1 && w2) && (super_ope(operator).commutative? || w1 == w2)
|
19
|
+
|
19
20
|
case operator
|
20
21
|
when :+
|
21
22
|
send(w1).send(super_ope(operator), send(rest(w1)).send(operator, x.send(rest(w2))))
|
22
23
|
when :*
|
23
|
-
|
24
|
+
case w1
|
25
|
+
when :f
|
24
26
|
send(w1).send(super_ope(operator), send(rest(w1)).send(sub_ope(operator), x.send(rest(w2))))
|
25
|
-
|
27
|
+
when :g
|
26
28
|
send(w1).send(super_ope(operator), send(rest(w1)).send(operator, x.send(rest(w2)))).commutate!
|
27
29
|
end
|
28
30
|
end
|
29
31
|
elsif formula?(super_ope(operator)) && x.inverse?(operator) && x.x.formula?(super_ope(operator))
|
30
|
-
return super(x) if !common_factors(x.x) || (operator == :* && common_factors(x.x)[0] != common_factors(x.x)[1])
|
31
32
|
w1, w2 = common_factors(x.x)
|
33
|
+
return super(x) unless (w1 && w2) && (super_ope(operator).commutative? || w1 == w2)
|
34
|
+
|
32
35
|
case operator
|
33
36
|
when :+
|
34
37
|
send(w1).send(super_ope(operator), send(rest(w1)).send(inverse_ope(operator), x.x.send(rest(w2))))
|
35
38
|
when :*
|
36
|
-
|
39
|
+
case w1
|
40
|
+
when :f
|
37
41
|
send(w1).send(super_ope(operator), send(rest(w1)).send(inverse_ope(sub_ope(operator)), x.x.send(rest(w2))))
|
38
|
-
|
42
|
+
when :g
|
39
43
|
send(w1).send(super_ope(operator), send(rest(w1)).send(inverse_ope(operator), x.x.send(rest(w2)))).commutate!
|
40
44
|
end
|
41
45
|
end
|
data/lib/dydx/helper.rb
CHANGED
data/lib/dydx/version.rb
CHANGED
data/spec/dydx_spec.rb
CHANGED
@@ -36,4 +36,12 @@ describe Dydx do
|
|
36
36
|
it{ expect(d1.to_s).to eq('( 4 * ( e ^ ( 2 * z ) ) )') }
|
37
37
|
it{ expect(d2.to_s).to eq('( 4 * ( e ^ ( 2 * z ) ) )') }
|
38
38
|
end
|
39
|
+
|
40
|
+
context 'ex5' do
|
41
|
+
$f = 2 * (e ^ (2 * z))
|
42
|
+
let(:d1){ df/dz }
|
43
|
+
let(:d2){ d/dz($f) }
|
44
|
+
it{ expect(d1.to_s).to eq('( 4 * ( e ^ ( 2 * z ) ) )') }
|
45
|
+
it{ expect(d2.to_s).to eq('( 4 * ( e ^ ( 2 * z ) ) )') }
|
46
|
+
end
|
39
47
|
end
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dydx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.0.9
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- gogotanaka
|
@@ -14,49 +13,43 @@ 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: It is possible to use the differential using the Symbol and Fixnum by
|
@@ -67,9 +60,9 @@ executables: []
|
|
67
60
|
extensions: []
|
68
61
|
extra_rdoc_files: []
|
69
62
|
files:
|
70
|
-
- .gitignore
|
71
|
-
- .rspec
|
72
|
-
- .travis.yml
|
63
|
+
- ".gitignore"
|
64
|
+
- ".rspec"
|
65
|
+
- ".travis.yml"
|
73
66
|
- Gemfile
|
74
67
|
- LICENSE.txt
|
75
68
|
- README.md
|
@@ -124,33 +117,26 @@ files:
|
|
124
117
|
homepage: https://github.com/gogotanaka
|
125
118
|
licenses:
|
126
119
|
- MIT
|
120
|
+
metadata: {}
|
127
121
|
post_install_message:
|
128
122
|
rdoc_options: []
|
129
123
|
require_paths:
|
130
124
|
- lib
|
131
125
|
required_ruby_version: !ruby/object:Gem::Requirement
|
132
|
-
none: false
|
133
126
|
requirements:
|
134
|
-
- -
|
127
|
+
- - ">="
|
135
128
|
- !ruby/object:Gem::Version
|
136
129
|
version: '0'
|
137
|
-
segments:
|
138
|
-
- 0
|
139
|
-
hash: -728077447189178322
|
140
130
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
141
|
-
none: false
|
142
131
|
requirements:
|
143
|
-
- -
|
132
|
+
- - ">="
|
144
133
|
- !ruby/object:Gem::Version
|
145
134
|
version: '0'
|
146
|
-
segments:
|
147
|
-
- 0
|
148
|
-
hash: -728077447189178322
|
149
135
|
requirements: []
|
150
136
|
rubyforge_project:
|
151
|
-
rubygems_version:
|
137
|
+
rubygems_version: 2.2.2
|
152
138
|
signing_key:
|
153
|
-
specification_version:
|
139
|
+
specification_version: 4
|
154
140
|
summary: We can enjoy the derivative.
|
155
141
|
test_files:
|
156
142
|
- spec/dydx_spec.rb
|