narray 0.5.9.4 → 0.5.9.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. data/src/ChangeLog +29 -0
  2. data/src/MANIFEST +7 -36
  3. data/src/README.en +1 -5
  4. data/src/README.ja +1 -2
  5. data/src/SPEC.en +15 -8
  6. data/src/SPEC.ja +5 -2
  7. data/src/bench/all.rb +88 -0
  8. data/src/bench/bench.m +61 -0
  9. data/src/bench/bench.py +89 -0
  10. data/src/bench/bench.rb +59 -0
  11. data/src/bench/dummy.m +0 -0
  12. data/src/bench/dummy.py +13 -0
  13. data/src/bench/dummy.rb +0 -0
  14. data/src/lib/narray_ext.rb +36 -2
  15. data/src/mkmath.rb +4 -4
  16. data/src/mkop.rb +16 -16
  17. data/src/na_array.c +32 -32
  18. data/src/na_func.c +50 -50
  19. data/src/na_index.c +26 -32
  20. data/src/na_linalg.c +23 -26
  21. data/src/na_random.c +15 -18
  22. data/src/narray.c +22 -32
  23. data/src/narray.h +3 -3
  24. data/src/narray_local.h +1 -1
  25. metadata +10 -39
  26. data/src/nimage/README.en +0 -38
  27. data/src/nimage/demo/fits.rb +0 -97
  28. data/src/nimage/demo/fits_convol.rb +0 -28
  29. data/src/nimage/demo/fits_fftdemo.rb +0 -27
  30. data/src/nimage/demo/fitsdemo1.rb +0 -13
  31. data/src/nimage/demo/fitsdemo2.rb +0 -30
  32. data/src/nimage/demo/fitsdemo3.rb +0 -26
  33. data/src/nimage/demo/fitsmorph.rb +0 -39
  34. data/src/nimage/demo/life_na.rb +0 -57
  35. data/src/nimage/demo/mandel.rb +0 -41
  36. data/src/nimage/extconf.rb +0 -12
  37. data/src/nimage/lib/nimage.rb +0 -51
  38. data/src/nimage/nimage.c +0 -328
  39. data/src/speed/add.py +0 -12
  40. data/src/speed/add.rb +0 -8
  41. data/src/speed/add_int.py +0 -12
  42. data/src/speed/add_int.rb +0 -9
  43. data/src/speed/lu.m +0 -14
  44. data/src/speed/lu.rb +0 -22
  45. data/src/speed/mat.m +0 -23
  46. data/src/speed/mat.rb +0 -28
  47. data/src/speed/mul.py +0 -12
  48. data/src/speed/mul.rb +0 -9
  49. data/src/speed/mul2.py +0 -15
  50. data/src/speed/mul2.rb +0 -13
  51. data/src/speed/mul_comp.py +0 -12
  52. data/src/speed/mul_comp.rb +0 -9
  53. data/src/speed/mul_int.py +0 -12
  54. data/src/speed/mul_int.rb +0 -9
  55. data/src/speed/mybench.py +0 -15
  56. data/src/speed/mybench.rb +0 -31
  57. data/src/speed/solve.m +0 -18
  58. data/src/speed/solve.py +0 -16
  59. data/src/speed/solve.rb +0 -21
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  na_func.c
3
3
  Numerical Array Extention for Ruby
4
- (C) Copyright 1999-2003 by Masahiro TANAKA
4
+ (C) Copyright 1999-2008 by Masahiro TANAKA
5
5
 
6
6
  This program is free software.
7
7
  You can distribute/modify this program
