umappp 0.1.5 → 0.1.6

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 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