fraction-tree 2.1.1 → 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 +29 -18
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,14 +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
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 2026-01-27 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: matrix
|
|
@@ -16,42 +15,56 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - "~>"
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0
|
|
18
|
+
version: '0'
|
|
20
19
|
type: :runtime
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
23
|
- - "~>"
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '0
|
|
25
|
+
version: '0'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: bigdecimal
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - "~>"
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '3'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - "~>"
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '3'
|
|
27
40
|
- !ruby/object:Gem::Dependency
|
|
28
41
|
name: forwardable
|
|
29
42
|
requirement: !ruby/object:Gem::Requirement
|
|
30
43
|
requirements:
|
|
31
44
|
- - "~>"
|
|
32
45
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '1
|
|
46
|
+
version: '1'
|
|
34
47
|
type: :runtime
|
|
35
48
|
prerelease: false
|
|
36
49
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
50
|
requirements:
|
|
38
51
|
- - "~>"
|
|
39
52
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '1
|
|
53
|
+
version: '1'
|
|
41
54
|
- !ruby/object:Gem::Dependency
|
|
42
55
|
name: continued_fractions
|
|
43
56
|
requirement: !ruby/object:Gem::Requirement
|
|
44
57
|
requirements:
|
|
45
58
|
- - "~>"
|
|
46
59
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '2
|
|
60
|
+
version: '2'
|
|
48
61
|
type: :runtime
|
|
49
62
|
prerelease: false
|
|
50
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
64
|
requirements:
|
|
52
65
|
- - "~>"
|
|
53
66
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '2
|
|
67
|
+
version: '2'
|
|
55
68
|
- !ruby/object:Gem::Dependency
|
|
56
69
|
name: rspec
|
|
57
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -72,42 +85,42 @@ dependencies:
|
|
|
72
85
|
requirements:
|
|
73
86
|
- - "~>"
|
|
74
87
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
88
|
+
version: '13'
|
|
76
89
|
type: :development
|
|
77
90
|
prerelease: false
|
|
78
91
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
92
|
requirements:
|
|
80
93
|
- - "~>"
|
|
81
94
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '
|
|
95
|
+
version: '13'
|
|
83
96
|
- !ruby/object:Gem::Dependency
|
|
84
97
|
name: yard
|
|
85
98
|
requirement: !ruby/object:Gem::Requirement
|
|
86
99
|
requirements:
|
|
87
100
|
- - "~>"
|
|
88
101
|
- !ruby/object:Gem::Version
|
|
89
|
-
version: '0
|
|
102
|
+
version: '0'
|
|
90
103
|
type: :development
|
|
91
104
|
prerelease: false
|
|
92
105
|
version_requirements: !ruby/object:Gem::Requirement
|
|
93
106
|
requirements:
|
|
94
107
|
- - "~>"
|
|
95
108
|
- !ruby/object:Gem::Version
|
|
96
|
-
version: '0
|
|
109
|
+
version: '0'
|
|
97
110
|
- !ruby/object:Gem::Dependency
|
|
98
111
|
name: rspec-benchmark
|
|
99
112
|
requirement: !ruby/object:Gem::Requirement
|
|
100
113
|
requirements:
|
|
101
114
|
- - "~>"
|
|
102
115
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '0
|
|
116
|
+
version: '0'
|
|
104
117
|
type: :development
|
|
105
118
|
prerelease: false
|
|
106
119
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
120
|
requirements:
|
|
108
121
|
- - "~>"
|
|
109
122
|
- !ruby/object:Gem::Version
|
|
110
|
-
version: '0
|
|
123
|
+
version: '0'
|
|
111
124
|
description: A collection of Stern-Brocot based models and methods
|
|
112
125
|
email: jose@halesgarcia.com
|
|
113
126
|
executables: []
|
|
@@ -123,7 +136,6 @@ licenses:
|
|
|
123
136
|
- MIT
|
|
124
137
|
metadata:
|
|
125
138
|
source_code_uri: https://github.com/jolohaga/fraction-tree
|
|
126
|
-
post_install_message:
|
|
127
139
|
rdoc_options: []
|
|
128
140
|
require_paths:
|
|
129
141
|
- lib
|
|
@@ -138,8 +150,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
138
150
|
- !ruby/object:Gem::Version
|
|
139
151
|
version: '3.1'
|
|
140
152
|
requirements: []
|
|
141
|
-
rubygems_version:
|
|
142
|
-
signing_key:
|
|
153
|
+
rubygems_version: 4.0.4
|
|
143
154
|
specification_version: 4
|
|
144
155
|
summary: Fraction tree
|
|
145
156
|
test_files: []
|