fraction-tree 2.1.2 → 2.1.3
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 +4 -4
- data/lib/fraction_tree/fraction_tree.rb +8 -5
- metadata +15 -15
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c93c771b15dc11f618cc27bff33524f7feb80bdf1310c811f53db3de5898c015
|
|
4
|
+
data.tar.gz: c40130bcc10af5a231b559d70911f728b41ee755b02e7b740fbd33fc1bb0323f
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f4c530b0352f93e6b8d94d302fcb178190c82946b072c2810cab3f941fbafbba432c9e789a444a87c74afeb729d33aca60871cdd309092ff7dab4c589fc28d75
|
|
7
|
+
data.tar.gz: 32ad67a615865017e466dc5f421492ecb3df40039477ea020aecbff648342fb2f9a24d70e6ddf2baf6fbeb8a761620d4f53741da8c56a4eb9493df7643a9b10a
|
|
@@ -53,7 +53,8 @@ class FractionTree
|
|
|
53
53
|
# @example
|
|
54
54
|
# FractionTree.range = :farey
|
|
55
55
|
# => (0/1..1/1)
|
|
56
|
-
# @
|
|
56
|
+
# @param rhs [Symbol] the range to set
|
|
57
|
+
# @note supported symbols:
|
|
57
58
|
# :farey, :keyboard, :scale_step, :log2 => (0/1..1/1)
|
|
58
59
|
# :stern_brocot, :scale => (0/1..1/0)
|
|
59
60
|
# :octave_reduced => (1/1..2/1)
|
|
@@ -88,6 +89,7 @@ class FractionTree
|
|
|
88
89
|
# @return [FractionTree::Node] the node in the tree representing the given number
|
|
89
90
|
# @example
|
|
90
91
|
# FractionTree.node(3/2r) => (3/2)
|
|
92
|
+
# @param number [Numeric] the number to find in the tree
|
|
91
93
|
#
|
|
92
94
|
def node(number)
|
|
93
95
|
validate(number)
|
|
@@ -97,6 +99,7 @@ class FractionTree
|
|
|
97
99
|
# @return [FractionTree::Node] the node decoded from the given string
|
|
98
100
|
# @example
|
|
99
101
|
# FractionTree.decode("RLL") => (4/3)
|
|
102
|
+
# @param str [String] the Stern-Brocot encoding of the number
|
|
100
103
|
#
|
|
101
104
|
def decode(str)
|
|
102
105
|
wrk_node = Node.decode(str)
|
|
@@ -106,6 +109,8 @@ class FractionTree
|
|
|
106
109
|
# @return [FractionTree::Node] the mediant sum of the given numbers
|
|
107
110
|
# @example
|
|
108
111
|
# FractionTree.mediant_sum(3/2r, 4/3r) => (7/5)
|
|
112
|
+
# @param n1 [Rational] one of two numbers to sum
|
|
113
|
+
# @param n2 [Rational] two of two numbers to sum
|
|
109
114
|
#
|
|
110
115
|
def mediant_sum(n1, n2)
|
|
111
116
|
Node.new(n1) + Node.new(n2)
|
|
@@ -134,7 +139,6 @@ class FractionTree
|
|
|
134
139
|
# [(1/1)],
|
|
135
140
|
# [(1/2), (2/1)],
|
|
136
141
|
# [(1/3), (2/3), (3/2), (3/1)]]
|
|
137
|
-
#
|
|
138
142
|
# @param depth [Integer] the depth of the tree
|
|
139
143
|
# @param left_node [FractionTree::Node] the left starting node
|
|
140
144
|
# @param right_node [FractionTree::Node] the right starting node
|
|
@@ -163,7 +167,6 @@ class FractionTree
|
|
|
163
167
|
# @example
|
|
164
168
|
# FractionTree.child_of(1/1r, 4/3r) => (5/4)
|
|
165
169
|
# FractionTree.child_of(7/4r, 4/3r) => nil
|
|
166
|
-
#
|
|
167
170
|
# @param number1 [Rational] one of two parents
|
|
168
171
|
# @param number2 [Rational] two of two parents
|
|
169
172
|
# @note return nil if bc - ad |= 1, for a/b, c/d
|
|
@@ -191,12 +194,12 @@ class FractionTree
|
|
|
191
194
|
|
|
192
195
|
# @return [Array] a sequence of fraction tree nodes
|
|
193
196
|
# @example
|
|
194
|
-
# FractionTree.
|
|
197
|
+
# FractionTree.sequence(depth: 3)
|
|
195
198
|
# => [(0/1), (1/3), (1/2), (2/3), (1/1), (3/2), (2/1), (3/1), (1/0)]
|
|
196
199
|
#
|
|
197
200
|
# @param depth [Integer] the number of iterations of the algorithm to run. The number of nodes returned will be greater
|
|
198
201
|
# @param left_node [FractionTree::Node] the left starting node
|
|
199
|
-
# @param right_node [FractionTree::Node] the right starting node
|
|
202
|
+
# @param right_node [FractionTree::Node] the right starting node
|
|
200
203
|
#
|
|
201
204
|
def sequence(depth: 5, left_node: default_left_node, right_node: default_right_node)
|
|
202
205
|
[left_node]+_sequence(depth:, left_node:, right_node:)+[right_node]
|
metadata
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fraction-tree
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.1.
|
|
4
|
+
version: 2.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jose Hales-Garcia
|
|
8
8
|
bindir: bin
|
|
9
9
|
cert_chain: []
|
|
10
|
-
date:
|
|
10
|
+
date: 2026-01-27 00:00:00.000000000 Z
|
|
11
11
|
dependencies:
|
|
12
12
|
- !ruby/object:Gem::Dependency
|
|
13
13
|
name: matrix
|
|
@@ -15,14 +15,14 @@ dependencies:
|
|
|
15
15
|
requirements:
|
|
16
16
|
- - "~>"
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: '0
|
|
18
|
+
version: '0'
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
23
|
- - "~>"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: '0
|
|
25
|
+
version: '0'
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: bigdecimal
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -43,28 +43,28 @@ dependencies:
|
|
|
43
43
|
requirements:
|
|
44
44
|
- - "~>"
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: '1
|
|
46
|
+
version: '1'
|
|
47
47
|
type: :runtime
|
|
48
48
|
prerelease: false
|
|
49
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: '1
|
|
53
|
+
version: '1'
|
|
54
54
|
- !ruby/object:Gem::Dependency
|
|
55
55
|
name: continued_fractions
|
|
56
56
|
requirement: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
58
|
- - "~>"
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: '2
|
|
60
|
+
version: '2'
|
|
61
61
|
type: :runtime
|
|
62
62
|
prerelease: false
|
|
63
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
64
64
|
requirements:
|
|
65
65
|
- - "~>"
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
|
-
version: '2
|
|
67
|
+
version: '2'
|
|
68
68
|
- !ruby/object:Gem::Dependency
|
|
69
69
|
name: rspec
|
|
70
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -85,42 +85,42 @@ dependencies:
|
|
|
85
85
|
requirements:
|
|
86
86
|
- - "~>"
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
|
-
version: '
|
|
88
|
+
version: '13'
|
|
89
89
|
type: :development
|
|
90
90
|
prerelease: false
|
|
91
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
92
92
|
requirements:
|
|
93
93
|
- - "~>"
|
|
94
94
|
- !ruby/object:Gem::Version
|
|
95
|
-
version: '
|
|
95
|
+
version: '13'
|
|
96
96
|
- !ruby/object:Gem::Dependency
|
|
97
97
|
name: yard
|
|
98
98
|
requirement: !ruby/object:Gem::Requirement
|
|
99
99
|
requirements:
|
|
100
100
|
- - "~>"
|
|
101
101
|
- !ruby/object:Gem::Version
|
|
102
|
-
version: '0
|
|
102
|
+
version: '0'
|
|
103
103
|
type: :development
|
|
104
104
|
prerelease: false
|
|
105
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
106
106
|
requirements:
|
|
107
107
|
- - "~>"
|
|
108
108
|
- !ruby/object:Gem::Version
|
|
109
|
-
version: '0
|
|
109
|
+
version: '0'
|
|
110
110
|
- !ruby/object:Gem::Dependency
|
|
111
111
|
name: rspec-benchmark
|
|
112
112
|
requirement: !ruby/object:Gem::Requirement
|
|
113
113
|
requirements:
|
|
114
114
|
- - "~>"
|
|
115
115
|
- !ruby/object:Gem::Version
|
|
116
|
-
version: '0
|
|
116
|
+
version: '0'
|
|
117
117
|
type: :development
|
|
118
118
|
prerelease: false
|
|
119
119
|
version_requirements: !ruby/object:Gem::Requirement
|
|
120
120
|
requirements:
|
|
121
121
|
- - "~>"
|
|
122
122
|
- !ruby/object:Gem::Version
|
|
123
|
-
version: '0
|
|
123
|
+
version: '0'
|
|
124
124
|
description: A collection of Stern-Brocot based models and methods
|
|
125
125
|
email: jose@halesgarcia.com
|
|
126
126
|
executables: []
|
|
@@ -150,7 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
150
150
|
- !ruby/object:Gem::Version
|
|
151
151
|
version: '3.1'
|
|
152
152
|
requirements: []
|
|
153
|
-
rubygems_version:
|
|
153
|
+
rubygems_version: 4.0.4
|
|
154
154
|
specification_version: 4
|
|
155
155
|
summary: Fraction tree
|
|
156
156
|
test_files: []
|