numo-narray-alt 0.10.1 → 0.10.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2567fb1002a21b25cf82239f1ecb39cfd3765c52847d431f814c1c1933f5af9d
4
- data.tar.gz: 9737f59071d0078da064bc1fdc983d5bacaf80e90f871297f72cefd3f944d781
3
+ metadata.gz: 3add9ba11a05a8f7e149d5cc4f00b15b870cedc1ae8dd20a603213c9fa9f87bc
4
+ data.tar.gz: d2faa61ca233802311b7a77ec70bf1049cde822123d177274f27d667a5aa570b
5
5
  SHA512:
6
- metadata.gz: b8191bdf1b90645a3ef109a84d6c3446b7e8321a4091ea2acd01469f71add1e4832b9acff113edc5ca5cd151a7e68cede491453e2d8040d1ecadfe3fec3ae3e7
7
- data.tar.gz: f7894fd10299190e1b2ec16a8270990edb80cc5524bd2f279983479f4b9ab266c83ec288683a63fbcffcfef09bd68946b2c939b6b91d2c6e1acd06e067f60d12
6
+ metadata.gz: aceb6275928c5da4b8b2d2ca47faada75eec985ff762740954f76c9620fe73b7edc2346359336c2dd79ad9433998fdf425fbe5ceef8d760fd5d9f0718e2aa653
7
+ data.tar.gz: ef431dd49b3470c4ffdf5c4eeafa8faee4d2e66b9167c4d0dd4a5816ed8e83ad3e8590701cba491a6265453e9bcbfb6f2612d9f8ef3495a833b79736e08d5aa6
@@ -519,27 +519,33 @@ static void na_index_aref_naview(
519
519
  ssize_t total = 1;
520
520
 
521
521
  for (i = j = 0; i < ndim; i++) {
522
- stridx_t sdx1 = na1->stridx[q[i].orig_dim];
523
- ssize_t size;
524
-
525
- // numeric index -- trim dimension
526
- if (!keep_dim && q[i].n == 1 && q[i].step == 0) {
527
- if (SDX_IS_INDEX(sdx1)) {
528
- na2->offset += SDX_GET_INDEX(sdx1)[q[i].beg];
529
- } else {
530
- na2->offset += SDX_GET_STRIDE(sdx1) * q[i].beg;
522
+ stridx_t sdx1;
523
+ sdx1.stride = 0;
524
+ sdx1.index = NULL;
525
+ const int qi_orig_dim = q[i].orig_dim;
526
+ if (qi_orig_dim < na1->base.ndim) {
527
+ sdx1 = na1->stridx[qi_orig_dim];
528
+
529
+ // numeric index -- trim dimension
530
+ if (!keep_dim && q[i].n == 1 && q[i].step == 0) {
531
+ if (SDX_IS_INDEX(sdx1)) {
532
+ na2->offset += SDX_GET_INDEX(sdx1)[q[i].beg];
533
+ } else {
534
+ na2->offset += SDX_GET_STRIDE(sdx1) * q[i].beg;
535
+ }
536
+ continue;
531
537
  }
532
- continue;
533
538
  }
534
539
 
535
- na2->base.shape[j] = size = q[i].n;
540
+ const ssize_t size = q[i].n;
541
+ na2->base.shape[j] = size;
536
542
 
537
543
  if (q[i].reduce != 0) {
538
544
  VALUE m = rb_funcall(INT2FIX(1), id_shift_left, 1, INT2FIX(j));
539
545
  na2->base.reduce = rb_funcall(m, '|', 1, na2->base.reduce);
540
546
  }
541
547
 
542
- if (q[i].orig_dim >= na1->base.ndim) {
548
+ if (qi_orig_dim >= na1->base.ndim) {
543
549
  // new dimension
544
550
  SDX_SET_STRIDE(na2->stridx[j], elmsz);
545
551
  } else if (q[i].idx != NULL && SDX_IS_INDEX(sdx1)) {
@@ -278,6 +278,10 @@ void na_array_to_internal_shape(VALUE self, VALUE ary, size_t* shape) {
278
278
  void na_alloc_shape(narray_t* na, int ndim) {
279
279
  na->ndim = ndim;
280
280
  na->size = 0;
281
+ if (na->shape != NULL && na->shape != &(na->size)) {
282
+ xfree(na->shape);
283
+ na->shape = NULL;
284
+ }
281
285
  switch (ndim) {
282
286
  case 0:
283
287
  case 1:
@@ -290,10 +294,6 @@ void na_alloc_shape(narray_t* na, int ndim) {
290
294
  if (ndim > NA_MAX_DIMENSION) {
291
295
  rb_raise(nary_eDimensionError, "ndim=%d is too many", ndim);
292
296
  }
293
- if (na->shape != NULL && na->shape != &(na->size)) {
294
- xfree(na->shape);
295
- na->shape = NULL;
296
- }
297
297
  na->shape = ALLOC_N(size_t, ndim);
298
298
  }
299
299
  }
@@ -13,10 +13,10 @@ extern "C" {
13
13
  #endif
14
14
  #endif
15
15
 
16
- #define NARRAY_VERSION "0.10.1"
16
+ #define NARRAY_VERSION "0.10.3"
17
17
  #define NARRAY_VERSION_MAJOR 0
18
18
  #define NARRAY_VERSION_MINOR 10
19
- #define NARRAY_VERSION_PATCH 1
19
+ #define NARRAY_VERSION_PATCH 3
20
20
  #define NARRAY_VERSION_CODE \
21
21
  (NARRAY_VERSION_MAJOR * 10000 + NARRAY_VERSION_MINOR * 100 + NARRAY_VERSION_PATCH)
22
22
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: numo-narray-alt
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.1
4
+ version: 0.10.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - yoshoku
@@ -214,7 +214,7 @@ licenses:
214
214
  metadata:
215
215
  homepage_uri: https://github.com/yoshoku/numo-narray-alt
216
216
  changelog_uri: https://github.com/yoshoku/numo-narray-alt/blob/main/CHANGELOG.md
217
- documentation_uri: https://gemdocs.org/gems/numo-narray-alt/0.10.1/
217
+ documentation_uri: https://gemdocs.org/gems/numo-narray-alt/0.10.3/
218
218
  rubygems_mfa_required: 'true'
219
219
  post_install_message: |
220
220
  ===
@@ -238,7 +238,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
238
238
  - !ruby/object:Gem::Version
239
239
  version: '0'
240
240
  requirements: []
241
- rubygems_version: 4.0.6
241
+ rubygems_version: 4.0.3
242
242
  specification_version: 4
243
243
  summary: Numo::NArray Alternative is a project forked from Numo::NArray.
244
244
  test_files: []