unodos 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +1 -1
- data/README.md +6 -6
- data/lib/unodos/base.rb +1 -1
- data/lib/unodos/infinite.rb +0 -1
- data/lib/unodos/solver.rb +2 -5
- data/lib/unodos/sugar.rb +1 -1
- data/lib/unodos/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e97a641cc674115e3d71bbcdb9f6e09bd6229bd990931a1436d2c080deb7b26
|
4
|
+
data.tar.gz: a591090f58cba23ca2c2d01d31ce95db07c0a7e4e592f02e0f88fb9d0c0537e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 182546f1fc0e1071819cfc9adbd32ff5b5031ce09bc1a5262cf611a1ca89e32df4a611ad4a52b939264c32c1a15d6d63b874f0909d5ad103d7d2593a7e2f68b0
|
7
|
+
data.tar.gz: df6f94e4f151ca9a0204e724ec3c7f33c59a61378895ff7be7b8579483e560b7147b3fd3e6636a5fe34c4c1bb35535df10f88bfe4d5cecfcda0cebef995ae94c
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
|
3
3
|
```ruby
|
4
4
|
require 'unodos'
|
5
|
-
Unodos[1,2
|
5
|
+
Unodos[1,2].take(5) # => [1,2,3,4,5]
|
6
6
|
Unodos[1,2,4].take(5) # => [1,2,4,8,16]
|
7
7
|
Unodos[1,1,2,3,5].take(8) # => [1,1,2,3,5,8,13,21]
|
8
|
-
Unodos[1,1,2,4,3,9,4,16,5].take(10)
|
8
|
+
Unodos[1,1,2,4,3,9,4,16,5].take(10) # => [1,1,2,4,3,9,4,16,5,25]
|
9
9
|
|
10
10
|
# to see the generated rule
|
11
|
-
Unodos[4,1,0,1,4,9].rule
|
12
|
-
Unodos[1,2,4,5,7,8].rule
|
11
|
+
Unodos[4,1,0,1,4,9].rule # => "a[n]=4-4*n+n**2"
|
12
|
+
Unodos[1,2,4,5,7,8].rule # => "a[n]=-a[n-1]+3*n"
|
13
13
|
```
|
14
14
|
|
15
15
|
## Installation
|
@@ -24,6 +24,6 @@ gem 'unodos'
|
|
24
24
|
require 'unodos/sugar' # will add Array#infinite
|
25
25
|
[1,2,3].infinite.take(5) #=> [1,2,3,4,5]
|
26
26
|
using Unodos::Sugar # will change [numbers, number..].some_method
|
27
|
-
[1,2
|
28
|
-
[1,1,2,3,5
|
27
|
+
[1,2...].take(5) #=> [1,2,3,4,5]
|
28
|
+
[1,1,2,3,5...].find_index(144) #=> 11
|
29
29
|
```
|
data/lib/unodos/base.rb
CHANGED
data/lib/unodos/infinite.rb
CHANGED
data/lib/unodos/solver.rb
CHANGED
@@ -7,8 +7,7 @@ module Unodos::Solver
|
|
7
7
|
Unodos::NamedBase.new('n**2') { |n| n**2 },
|
8
8
|
Unodos::NamedBase.new('n**3') { |n| n**3 },
|
9
9
|
Unodos::NamedBase.new('n**4') { |n| n**4 },
|
10
|
-
Unodos::NamedBase.new('n**5') { |n| n**5 }
|
11
|
-
Unodos::NamedBase.new('2**n') { |n| 2**n },
|
10
|
+
Unodos::NamedBase.new('n**5') { |n| n**5 }
|
12
11
|
]
|
13
12
|
|
14
13
|
def self.lup_solve(lup, b)
|
@@ -86,7 +85,7 @@ module Unodos::Solver
|
|
86
85
|
least_square_solve vectors, bvector, &block
|
87
86
|
elsif first_required && max_items == 2
|
88
87
|
find_solve vectors, bvector, &block
|
89
|
-
|
88
|
+
else
|
90
89
|
recursive_solve vectors, bvector, first_required, &block
|
91
90
|
end
|
92
91
|
end
|
@@ -105,10 +104,8 @@ module Unodos::Solver
|
|
105
104
|
end
|
106
105
|
|
107
106
|
def self.recursive_solve(vectors, bvector, first_required, &block)
|
108
|
-
return least_square_solve vectors, bvector, &block if vectors.size < bvector.size
|
109
107
|
size = vectors.size
|
110
108
|
out_size = bvector.size
|
111
|
-
skip_size = size - out_size
|
112
109
|
lup = Matrix[*vectors.transpose].lup
|
113
110
|
mat_l = lup.l
|
114
111
|
mat_u = lup.u.to_a
|
data/lib/unodos/sugar.rb
CHANGED
data/lib/unodos/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unodos
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- tompng
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Infinite number sequence generator
|
14
14
|
email:
|