@@ -32,7 +32,7 @@ void
32
32
  {
33
33
  int i;
34
34
 
35
- for (i=0; i<ndim; i++) {
35
+ for (i=0; i<ndim; ++i) {
36
36
  max_shp[i] = na_max3(shp1[i], shp2[i], shp3[i]);
37
37
  }
38
38
  }
@@ -51,10 +51,10 @@ void na_init_slice( struct slice *s, int rank, int *shape, int elmsz )
51
51
 
52
52
  /* set strides and clear index */
53
53
  s[0].stride = 1;
54
- for (r=1; r<rank; r++)
54
+ for (r=1; r<rank; ++r)
55
55
  s[r].stride = s[r-1].stride * shape[r-1];
56
56
 
57
- for (r=0; r<rank; r++) {
57
+ for (r=0; r<rank; ++r) {
58
58
  if ( s[r].idx == NULL )
59
59
  /* regular interval */
60
60
  s[r].pstep = s[r].step * s[r].stride * elmsz;
@@ -62,7 +62,7 @@ void na_init_slice( struct slice *s, int rank, int *shape, int elmsz )
62
62
  /* index */
63
63
  s[r].pstep = b = s[r].stride * elmsz;
64
64
  /* convert index to byte-unit */
65
- for (i=0; i<16; i++)
65
+ for (i=0; i<16; ++i)
66
66
  if ( (1<<i) == b ) { b=i; break; }
67
67
  if (i==16)
68
68
  for (idx=s[r].idx,i=s[r].n; i-->0; ) { *(idx++)*=b; }
@@ -75,7 +75,7 @@ void na_init_slice( struct slice *s, int rank, int *shape, int elmsz )
75
75
  s[rank].n = 0;
76
76
  s[rank].idx = NULL;
77
77
 
78
- for (r=rank-1;r>=0;r--) {
78
+ for (r=rank-1;r>=0;--r) {
79
79
  /* set beginning pointers */
80
80
  if ( s[r].idx == NULL )
81
81
  s[r].pbeg = s[r].stride * s[r].beg * elmsz;
@@ -102,7 +102,7 @@ static void
102
102
  for(;;) {
103
103
  /* set pointers */
104
104
  while (i > 0) {
105
- i--;
105
+ --i;
106
106
  s2[i].p = s2[i].pbeg + s2[i+1].p;
107
107
  s1[i].p = s1[i].pbeg + s1[i+1].p;
108
108
  si[i] = s1[i].n;
@@ -139,7 +139,7 @@ static void
139
139
  for(;;) {
140
140
  /* set pointers */
141
141
  while (i > 0) {
142
- i--;
142
+ --i;
143
143
  s3[i].p = s3[i].pbeg + s3[i+1].p;
144
144
  s2[i].p = s2[i].pbeg + s2[i+1].p;
145
145
  s1[i].p = s1[i].pbeg + s1[i+1].p;
@@ -187,7 +187,7 @@ void na_loop_index_ref( struct NARRAY *a1, struct NARRAY *a2,
187
187
  for(;;) {
188
188
  /* set pointers */
189
189
  while (i > 0) {
190
- i--;
190
+ --i;
191
191
  s2[i].p = s2[i].pbeg + s2[i+1].p;
192
192
  s1[i].p = s1[i].pbeg + s1[i+1].p;
193
193
  si[i] = 0;
@@ -245,7 +245,7 @@ void na_loop_general( struct NARRAY *a1, struct NARRAY *a2,
245
245
  for(;;) {
246
246
  /* set pointers */
247
247
  while (i > 0) {
248
- i--;
248
+ --i;
249
249
  s2[i].p = s2[i].pbeg + s2[i+1].p;
250
250
  s1[i].p = s1[i].pbeg + s1[i+1].p;
251
251
  si[i] = 0;
@@ -308,9 +308,9 @@ void
308
308
  {
309
309
  int i;
310
310
 
311
- for (i=0; i<a->rank; i++)
311
+ for (i=0; i<a->rank; ++i)
312
312
  shape[i] = a->shape[i];
313
- for ( ; i<ndim; i++)
313
+ for ( ; i<ndim; ++i)
314
314
  shape[i] = 1;
315
315
  }
316
316
 
@@ -321,7 +321,7 @@ void
321
321
  int i;
322
322
 
323
323
  /* for normal access */
324
- for (i=0; i<ndim; i++) {
324
+ for (i=0; i<ndim; ++i) {
325
325
  slc[i].n = shape[i];
326
326
  slc[i].beg = 0;
327
327
  slc[i].step = 1;
@@ -337,7 +337,7 @@ static int
337
337
  {
338
338
  int i, j;
339
339
 
340
- for (i=j=0; i<ndim; i++) {
340
+ for (i=j=0; i<ndim; ++i) {
341
341
 
342
342
  if ( shp1[i]==1 && shp2[i]>1 ) {
343
343
  s1[j].n =
@@ -378,7 +378,7 @@ static int
378
378
  s2[j].beg = 0;
379
379
  s1[j].idx =
380
380
  s2[j].idx = NULL;
381
- j++;
381
+ ++j;
382
382
  }
383
383
 
384
384
  return j;
@@ -406,7 +406,7 @@ int
406
406
  int i, j;
407
407
 
408
408
  /* for repetitous access */
409
- for (i=j=0; i<ndim; i++) {
409
+ for (i=j=0; i<ndim; ++i) {
410
410
 
411
411
  s1[j].step = na_set_slice_check(shp1[i],shape[i],i);
412
412
  s2[j].step = na_set_slice_check(shp2[i],shape[i],i);
@@ -446,7 +446,7 @@ int
446
446
  s2[j].idx =
447
447
  s3[j].idx = NULL;
448
448
 
449
- j++;
449
+ ++j;
450
450
  }
451
451
 
452
452
  return j;
@@ -535,13 +535,13 @@ static void
535
535
  NA_SWAP(a1,a2,tmp);
536
536
  }
537
537
 
538
- for (i=0; i<a2->rank; i++) {
538
+ for (i=0; i<a2->rank; ++i) {
539
539
  shape[i] = NA_MAX(a1->shape[i],a2->shape[i]);
540
540
  }
541
- for ( ; i<a1->rank; i++) {
541
+ for ( ; i<a1->rank; ++i) {
542
542
  shape[i] = a1->shape[i];
543
543
  }
544
- for ( ; i<ndim; i++) {
544
+ for ( ; i<ndim; ++i) {
545
545
  shape[i] = 1;
546
546
  }
547
547
  }
@@ -653,7 +653,6 @@ static VALUE
653
653
  na_exec_binary( NA_STRUCT(obj3), a1, a2,
654
654
  PowFuncs[a1->type][a2->type] );
655
655
 
656
- //na_touch_object(obj1,obj2);
657
656
  return obj3;
658
657
  }
659
658
 
@@ -668,7 +667,6 @@ static VALUE
668
667
 
669
668
  na_exec_unary( NA_STRUCT(obj1), NA_STRUCT(obj2), funcs[a1->type] );
670
669
 
671
- //na_touch_object(obj2);
672
670
  return obj1;
673
671
  }
674
672
 
@@ -683,7 +681,6 @@ static VALUE
683
681
 
684
682
  na_exec_unary( NA_STRUCT(obj1), NA_STRUCT(obj2), ImgSetFuncs[a1->type] );
685
683
 
686
- //na_touch_object(obj2);
687
684
  return obj1;
688
685
  }
689
686
 
@@ -822,6 +819,10 @@ static VALUE na_div_bang(VALUE obj1, VALUE obj2)
822
819
  static VALUE na_mul_bang(VALUE obj1, VALUE obj2)
823
820
  { return na_set_func( obj1, obj2, MulUFuncs ); }
824
821
 
822
+ /* method: self.conj! */
823
+ static VALUE na_conj_bang(VALUE self)
824
+ { return na_set_func( self, self, ConjFuncs ); }
825
+
825
826
 
826
827
  /* method: self.swap_byte */
827
828
  static VALUE na_swap_byte(VALUE self)
@@ -932,7 +933,7 @@ static VALUE
932
933
  p = a->ptr;
933
934
  for( i=a->total; i-->0; ) {
934
935
  *p = *p==0 ? 1 : 0;
935
- p++;
936
+ ++p;
936
937
  }
937
938
  return obj;
938
939
  }
@@ -949,7 +950,7 @@ static VALUE
949
950
  p = a->ptr;
950
951
  for( i=a->total; i-->0; ) {
951
952
  if (*p!=1) *p=0;
952
- p++;
953
+ ++p;
953
954
  }
954
955
  return self;
955
956
  }
@@ -968,7 +969,7 @@ static VALUE
968
969
  for( i=a->total; i-->0; ) {
969
970
  if (*p==1 || *p==0) *p=1;
970
971
  else *p=0;
971
- p++;
972
+ ++p;
972
973
  }
973
974
  return obj;
974
975
  }
@@ -987,7 +988,7 @@ static VALUE
987
988
  for( i=a->total; i-->0; ) {
988
989
  if (*p==2) *p=1;
989
990
  else *p=0;
990
- p++;
991
+ ++p;
991
992
  }
992
993
  return obj;
993
994
  }
@@ -1006,7 +1007,7 @@ static VALUE
1006
1007
  for( i=a->total; i-->0; ) {
1007
1008
  if (*p==2 || *p==0) *p=1;
1008
1009
  else *p=0;
1009
- p++;
1010
+ ++p;
1010
1011
  }
1011
1012
  return obj;
1012
1013
  }
@@ -1036,7 +1037,7 @@ static int
1036
1037
  if (flag==0)
1037
1038
  MEMZERO(rankv,int,rankc);
1038
1039
 
1039
- for (i=0;i<argc;i++) {
1040
+ for (i=0;i<argc;++i) {
1040
1041
  if ( c >= rankc )
1041
1042
  rb_raise(rb_eArgError, "too many ranks");
1042
1043
 
@@ -1051,7 +1052,7 @@ static int
1051
1052
  rankv[c] = r;
1052
1053
  else
1053
1054
  rankv[r] = 1;
1054
- c++;
1055
+ ++c;
1055
1056
  }
1056
1057
  else
1057
1058
  if (CLASS_OF(v)==rb_cRange) {
@@ -1059,12 +1060,12 @@ static int
1059
1060
  if ( c+n > rankc )
1060
1061
  rb_raise(rb_eArgError, "too many ranks");
1061
1062
  if (flag) {
1062
- for(j=0; j<n; j++)
1063
+ for(j=0; j<n; ++j)
1063
1064
  rankv[c++] = r++;
1064
1065
  } else {
1065
- for(j=0; j<n; j++) {
1066
+ for(j=0; j<n; ++j) {
1066
1067
  rankv[r++] = 1;
1067
- c++;
1068
+ ++c;
1068
1069
  }
1069
1070
  }
1070
1071
  }
@@ -1091,7 +1092,7 @@ static struct NARRAY *
1091
1092
  na_init_slice( s1, ndim, a2->shape, na_sizeof[a2->type] );
1092
1093
 
1093
1094
  /* Transpose Slice */
1094
- for (i=0; i<ndim; i++)
1095
+ for (i=0; i<ndim; ++i)
1095
1096
  s2[i] = s1[trans[i]];
1096
1097
  s2[ndim] = s1[ndim];
1097
1098
 
@@ -1123,18 +1124,18 @@ static VALUE
1123
1124
  rankc = na_arg_to_rank( argc, argv, a2->rank, rankv, 1 );
1124
1125
  if (rankc > a2->rank)
1125
1126
  rb_raise(rb_eArgError, "too many args");
1126
- for ( ;rankc<a2->rank; rankc++)
1127
+ for ( ;rankc<a2->rank; ++rankc)
1127
1128
  rankv[rankc] = rankc;
1128
1129
 
1129
1130
  /* Argument Check */
1130
1131
  MEMZERO(shape,int,rankc);
1131
- for (i=0; i<rankc; i++) {
1132
+ for (i=0; i<rankc; ++i) {
1132
1133
  if (shape[rankv[i]] != 0)
1133
1134
  rb_raise(rb_eArgError,"rank doublebooking");
1134
1135
  shape[rankv[i]] = 1;
1135
1136
  }
1136
1137
 
1137
- for (i=0; i<a2->rank; i++)
1138
+ for (i=0; i<a2->rank; ++i)
1138
1139
  shape[i] = a2->shape[rankv[i]];
1139
1140
 
1140
1141
  obj = na_make_object(a2->type, a2->rank, shape, CLASS_OF(self));
@@ -1155,13 +1156,13 @@ static void
1155
1156
 
1156
1157
  if (rankc==0) {
1157
1158
  /* Accumulate all elements */
1158
- for (i=0; i<rank; i++) {
1159
+ for (i=0; i<rank; ++i) {
1159
1160
  itr_shape[i] = 1;
1160
1161
  rankv[i] = 1;
1161
1162
  }
1162
1163
  } else {
1163
1164
  /* Select Accumulate ranks */
1164
- for (i=0; i<rank; i++) {
1165
+ for (i=0; i<rank; ++i) {
1165
1166
  if (rankv[i]==1)
1166
1167
  itr_shape[i] = 1;
1167
1168
  else
@@ -1178,7 +1179,7 @@ static void
1178
1179
  VALUE zero = INT2FIX(0);
1179
1180
  VALUE *v = (VALUE*)ary->ptr;
1180
1181
 
1181
- for (i=ary->total; i>0; i--)
1182
+ for (i=ary->total; i>0; --i)
1182
1183
  *(v++) = zero;
1183
1184
  }
1184
1185
 
@@ -1281,7 +1282,6 @@ static VALUE
1281
1282
  ans = na_shrink_rank(ans,cl_dim,rankv);
1282
1283
 
1283
1284
  xfree(rankv);
1284
- //na_touch_object(self,other);
1285
1285
  return ans;
1286
1286
  }
1287
1287
 
@@ -1358,7 +1358,7 @@ static void
1358
1358
  s2 = &s1[ndim+1];
1359
1359
 
1360
1360
  na_set_slice_1obj(a1->rank,s1,a1->shape);
1361
- for (i=0; i<ndim; i++) {
1361
+ for (i=0; i<ndim; ++i) {
1362
1362
  s2[i].n = a1->shape[i]; /* no-repeat if a1->shape[i]==1 */
1363
1363
  s2[i].beg = 0; /* copy idx=0 */
1364
1364
  s2[i].step = 1;
@@ -1434,7 +1434,7 @@ static int
1434
1434
  }
1435
1435
 
1436
1436
  nsort = 1;
1437
- for (i=0; i<=rank; i++)
1437
+ for (i=0; i<=rank; ++i)
1438
1438
  nsort *= a1->shape[i];
1439
1439
  return nsort;
1440
1440
  }
@@ -1463,7 +1463,7 @@ static VALUE
1463
1463
  ptr = a2->ptr;
1464
1464
  step = size * nsort;
1465
1465
 
1466
- for (i=0; i<nloop; i++) {
1466
+ for (i=0; i<nloop; ++i) {
1467
1467
  qsort( ptr, nsort, size, func );
1468
1468
  ptr += step;
1469
1469
  }
@@ -1490,7 +1490,7 @@ static VALUE
1490
1490
  ptr = a1->ptr;
1491
1491
  step = size * nsort;
1492
1492
 
1493
- for (i=0; i<nloop; i++) {
1493
+ for (i=0; i<nloop; ++i) {
1494
1494
  qsort( ptr, nsort, size, func );
1495
1495
  ptr += step;
1496
1496
  }
@@ -1519,7 +1519,7 @@ static VALUE
1519
1519
  ptr_p = ptr_ptr = ALLOC_N(char*, a1->total);
1520
1520
  ptr_a = ptr_ary = a1->ptr;
1521
1521
 
1522
- for (i=a1->total; i>0; i--) {
1522
+ for (i=a1->total; i>0; --i) {
1523
1523
  *(ptr_p++) = ptr_a;
1524
1524
  ptr_a += size;
1525
1525
  }
@@ -1527,7 +1527,7 @@ static VALUE
1527
1527
  func = SortIdxFuncs[a1->type];
1528
1528
  ptr_p = ptr_ptr;
1529
1529
 
1530
- for (i=0; i<nloop; i++) {
1530
+ for (i=0; i<nloop; ++i) {
1531
1531
  qsort( ptr_p, nsort, sizeof(char*), func );
1532
1532
  ptr_p += nsort;
1533
1533
  }
@@ -1536,7 +1536,7 @@ static VALUE
1536
1536
  GetNArray(obj,a2);
1537
1537
  ptr_p = ptr_ptr;
1538
1538
  ptr_i = (int32_t*)(a2->ptr);
1539
- for (i=a2->total; i>0; i--) {
1539
+ for (i=a2->total; i>0; --i) {
1540
1540
  *(ptr_i++) = (int32_t)(*(ptr_p++)-ptr_ary)/size;
1541
1541
  }
1542
1542
  xfree(ptr_ptr);
@@ -1548,7 +1548,6 @@ static VALUE
1548
1548
  void Init_na_funcs(void)
1549
1549
  {
1550
1550
  rb_define_method(cNArray, "+", na_add, 1);
1551
- rb_define_method(cNArray, "*", na_mul, 1);
1552
1551
  rb_define_method(cNArray, "-", na_sbt, 1);
1553
1552
  rb_define_method(cNArray, "*", na_mul, 1);
1554
1553
  rb_define_method(cNArray, "/", na_div, 1);
@@ -1559,7 +1558,6 @@ void Init_na_funcs(void)
1559
1558
  rb_define_method(cNArray, "**", na_power, 1);
1560
1559
 
1561
1560
  rb_define_method(cNArray, "add!", na_add_bang, 1);
1562
- rb_define_method(cNArray, "mul!", na_mul_bang, 1);
1563
1561
  rb_define_method(cNArray, "sbt!", na_sbt_bang, 1);
1564
1562
  rb_define_method(cNArray, "mul!", na_mul_bang, 1);
1565
1563
  rb_define_method(cNArray, "div!", na_div_bang, 1);
@@ -1580,6 +1578,8 @@ void Init_na_funcs(void)
1580
1578
  rb_define_alias (cNArray, "arg", "angle");
1581
1579
  rb_define_method(cNArray, "conj", na_conj, 0);
1582
1580
  rb_define_alias (cNArray, "conjugate", "conj");
1581
+ rb_define_method(cNArray, "conj!", na_conj_bang, 0);
1582
+ rb_define_alias (cNArray, "conjugate!", "conj!");
1583
1583
  rb_define_method(cNArray, "im", na_imag_mul, 0);
1584
1584
  rb_define_method(cNArray, "floor",na_floor, 0);
1585
1585
  rb_define_method(cNArray, "ceil", na_ceil, 0);
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  na_index.c
3
3
  Numerical Array Extention for Ruby
4
- (C) Copyright 1999-2003 by Masahiro TANAKA
4
+ (C) Copyright 1999-2008 by Masahiro TANAKA
5
5
 
6
6
  This program is free software.
7
7
  You can distribute/modify this program
@@ -47,18 +47,18 @@ static int
47
47
  /* direction */
48
48
  if (len>0) {
49
49
  step = 1;
50
- if (EXCL(obj)) end--; else len++;
50
+ if (EXCL(obj)) --end; else ++len;
51
51
  }
52
52
  else if (len<0) {
53
53
  len = -len;
54
54
  step = -1;
55
- if (EXCL(obj)) end++; else len++;
55
+ if (EXCL(obj)) ++end; else ++len;
56
56
  }
57
57
  else /*if(len==0)*/ {
58
58
  if (EXCL(obj))
59
59
  rb_raise(rb_eIndexError, "empty range");
60
60
  else {
61
- len++;
61
+ ++len;
62
62
  step = 1; /* or 0 ? depend on whether removing rank */
63
63
  }
64
64
  }
@@ -120,11 +120,11 @@ static int
120
120
  SetFuncs[NA_LINT][a1->type]( s->n,
121
121
  s->idx, na_sizeof[NA_LINT],
122
122
  a1->ptr, na_sizeof[a1->type] );
123
- for ( i=a1->total; i>0; i-- ) {
123
+ for ( i=a1->total; i>0; --i ) {
124
124
  if ( *p<0 ) *p += size;
125
125
  if ( *p<0 || *p>=size )
126
126
  rb_raise(rb_eIndexError, "index %i out of range %i", *p, size);
127
- p++;
127
+ ++p;
128
128
  }
129
129
  s->beg = s->idx[0];
130
130
  }
@@ -188,7 +188,6 @@ static int na_index_test(volatile VALUE idx, int shape, struct slice *sl)
188
188
  idx = na_cast_object(idx,NA_LINT);
189
189
  GetNArray(idx,na);
190
190
  size = na_ary_to_index(na,shape,sl);
191
- //na_touch_object(idx);
192
191
  return size;
193
192
 
194
193
  default:
@@ -220,11 +219,11 @@ static int
220
219
  int i, j, k, total=1, size;
221
220
  int multi_ellip=0;
222
221
 
223
- for (i=j=0; i<nidx; i++) {
222
+ for (i=j=0; i<nidx; ++i) {
224
223
  if (TYPE(idx[i])==T_FALSE) {
225
224
  if (multi_ellip!=0)
226
225
  rb_raise(rb_eIndexError, "multiple ellipsis-dimension is not allowd");
227
- for (k=ary->rank-nidx+1; k>0; k--,j++) {
226
+ for (k=ary->rank-nidx+1; k>0; --k,++j) {
228
227
  size = na_index_test( Qtrue, ary->shape[j], &sl[j] );
229
228
  if (size != 1)
230
229
  total *= size;
@@ -234,7 +233,7 @@ static int
234
233
  size = na_index_test( idx[i], ary->shape[j], &sl[j] );
235
234
  if (size != 1)
236
235
  total *= size;
237
- j++;
236
+ ++j;
238
237
  }
239
238
  }
240
239
  if (j != ary->rank)
@@ -250,7 +249,7 @@ int
250
249
  {
251
250
  int i;
252
251
 
253
- for (i=0; i<class_dim; i++) {
252
+ for (i=0; i<class_dim; ++i) {
254
253
  if (shrink[i]==0) /* non-trim dimention */
255
254
  return 0;
256
255
  }
@@ -270,19 +269,19 @@ VALUE
270
269
  if (ary->rank < class_dim)
271
270
  return obj;
272
271
 
273
- for (j=i=0; i<class_dim; i++) {
272
+ for (j=i=0; i<class_dim; ++i) {
274
273
  if (ary->shape[i]!=1 || shrink[i]==0) /* not trim */
275
- j++;
274
+ ++j;
276
275
  }
277
276
 
278
277
  if (j>0) /* if non-trim dimensions exist, */
279
278
  j = class_dim; /* then do not trim class_dimension. */
280
279
  /* if (j==0) then all trim. */
281
280
 
282
- for (i=class_dim; i<ary->rank; i++) {
281
+ for (i=class_dim; i<ary->rank; ++i) {
283
282
  if (ary->shape[i]!=1 || shrink[i]==0) { /* not trim */
284
283
  if (i>j) ary->shape[j] = ary->shape[i];
285
- j++;
284
+ ++j;
286
285
  }
287
286
  }
288
287
  ary->rank = j;
@@ -311,7 +310,7 @@ static VALUE
311
310
  shape = ALLOCA_N(int,ndim);
312
311
  shrink = ALLOCA_N(int,ndim);
313
312
 
314
- for (i=0; i<ndim; i++) {
313
+ for (i=0; i<ndim; ++i) {
315
314
  shape[i] = s2[i].n;
316
315
  if (shape[i]==1 && s2[i].step==0) /* shrink? */
317
316
  shrink[i] = 1;
@@ -385,7 +384,6 @@ static VALUE
385
384
  }
386
385
 
387
386
  na_free_slice_index(s1,1);
388
- //na_touch_object(vidx);
389
387
  return v;
390
388
  }
391
389
 
@@ -440,7 +438,7 @@ static VALUE
440
438
  if (flag==0) {
441
439
  rank = 0; /* [] */
442
440
  for ( i=ary->rank; (i--)>0; ) {
443
- if (sl[i].step!=0) rank++;
441
+ if (sl[i].step!=0) ++rank;
444
442
  }
445
443
  }
446
444
  else {
@@ -460,7 +458,7 @@ static VALUE
460
458
  class_dim = na_class_dim(klass);
461
459
  if (rank < class_dim) rank = class_dim;
462
460
  shape = ALLOCA_N(int, rank);
463
- for (i=0;i<rank;i++) shape[i]=1;
461
+ for (i=0;i<rank;++i) shape[i]=1;
464
462
  v = na_make_object(ary->type,rank,shape,klass);
465
463
  GetNArray(v,arynew);
466
464
  SetFuncs[ary->type][ary->type](1, arynew->ptr, 0, NA_PTR(ary,pos), 0);
@@ -515,7 +513,7 @@ static int
515
513
  if ( ary->type == NA_BYTE ) {
516
514
  ptr = (u_int8_t *)ary->ptr;
517
515
  n = ary->total;
518
- for (; n; n--) {
516
+ for (; n; --n) {
519
517
  if (*ptr++) ++count;
520
518
  }
521
519
  } else
@@ -541,7 +539,7 @@ static int
541
539
  if ( ary->type == NA_BYTE ) {
542
540
  ptr = (u_int8_t *)ary->ptr;
543
541
  n = ary->total;
544
- for (; n; n--) {
542
+ for (; n; --n) {
545
543
  if (!*ptr++) ++count;
546
544
  }
547
545
  } else
@@ -571,7 +569,7 @@ VALUE
571
569
  if (a1->rank != am->rank)
572
570
  rb_raise(rb_eTypeError,"self.rank(=%i) != mask.rank(=%i)",
573
571
  a1->rank, am->rank);
574
- for (i=0; i<a1->rank; i++)
572
+ for (i=0; i<a1->rank; ++i)
575
573
  if (a1->shape[i] != am->shape[i])
576
574
  rb_raise(rb_eTypeError,"self.shape[%i](=%i) != mask.shape[%i](=%i)",
577
575
  i, a1->shape[i], i, am->shape[i]);
@@ -636,7 +634,7 @@ static void
636
634
  {
637
635
  int i;
638
636
 
639
- for (i=0; i<rank; i++) {
637
+ for (i=0; i<rank; ++i) {
640
638
  src_shape[i] = 1; /* all 1 */
641
639
  if ( (src_slc[i].n = dst_slc[i].n) < 1 )
642
640
  rb_raise(rb_eIndexError, "dst_slice[%i].n=%i ???", i, dst_slc[i].n);
@@ -655,7 +653,7 @@ static void
655
653
  int i, j, idx_end;
656
654
 
657
655
  /* count range index */
658
- for (j=i=0; i<dst->rank; i++) {
656
+ for (j=i=0; i<dst->rank; ++i) {
659
657
 
660
658
  if ( s1[i].step !=0 ) { /* Range index */
661
659
 
@@ -762,7 +760,7 @@ static void
762
760
  rb_raise( rb_eIndexError, "idx.rank=%i != src.rank=%i",
763
761
  aidx->rank, src->rank );
764
762
  /* check shape */
765
- for (i=0;i<src->rank;i++)
763
+ for (i=0;i<src->rank;++i)
766
764
  if (aidx->shape[i] != src->shape[i] && src->shape[i] != 1)
767
765
  rb_raise( rb_eIndexError, "idx.shape[%i]=%i != src.shape[%i]=%i",
768
766
  i, aidx->shape[i], i, src->shape[i] );
@@ -781,7 +779,6 @@ static void
781
779
 
782
780
  na_aset_slice( dst, src, sl );
783
781
  na_free_slice_index( sl, 1 ); /* free index memory */
784
- //na_touch_object(idx,val);
785
782
  }
786
783
 
787
784
 
@@ -830,7 +827,6 @@ static void
830
827
  na_aset_slice( dst, src, sl );
831
828
 
832
829
  na_free_slice_index(sl,1); /* free index memory */
833
- //na_touch_object(val);
834
830
  }
835
831
 
836
832
 
@@ -858,7 +854,7 @@ static void
858
854
  val = na_cast_unless_narray(val,dst->type);
859
855
  GetNArray(val,src);
860
856
  if (src->total > 1)
861
- for( i=0; i<src->rank; i++ ) {
857
+ for( i=0; i<src->rank; ++i ) {
862
858
  sl[i].n = 0;
863
859
  sl[i].step = 1;
864
860
  }
@@ -886,7 +882,6 @@ static void
886
882
 
887
883
  na_free_slice_index(sl,nidx); /* free index memory */
888
884
  xfree(sl);
889
- //na_touch_object(val);
890
885
  }
891
886
 
892
887
 
@@ -913,7 +908,6 @@ static void
913
908
  else {
914
909
  na_fill( self, val ); /* Simple filling */
915
910
  }
916
- //na_touch_object(val);
917
911
  }
918
912
 
919
913
 
@@ -933,7 +927,7 @@ void
933
927
  if (a1->rank != am->rank)
934
928
  rb_raise(rb_eTypeError,"self.rank(=%i) != mask.rank(=%i)",
935
929
  a1->rank, am->rank);
936
- for (i=0; i<a1->rank; i++)
930
+ for (i=0; i<a1->rank; ++i)
937
931
  if (a1->shape[i] != am->shape[i])
938
932
  rb_raise(rb_eTypeError,"self.shape[%i](=%i) != mask.shape[%i](=%i)",
939
933
  i, a1->shape[i], i, am->shape[i]);
@@ -959,7 +953,7 @@ void
959
953
  VALUE
960
954
  na_aset(int nidx, VALUE *idx, VALUE self)
961
955
  {
962
- nidx--;
956
+ --nidx;
963
957
 
964
958
  if (nidx==0) {
965
959
  na_aset_fill( self, idx[0] );