umappp 0.1.5 → 0.1.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cc70f43249cb1993d3fdb810a0cc542e9da383c113f3119414c43723e613ccf0
4
- data.tar.gz: ec95857557261b5d1aa066dae830ffb7648e7758dd50a96c14af5332a2563e9f
3
+ metadata.gz: 4268767d4aa68fb7795e72e48a9822b629390091cd5214d460e1d99a3127a3c3
4
+ data.tar.gz: 684fdcf60aa7dc40a061927103692dda85fc2e40bb1680b0c61f014980197292
5
5
  SHA512:
6
- metadata.gz: b0d0be70caca251226572ae920adab0938451383a90444235ffd939ad23e58c73034cdce95fa4639d26da9f5517453f0aa2b78fcb8d254d03685726b55ceb10d
7
- data.tar.gz: 4cebd1fb124c6d61bf083af58283f75a9e6a714c2ad4425a2c72871fa1bee579bb7377859691187ecfb6f845d6e2b8d4bb670e1837813fe7e6dbb33975aa2c70
6
+ metadata.gz: 7a9d5181ec290f40b5b22079c36d90a2fe07e1072b35b933ee30da253fc0f734431081334b6fc7510317df330e7c321386bc46da742d4515a646437e70602835
7
+ data.tar.gz: 05d42582e0d559591bd22b767a6d7df7b821288fa8b44da86d8255822b49e629c15dd33e719d383a08d933ff1dfdd3fdf839e3eed7f2131dc0bf868c3ad467b4
data/README.md CHANGED
@@ -16,7 +16,6 @@
16
16
 
17
17
  ## Installation
18
18
 
19
-
20
19
  ```
21
20
  gem install umappp
22
21
  ```
@@ -1,7 +1,6 @@
1
1
  // Uniform Manifold Approximation and Projection for Ruby
2
2
  // https://github.com/kojix2/ruby-umappp
3
3
 
4
-
5
4
  #include <rice/rice.hpp>
6
5
  #include <rice/stl.hpp>
7
6
  #include "numo.hpp"
@@ -52,7 +51,7 @@ Object umappp_run(
52
51
  {
53
52
  // Parameters are taken from a Ruby Hash object.
54
53
  // If there is key, set the value.
55
-
54
+
56
55
  auto umap_ptr = new Umap;
57
56
 
58
57
  double local_connectivity = Umap::Defaults::local_connectivity;
@@ -159,7 +158,7 @@ Object umappp_run(
159
158
  num_threads = params.get<int>(Symbol("num_threads"));
160
159
  umap_ptr->set_num_threads(num_threads);
161
160
  }
162
-
161
+
163
162
  // initialize_from_matrix
164
163
 
165
164
  const float *y = data.read_ptr();
@@ -181,12 +180,16 @@ Object umappp_run(
181
180
  std::vector<Float> embedding(ndim * nobs);
182
181
 
183
182
  auto status = umap_ptr->initialize(knncolle_ptr.get(), ndim, embedding.data());
184
-
183
+ if (nobs < 0 || ndim < 0)
184
+ {
185
+ throw std::runtime_error("nobs or ndim is negative");
186
+ }
185
187
  if (tick == 0)
186
188
  {
187
189
  status.run(ndim, embedding.data(), 0);
188
190
 
189
- auto na = numo::SFloat({(uint)nobs, (uint)ndim});
191
+ // it is safe to cast to unsigned int
192
+ auto na = numo::SFloat({(unsigned int)nobs, (unsigned int)ndim});
190
193
  std::copy(embedding.begin(), embedding.end(), na.write_ptr());
191
194
 
192
195
  return na;
@@ -201,7 +204,8 @@ Object umappp_run(
201
204
 
202
205
  status.run(ndim, embedding.data(), epoch_limit);
203
206
 
204
- auto na = numo::SFloat({(uint)nobs, (uint)ndim});
207
+ //it is safe to cast to unsigned int
208
+ auto na = numo::SFloat({(unsigned int)nobs, (unsigned int)ndim});
205
209
  std::copy(embedding.begin(), embedding.end(), na.write_ptr());
206
210
 
207
211
  rb_ary_push(ret, na.value());
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Umappp
4
- VERSION = "0.1.5"
4
+ VERSION = "0.1.6"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: umappp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - kojix2
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-02 00:00:00.000000000 Z
11
+ date: 2022-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: numo-narray