numo-narray 0.9.1.1 → 0.9.1.2

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: 2e9851b8d675467f0aa278a6600a631ba1d5a86e5a478ff5f51a6835ba1777d4
4
- data.tar.gz: c0966fbbe3878466b39cee78282b7c5476f40529db98d86a57ccd0814fbe14fb
3
+ metadata.gz: 21795de8941d7b8176772c41039e4d8a5b3ae03a51090f6ee2979f257de88d43
4
+ data.tar.gz: ff44506a3ce17bed9b927c23bf0c92395e1c1c54b8ccfcff9edc0aa6edb833c5
5
5
  SHA512:
6
- metadata.gz: e04617bfa3066a4b021636582bbd7476f0c68ff3b262904679e1922b830d9ea8e3e90873c9a47d05052575afd4828c41f66d9d093ba812ca7891a24e1812f47a
7
- data.tar.gz: 0662567f04b57c0e62a30d36841a17441c92aec4e36cff5a9027561a255263ac73125efb96eb97e18f4f90bc3ce452f24e303c9492f878bffdf89652f0e4748e
6
+ metadata.gz: 1be858a3b1ba7c5028dea3a034ecc4b70ff9e41711957b8989e58a517f911bf41849c84a0f64ec1beb993416b42675384e3e035179910b724692613f765b10cc
7
+ data.tar.gz: 7db10683049eab739ee97f3599112ea95566ed223d4e24b020cfe400011ae0d6ad862ed01080c50fe3dd3546c508286b70abd4f0c3a7fdec6a977655e08957ba
@@ -17,7 +17,8 @@ $INCFLAGS = "-Itypes #$INCFLAGS"
17
17
  $INSTALLFILES = Dir.glob(%w[numo/*.h numo/types/*.h]).map{|x| [x,'$(archdir)'] }
18
18
  $INSTALLFILES << ['numo/extconf.h','$(archdir)']
19
19
  if /cygwin|mingw/ =~ RUBY_PLATFORM
20
- $INSTALLFILES << ['libnarray.a', '$(archdir)']
20
+ $DLDFLAGS << " -Wl,--export-all,--out-implib=libnarray.a"
21
+ $INSTALLFILES << ['./libnarray.a', '$(archdir)']
21
22
  end
22
23
 
23
24
  srcs = %w(
@@ -37,7 +37,7 @@ static void
37
37
  static VALUE
38
38
  <%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
39
39
  {
40
- volatile VALUE fmt=Qnil;
40
+ VALUE fmt=Qnil;
41
41
  ndfunc_arg_in_t ain[3] = {{Qnil,0},{sym_loop_opt},{sym_option}};
42
42
  ndfunc_arg_out_t aout[1] = {{rb_cArray,0}}; // dummy?
43
43
  ndfunc_t ndf = { <%=c_iter%>, FULL_LOOP_NIP, 3, 1, ain, aout };
@@ -38,7 +38,7 @@ static void
38
38
  static VALUE
39
39
  <%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
40
40
  {
41
- volatile VALUE fmt=Qnil;
41
+ VALUE fmt=Qnil;
42
42
  ndfunc_arg_in_t ain[3] = {{Qnil,0},{sym_loop_opt},{sym_option}};
43
43
  ndfunc_arg_out_t aout[1] = {{rb_cArray,0}}; // dummy?
44
44
  ndfunc_t ndf = {<%=c_iter%>, FULL_LOOP_NIP, 3,1, ain,aout};
@@ -631,12 +631,6 @@ na_get_pointer_for_rw(VALUE self, int flag)
631
631
  if ((flag & WRITE) && OBJ_FROZEN(obj)) {
632
632
  rb_raise(rb_eRuntimeError, "cannot write to frozen NArray.");
633
633
  }
634
-
635
- if (flag & WRITE) {
636
- if (OBJ_FROZEN(obj)) {
637
- rb_raise(rb_eRuntimeError, "cannot write to frozen NArray.");
638
- }
639
- }
640
634
  GetNArray(obj,na);
641
635
  switch(NA_TYPE(na)) {
642
636
  case NARRAY_DATA_T:
@@ -0,0 +1,28 @@
1
+ EXPORTS
2
+ Init_narray
3
+ nary_new
4
+ nary_view_new
5
+ nary_debug_info
6
+ nary_make_view
7
+ nary_element_stride
8
+ nary_dtype_element_stride
9
+ nary_get_pointer
10
+ nary_get_pointer_for_write
11
+ nary_get_pointer_for_read
12
+ nary_get_pointer_for_read_write
13
+ nary_get_offset
14
+ nary_copy_flags
15
+ nary_check_ladder
16
+ nary_check_contiguous
17
+ nary_flatten_dim
18
+ nary_flatten
19
+ nary_dup
20
+ nary_store
21
+ nary_reduce_dimension
22
+ nary_reduce_options
23
+ na_ndloop
24
+ na_ndloop2
25
+ na_ndloop3
26
+ na_ndloop4
27
+ nary_info_str
28
+ nary_test_reduce
@@ -510,7 +510,7 @@ static void
510
510
  ndloop_set_stepidx(na_md_loop_t *lp, int j, VALUE vna, int *dim_map, int rwflag)
511
511
  {
512
512
  size_t n, s;
513
- int i, k;
513
+ int i, k, nd;
514
514
  stridx_t sdx;
515
515
  narray_t *na;
516
516
 
@@ -528,6 +528,7 @@ ndloop_set_stepidx(na_md_loop_t *lp, int j, VALUE vna, int *dim_map, int rwflag)
528
528
  rb_bug("invalid value for read-write flag");
529
529
  }
530
530
  GetNArray(vna,na);
531
+ nd = LARG(lp,j).ndim;
531
532
 
532
533
  switch(NA_TYPE(na)) {
533
534
  case NARRAY_DATA_T:
@@ -540,13 +541,14 @@ ndloop_set_stepidx(na_md_loop_t *lp, int j, VALUE vna, int *dim_map, int rwflag)
540
541
  s = LARG(lp,j).elmsz;
541
542
  for (k=na->ndim; k--;) {
542
543
  n = na->shape[k];
543
- if (n > 1) {
544
+ if (n > 1 || nd > 0) {
544
545
  i = dim_map[k];
545
546
  //printf("n=%d k=%d i=%d\n",n,k,i);
546
547
  LITER(lp,i,j).step = s;
547
- LITER(lp,i,j).idx = NULL;
548
+ //LITER(lp,i,j).idx = NULL;
548
549
  }
549
550
  s *= n;
551
+ nd--;
550
552
  }
551
553
  LITER(lp,0,j).pos = 0;
552
554
  break;
@@ -555,20 +557,21 @@ ndloop_set_stepidx(na_md_loop_t *lp, int j, VALUE vna, int *dim_map, int rwflag)
555
557
  for (k=0; k<na->ndim; k++) {
556
558
  n = na->shape[k];
557
559
  sdx = NA_VIEW_STRIDX(na)[k];
558
- if (n > 1) {
560
+ if (n > 1 || nd > 0) {
559
561
  i = dim_map[k];
560
562
  if (SDX_IS_INDEX(sdx)) {
561
563
  LITER(lp,i,j).step = 0;
562
564
  LITER(lp,i,j).idx = SDX_GET_INDEX(sdx);
563
565
  } else {
564
566
  LITER(lp,i,j).step = SDX_GET_STRIDE(sdx);
565
- LITER(lp,i,j).idx = NULL;
567
+ //LITER(lp,i,j).idx = NULL;
566
568
  }
567
569
  } else if (n==1) {
568
570
  if (SDX_IS_INDEX(sdx)) {
569
571
  LITER(lp,0,j).pos += SDX_GET_INDEX(sdx)[0];
570
572
  }
571
573
  }
574
+ nd--;
572
575
  }
573
576
  break;
574
577
  default:
@@ -621,8 +624,8 @@ na->shape[i] == lp->n[ dim_map[i] ]
621
624
  } else {
622
625
  lp->xargs[j].flag = flag = NDL_READ;
623
626
  }
624
- ndloop_set_stepidx(lp, j, v, dim_map, flag);
625
627
  LARG(lp,j).ndim = nf_dim;
628
+ ndloop_set_stepidx(lp, j, v, dim_map, flag);
626
629
  if (nf_dim > 0) {
627
630
  LARG(lp,j).shape = na->shape + (na->ndim - nf_dim);
628
631
  }
@@ -787,8 +790,8 @@ ndloop_set_output_narray(ndfunc_t *nf, na_md_loop_t *lp, int k,
787
790
  }
788
791
 
789
792
  j = lp->nin + k;
790
- ndloop_set_stepidx(lp, j, v, dim_map, flag);
791
793
  LARG(lp,j).ndim = nd = nf->aout[k].dim;
794
+ ndloop_set_stepidx(lp, j, v, dim_map, flag);
792
795
  if (nd > 0) {
793
796
  LARG(lp,j).shape = nf->aout[k].shape;
794
797
  }
@@ -981,7 +984,7 @@ ndfunc_set_bufcp(na_md_loop_t *lp, unsigned int loop_spec)
981
984
  if (LARG(lp,j).shape) {
982
985
  n = LARG(lp,j).shape[i];
983
986
  } else {
984
- printf("shape is NULL\n");
987
+ //printf("shape is NULL\n");
985
988
  n = lp->user.n[i];
986
989
  }
987
990
  stride = sz * n;
@@ -13,8 +13,8 @@ extern "C" {
13
13
  #endif
14
14
  #endif
15
15
 
16
- #define NARRAY_VERSION "0.9.1.1"
17
- #define NARRAY_VERSION_CODE 911
16
+ #define NARRAY_VERSION "0.9.1.2"
17
+ #define NARRAY_VERSION_CODE 912
18
18
 
19
19
  #include <math.h>
20
20
  #include "numo/compat.h"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: numo-narray
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.1.1
4
+ version: 0.9.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masahiro TANAKA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-30 00:00:00.000000000 Z
11
+ date: 2018-03-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -209,6 +209,7 @@ files:
209
209
  - ext/numo/narray/kwargs.c
210
210
  - ext/numo/narray/math.c
211
211
  - ext/numo/narray/narray.c
212
+ - ext/numo/narray/narray.def
212
213
  - ext/numo/narray/ndloop.c
213
214
  - ext/numo/narray/numo/compat.h
214
215
  - ext/numo/narray/numo/intern.h