numo-narray 0.9.0.4 → 0.9.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -8
- data/Rakefile +9 -0
- data/ext/numo/narray/array.c +178 -47
- data/ext/numo/narray/data.c +105 -97
- data/ext/numo/narray/depend.erb +6 -7
- data/ext/numo/narray/gen/cogen.rb +30 -7
- data/ext/numo/narray/gen/def/bit.rb +17 -14
- data/ext/numo/narray/gen/def/dcomplex.rb +19 -15
- data/ext/numo/narray/gen/def/dfloat.rb +17 -13
- data/ext/numo/narray/gen/def/int16.rb +16 -12
- data/ext/numo/narray/gen/def/int32.rb +16 -12
- data/ext/numo/narray/gen/def/int64.rb +16 -12
- data/ext/numo/narray/gen/def/int8.rb +16 -12
- data/ext/numo/narray/gen/def/robject.rb +18 -14
- data/ext/numo/narray/gen/def/scomplex.rb +19 -15
- data/ext/numo/narray/gen/def/sfloat.rb +17 -13
- data/ext/numo/narray/gen/def/uint16.rb +16 -12
- data/ext/numo/narray/gen/def/uint32.rb +16 -12
- data/ext/numo/narray/gen/def/uint64.rb +16 -12
- data/ext/numo/narray/gen/def/uint8.rb +16 -12
- data/ext/numo/narray/gen/erbpp2.rb +324 -0
- data/ext/numo/narray/gen/narray_def.rb +252 -0
- data/ext/numo/narray/gen/spec.rb +141 -71
- data/ext/numo/narray/gen/tmpl/accum.c +22 -9
- data/ext/numo/narray/gen/tmpl/accum_binary.c +29 -13
- data/ext/numo/narray/gen/tmpl/accum_index.c +38 -16
- data/ext/numo/narray/gen/tmpl/alloc_func.c +107 -0
- data/ext/numo/narray/gen/tmpl/allocate.c +1 -1
- data/ext/numo/narray/gen/tmpl/aref.c +1 -1
- data/ext/numo/narray/gen/tmpl/aset.c +4 -2
- data/ext/numo/narray/gen/tmpl/binary.c +4 -4
- data/ext/numo/narray/gen/tmpl/binary2.c +5 -5
- data/ext/numo/narray/gen/tmpl/binary_s.c +5 -5
- data/ext/numo/narray/gen/tmpl/bincount.c +4 -4
- data/ext/numo/narray/gen/tmpl/cast.c +9 -6
- data/ext/numo/narray/gen/tmpl/cast_array.c +4 -9
- data/ext/numo/narray/gen/tmpl/class.c +9 -0
- data/ext/numo/narray/gen/tmpl/clip.c +118 -0
- data/ext/numo/narray/gen/tmpl/coerce_cast.c +4 -2
- data/ext/numo/narray/gen/tmpl/cond_binary.c +5 -5
- data/ext/numo/narray/gen/tmpl/cond_unary.c +6 -6
- data/ext/numo/narray/gen/tmpl/cum.c +18 -9
- data/ext/numo/narray/gen/tmpl/each.c +2 -2
- data/ext/numo/narray/gen/tmpl/each_with_index.c +2 -2
- data/ext/numo/narray/gen/tmpl/extract.c +2 -2
- data/ext/numo/narray/gen/tmpl/extract_data.c +48 -0
- data/ext/numo/narray/gen/tmpl/eye.c +3 -3
- data/ext/numo/narray/gen/tmpl/fill.c +2 -2
- data/ext/numo/narray/gen/tmpl/format.c +5 -5
- data/ext/numo/narray/gen/tmpl/format_to_a.c +4 -4
- data/ext/numo/narray/gen/tmpl/frexp.c +37 -0
- data/ext/numo/narray/gen/tmpl/init_class.c +20 -0
- data/ext/numo/narray/gen/tmpl/init_module.c +12 -0
- data/ext/numo/narray/gen/tmpl/inspect.c +2 -2
- data/ext/numo/narray/gen/tmpl/lib.c +45 -0
- data/ext/numo/narray/gen/tmpl/logseq.c +1 -1
- data/ext/numo/narray/gen/tmpl/map_with_index.c +2 -2
- data/ext/numo/narray/gen/tmpl/median.c +31 -8
- data/ext/numo/narray/gen/tmpl/minmax.c +24 -24
- data/ext/numo/narray/gen/tmpl/module.c +9 -0
- data/ext/numo/narray/gen/tmpl/new_dim0.c +12 -0
- data/ext/numo/narray/gen/tmpl/poly.c +3 -3
- data/ext/numo/narray/gen/tmpl/pow.c +1 -1
- data/ext/numo/narray/gen/tmpl/powint.c +1 -1
- data/ext/numo/narray/gen/tmpl/qsort.c +10 -3
- data/ext/numo/narray/gen/tmpl/rand.c +1 -1
- data/ext/numo/narray/gen/tmpl/rand_norm.c +1 -1
- data/ext/numo/narray/gen/tmpl/seq.c +1 -1
- data/ext/numo/narray/gen/tmpl/set2.c +5 -5
- data/ext/numo/narray/gen/tmpl/sort.c +29 -14
- data/ext/numo/narray/gen/tmpl/sort_index.c +41 -20
- data/ext/numo/narray/gen/tmpl/store.c +11 -5
- data/ext/numo/narray/gen/tmpl/store_array.c +1 -1
- data/ext/numo/narray/gen/tmpl/store_bit.c +1 -1
- data/ext/numo/narray/gen/tmpl/store_from.c +1 -1
- data/ext/numo/narray/gen/tmpl/store_numeric.c +3 -16
- data/ext/numo/narray/gen/tmpl/to_a.c +2 -2
- data/ext/numo/narray/gen/tmpl/unary.c +7 -7
- data/ext/numo/narray/gen/tmpl/unary2.c +8 -8
- data/ext/numo/narray/gen/tmpl/unary_ret2.c +33 -0
- data/ext/numo/narray/gen/tmpl/unary_s.c +8 -8
- data/ext/numo/narray/gen/tmpl_bit/allocate.c +1 -5
- data/ext/numo/narray/gen/tmpl_bit/aref.c +1 -1
- data/ext/numo/narray/gen/tmpl_bit/aset.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/binary.c +8 -8
- data/ext/numo/narray/gen/tmpl_bit/bit_count.c +8 -8
- data/ext/numo/narray/gen/tmpl_bit/bit_reduce.c +6 -6
- data/ext/numo/narray/gen/tmpl_bit/each.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/each_with_index.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/extract.c +1 -1
- data/ext/numo/narray/gen/tmpl_bit/fill.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/format.c +5 -5
- data/ext/numo/narray/gen/tmpl_bit/format_to_a.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/inspect.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/mask.c +5 -5
- data/ext/numo/narray/gen/tmpl_bit/none_p.c +4 -4
- data/ext/numo/narray/gen/tmpl_bit/store_array.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/store_bit.c +1 -1
- data/ext/numo/narray/gen/tmpl_bit/store_from.c +1 -1
- data/ext/numo/narray/gen/tmpl_bit/to_a.c +2 -2
- data/ext/numo/narray/gen/tmpl_bit/unary.c +9 -9
- data/ext/numo/narray/gen/tmpl_bit/where.c +6 -6
- data/ext/numo/narray/gen/tmpl_bit/where2.c +8 -8
- data/ext/numo/narray/index.c +46 -30
- data/ext/numo/narray/math.c +12 -6
- data/ext/numo/narray/narray.c +242 -218
- data/ext/numo/narray/ndloop.c +17 -24
- data/ext/numo/narray/numo/intern.h +63 -67
- data/ext/numo/narray/numo/narray.h +38 -13
- data/ext/numo/narray/numo/ndloop.h +1 -1
- data/ext/numo/narray/numo/template.h +1 -1
- data/ext/numo/narray/numo/types/complex.h +8 -4
- data/ext/numo/narray/numo/types/complex_macro.h +118 -1
- data/ext/numo/narray/numo/types/float_macro.h +283 -6
- data/ext/numo/narray/numo/types/robj_macro.h +261 -9
- data/ext/numo/narray/numo/types/xint_macro.h +35 -0
- data/ext/numo/narray/struct.c +34 -15
- data/lib/erbpp.rb +5 -1
- data/lib/erbpp/line_number.rb +10 -3
- data/lib/erbpp/narray_def.rb +55 -25
- data/lib/numo/narray/extra.rb +638 -219
- data/numo-narray.gemspec +1 -0
- data/spec/narray_spec.rb +2 -2
- metadata +17 -14
- data/ext/numo/narray/gen/dtype.erb.c +0 -82
- data/ext/numo/narray/gen/tmpl/cast_numeric.c +0 -22
- data/ext/numo/narray/gen/tmpl/robj_allocate.c +0 -32
- data/ext/numo/narray/gen/tmpl_bit/cast.c +0 -37
- data/ext/numo/narray/gen/tmpl_bit/cast_array.c +0 -18
- data/ext/numo/narray/gen/tmpl_bit/cast_numeric.c +0 -22
- data/ext/numo/narray/gen/tmpl_bit/coerce_cast.c +0 -8
- data/ext/numo/narray/gen/tmpl_bit/map_with_index.c +0 -94
- data/ext/numo/narray/gen/tmpl_bit/store.c +0 -32
- data/ext/numo/narray/gen/tmpl_bit/store_numeric.c +0 -22
@@ -1,5 +1,5 @@
|
|
1
1
|
static VALUE
|
2
|
-
<%=c_func%>(VALUE self)
|
2
|
+
<%=c_func(0)%>(VALUE self)
|
3
3
|
{
|
4
4
|
narray_t *na;
|
5
5
|
char *ptr;
|
@@ -14,10 +14,6 @@ static VALUE
|
|
14
14
|
NA_DATA_PTR(na) = ptr;
|
15
15
|
}
|
16
16
|
break;
|
17
|
-
//case NARRAY_FILEMAP_T:
|
18
|
-
// to be implemented
|
19
|
-
// ptr = ((narray_filemap_t*)na)->ptr;
|
20
|
-
// break;
|
21
17
|
case NARRAY_VIEW_T:
|
22
18
|
rb_funcall(NA_VIEW_DATA(na), rb_intern("allocate"), 0);
|
23
19
|
break;
|
@@ -38,7 +38,7 @@
|
|
38
38
|
|
39
39
|
*/
|
40
40
|
static VALUE
|
41
|
-
<%=c_func%>(int argc, VALUE *argv, VALUE self)
|
41
|
+
<%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
|
42
42
|
{
|
43
43
|
int nd;
|
44
44
|
size_t pos;
|
@@ -55,8 +55,8 @@ static VALUE
|
|
55
55
|
a = na_aref_main(argc, argv, self, 0, nd);
|
56
56
|
<%=c_func.sub(/_aset/,"_store")%>(a, argv[argc]);
|
57
57
|
} else {
|
58
|
+
x = <%=type_name%>_extract_data(argv[argc]);
|
58
59
|
ptr = na_get_pointer_for_read_write(self);
|
59
|
-
x = m_num_to_data(argv[argc]);
|
60
60
|
STORE_BIT(ptr,pos,x);
|
61
61
|
}
|
62
62
|
|
@@ -17,7 +17,7 @@ static void
|
|
17
17
|
for (; n--;) {
|
18
18
|
LOAD_BIT_STEP(a1, p1, s1, idx1, x);
|
19
19
|
LOAD_BIT_STEP(a2, p2, s2, idx2, y);
|
20
|
-
x = m_<%=
|
20
|
+
x = m_<%=name%>(x,y);
|
21
21
|
STORE_BIT_STEP(a3, p3, s3, idx3, x);
|
22
22
|
}
|
23
23
|
} else {
|
@@ -40,7 +40,7 @@ static void
|
|
40
40
|
else y = *a2<<-o2;
|
41
41
|
if (p2+len>NB) y |= *(a2+1)<<r2;
|
42
42
|
a2++;
|
43
|
-
x = m_<%=
|
43
|
+
x = m_<%=name%>(x,y);
|
44
44
|
*a3 = (x & (SLB(len)<<p3)) | (*a3 & ~(SLB(len)<<p3));
|
45
45
|
a3++;
|
46
46
|
n -= len;
|
@@ -49,7 +49,7 @@ static void
|
|
49
49
|
for (; n>=NB; n-=NB) {
|
50
50
|
x = *(a1++);
|
51
51
|
y = *(a2++);
|
52
|
-
x = m_<%=
|
52
|
+
x = m_<%=name%>(x,y);
|
53
53
|
*(a3++) = x;
|
54
54
|
}
|
55
55
|
} else {
|
@@ -62,7 +62,7 @@ static void
|
|
62
62
|
if (o2<0) y |= *(a2-1)>>l2;
|
63
63
|
if (o2>0) y |= *(a2+1)<<r2;
|
64
64
|
a2++;
|
65
|
-
x = m_<%=
|
65
|
+
x = m_<%=name%>(x,y);
|
66
66
|
*(a3++) = x;
|
67
67
|
}
|
68
68
|
}
|
@@ -71,20 +71,20 @@ static void
|
|
71
71
|
if (o1<0) x |= *(a1-1)>>l1;
|
72
72
|
y = *a2>>o2;
|
73
73
|
if (o2<0) y |= *(a2-1)>>l2;
|
74
|
-
x = m_<%=
|
74
|
+
x = m_<%=name%>(x,y);
|
75
75
|
*a3 = (x & SLB(n)) | (*a3 & BALL<<n);
|
76
76
|
}
|
77
77
|
}
|
78
78
|
}
|
79
79
|
|
80
80
|
/*
|
81
|
-
Binary <%=
|
81
|
+
Binary <%=name%>.
|
82
82
|
@overload <%=op_map%> other
|
83
83
|
@param [Numo::NArray,Numeric] other
|
84
|
-
@return [Numo::NArray] <%=
|
84
|
+
@return [Numo::NArray] <%=name%> of self and other.
|
85
85
|
*/
|
86
86
|
static VALUE
|
87
|
-
<%=c_func%>(VALUE self, VALUE other)
|
87
|
+
<%=c_func(1)%>(VALUE self, VALUE other)
|
88
88
|
{
|
89
89
|
ndfunc_arg_in_t ain[2] = {{cT,0},{cT,0}};
|
90
90
|
ndfunc_arg_out_t aout[1] = {{cT,0}};
|
@@ -22,7 +22,7 @@ static void
|
|
22
22
|
for (; i--;) {
|
23
23
|
LOAD_BIT(a1, p1+*idx1, x);
|
24
24
|
idx1++;
|
25
|
-
if (m_<%=
|
25
|
+
if (m_<%=name%>(x)) {
|
26
26
|
y++;
|
27
27
|
}
|
28
28
|
}
|
@@ -30,7 +30,7 @@ static void
|
|
30
30
|
for (; i--;) {
|
31
31
|
LOAD_BIT(a1, p1, x);
|
32
32
|
p1 += s1;
|
33
|
-
if (m_<%=
|
33
|
+
if (m_<%=name%>(x)) {
|
34
34
|
y++;
|
35
35
|
}
|
36
36
|
}
|
@@ -41,7 +41,7 @@ static void
|
|
41
41
|
for (; i--;) {
|
42
42
|
LOAD_BIT(a1, p1+*idx1, x);
|
43
43
|
idx1++;
|
44
|
-
if (m_<%=
|
44
|
+
if (m_<%=name%>(x)) {
|
45
45
|
GET_DATA(p2, int_t, y);
|
46
46
|
y++;
|
47
47
|
SET_DATA(p2, int_t, y);
|
@@ -52,7 +52,7 @@ static void
|
|
52
52
|
for (; i--;) {
|
53
53
|
LOAD_BIT(a1, p1, x);
|
54
54
|
p1+=s1;
|
55
|
-
if (m_<%=
|
55
|
+
if (m_<%=name%>(x)) {
|
56
56
|
GET_DATA(p2, int_t, y);
|
57
57
|
y++;
|
58
58
|
SET_DATA(p2, int_t, y);
|
@@ -66,19 +66,19 @@ static void
|
|
66
66
|
/*
|
67
67
|
Returns the number of bits.
|
68
68
|
If argument is supplied, return Int-array counted along the axes.
|
69
|
-
@overload <%=op_map%>(
|
70
|
-
@param [Integer] axis axes to be counted.
|
69
|
+
@overload <%=op_map%>(axis:nil)
|
70
|
+
@param [Integer,Array,Range] axis axes to be counted.
|
71
71
|
@return [Numo::Int64]
|
72
72
|
*/
|
73
73
|
static VALUE
|
74
|
-
<%=c_func%>(int argc, VALUE *argv, VALUE self)
|
74
|
+
<%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
|
75
75
|
{
|
76
76
|
VALUE v, reduce;
|
77
77
|
ndfunc_arg_in_t ain[3] = {{cT,0},{sym_reduce,0},{sym_init,0}};
|
78
78
|
ndfunc_arg_out_t aout[1] = {{numo_cInt64,0}};
|
79
79
|
ndfunc_t ndf = { <%=c_iter%>, FULL_LOOP_NIP, 3, 1, ain, aout };
|
80
80
|
|
81
|
-
reduce = na_reduce_dimension(argc, argv, 1, &self);
|
81
|
+
reduce = na_reduce_dimension(argc, argv, 1, &self, 0);
|
82
82
|
v = na_ndloop(&ndf, 3, self, reduce, INT2FIX(0));
|
83
83
|
return rb_funcall(v,rb_intern("extract"),0);
|
84
84
|
}
|
@@ -91,31 +91,31 @@ static void
|
|
91
91
|
}
|
92
92
|
|
93
93
|
/*
|
94
|
-
<% case
|
94
|
+
<% case name
|
95
95
|
when /^any/ %>
|
96
96
|
Return true if any of bits is one (true).
|
97
97
|
<% when /^all/ %>
|
98
98
|
Return true if all of bits are one (true).
|
99
99
|
<% end %>
|
100
100
|
If argument is supplied, return Bit-array reduced along the axes.
|
101
|
-
@overload <%=op_map%>(
|
102
|
-
@param [Integer] axis axes to be reduced.
|
101
|
+
@overload <%=op_map%>(axis:nil)
|
102
|
+
@param [Integer,Array,Range] axis axes to be reduced.
|
103
103
|
@return [Numo::Bit] .
|
104
104
|
*/
|
105
105
|
static VALUE
|
106
|
-
<%=c_func%>(int argc, VALUE *argv, VALUE self)
|
106
|
+
<%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
|
107
107
|
{
|
108
108
|
VALUE v, reduce;
|
109
109
|
ndfunc_arg_in_t ain[3] = {{cT,0},{sym_reduce,0},{sym_init,0}};
|
110
110
|
ndfunc_arg_out_t aout[1] = {{numo_cBit,0}};
|
111
111
|
ndfunc_t ndf = {<%=c_iter%>, FULL_LOOP_NIP, 3,1, ain,aout};
|
112
112
|
|
113
|
-
reduce = na_reduce_dimension(argc, argv, 1, &self);
|
113
|
+
reduce = na_reduce_dimension(argc, argv, 1, &self, 0);
|
114
114
|
v = na_ndloop(&ndf, 3, self, reduce, INT2FIX(<%=init_bit%>));
|
115
115
|
if (argc > 0) {
|
116
116
|
return v;
|
117
117
|
}
|
118
|
-
v =
|
118
|
+
v = <%=find_tmpl("extract").c_func%>(v);
|
119
119
|
switch (v) {
|
120
120
|
case INT2FIX(0):
|
121
121
|
return Qfalse;
|
@@ -28,13 +28,13 @@ void
|
|
28
28
|
/*
|
29
29
|
Calls the given block once for each element in self,
|
30
30
|
passing that element as a parameter.
|
31
|
-
@overload <%=
|
31
|
+
@overload <%=name%>
|
32
32
|
@return [Numo::NArray] self
|
33
33
|
For a block {|x| ... }
|
34
34
|
@yield [x] x is element of NArray.
|
35
35
|
*/
|
36
36
|
static VALUE
|
37
|
-
<%=c_func%>(VALUE self)
|
37
|
+
<%=c_func(0)%>(VALUE self)
|
38
38
|
{
|
39
39
|
ndfunc_arg_in_t ain[1] = {{Qnil,0}};
|
40
40
|
ndfunc_t ndf = {<%=c_iter%>, FULL_LOOP_NIP, 1,0, ain,0};
|
@@ -50,13 +50,13 @@ void
|
|
50
50
|
/*
|
51
51
|
Invokes the given block once for each element of self,
|
52
52
|
passing that element and indices along each axis as parameters.
|
53
|
-
@overload <%=
|
53
|
+
@overload <%=name%>
|
54
54
|
@return [Numo::NArray] self
|
55
55
|
For a block {|x,i,j,...| ... }
|
56
56
|
@yield [x,i,j,...] x is an element, i,j,... are multidimensional indices.
|
57
57
|
*/
|
58
58
|
static VALUE
|
59
|
-
<%=c_func%>(VALUE self)
|
59
|
+
<%=c_func(0)%>(VALUE self)
|
60
60
|
{
|
61
61
|
ndfunc_arg_in_t ain[1] = {{Qnil,0}};
|
62
62
|
ndfunc_t ndf = {<%=c_iter%>, FULL_LOOP_NIP, 1,0, ain,0};
|
@@ -50,12 +50,12 @@ static void
|
|
50
50
|
|
51
51
|
/*
|
52
52
|
Fill elements with other.
|
53
|
-
@overload <%=
|
53
|
+
@overload <%=name%> other
|
54
54
|
@param [Numeric] other
|
55
55
|
@return [Numo::<%=class_name%>] self.
|
56
56
|
*/
|
57
57
|
static VALUE
|
58
|
-
<%=c_func%>(VALUE self, VALUE val)
|
58
|
+
<%=c_func(1)%>(VALUE self, VALUE val)
|
59
59
|
{
|
60
60
|
ndfunc_arg_in_t ain[2] = {{OVERWRITE,0},{sym_option}};
|
61
61
|
ndfunc_t ndf = {<%=c_iter%>, FULL_LOOP, 2,0, ain,0};
|
@@ -1,5 +1,5 @@
|
|
1
1
|
static VALUE
|
2
|
-
format_<%=
|
2
|
+
format_<%=type_name%>(VALUE fmt, dtype x)
|
3
3
|
{
|
4
4
|
if (NIL_P(fmt)) {
|
5
5
|
char s[4];
|
@@ -29,13 +29,13 @@ static void
|
|
29
29
|
if (idx1) {
|
30
30
|
for (; i--;) {
|
31
31
|
LOAD_BIT(a1, p1+*idx1, x); idx1++;
|
32
|
-
y = format_<%=
|
32
|
+
y = format_<%=type_name%>(fmt, x);
|
33
33
|
SET_DATA_STRIDE(p2, s2, VALUE, y);
|
34
34
|
}
|
35
35
|
} else {
|
36
36
|
for (; i--;) {
|
37
37
|
LOAD_BIT(a1, p1, x); p1+=s1;
|
38
|
-
y = format_<%=
|
38
|
+
y = format_<%=type_name%>(fmt, x);
|
39
39
|
SET_DATA_STRIDE(p2, s2, VALUE, y);
|
40
40
|
}
|
41
41
|
}
|
@@ -43,12 +43,12 @@ static void
|
|
43
43
|
|
44
44
|
/*
|
45
45
|
Format elements into strings.
|
46
|
-
@overload <%=
|
46
|
+
@overload <%=name%> format
|
47
47
|
@param [String] format
|
48
48
|
@return [Numo::RObject] array of formated strings.
|
49
49
|
*/
|
50
50
|
static VALUE
|
51
|
-
<%=c_func%>(int argc, VALUE *argv, VALUE self)
|
51
|
+
<%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
|
52
52
|
{
|
53
53
|
VALUE fmt=Qnil;
|
54
54
|
|
@@ -31,12 +31,12 @@ static void
|
|
31
31
|
|
32
32
|
/*
|
33
33
|
Format elements into strings.
|
34
|
-
@overload <%=
|
34
|
+
@overload <%=name%> format
|
35
35
|
@param [String] format
|
36
36
|
@return [Array] array of formated strings.
|
37
37
|
*/
|
38
38
|
static VALUE
|
39
|
-
<%=c_func%>(int argc, VALUE *argv, VALUE self)
|
39
|
+
<%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
|
40
40
|
{
|
41
41
|
volatile VALUE fmt=Qnil;
|
42
42
|
ndfunc_arg_in_t ain[3] = {{Qnil,0},{sym_loop_opt},{sym_option}};
|
@@ -3,7 +3,7 @@ static VALUE
|
|
3
3
|
{
|
4
4
|
dtype x;
|
5
5
|
LOAD_BIT(ptr,pos,x);
|
6
|
-
return format_<%=
|
6
|
+
return format_<%=type_name%>(fmt, x);
|
7
7
|
}
|
8
8
|
|
9
9
|
/*
|
@@ -12,7 +12,7 @@ static VALUE
|
|
12
12
|
@return [String]
|
13
13
|
*/
|
14
14
|
VALUE
|
15
|
-
<%=c_func%>(VALUE ary)
|
15
|
+
<%=c_func(0)%>(VALUE ary)
|
16
16
|
{
|
17
17
|
return na_ndloop_inspect(ary, <%=c_iter%>, Qnil);
|
18
18
|
}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
static void
|
2
|
-
|
2
|
+
<%=c_iter%>(na_loop_t *const lp)
|
3
3
|
{
|
4
4
|
size_t i;
|
5
5
|
BIT_DIGIT *a;
|
@@ -82,7 +82,7 @@ iter_bit_pointer(na_loop_t *const lp)
|
|
82
82
|
@return [Numo::NArray] view of masked array.
|
83
83
|
*/
|
84
84
|
static VALUE
|
85
|
-
|
85
|
+
<%=c_func(1)%>(VALUE mask, VALUE val)
|
86
86
|
{
|
87
87
|
volatile VALUE idx_1, view;
|
88
88
|
narray_data_t *nidx;
|
@@ -93,10 +93,10 @@ static VALUE
|
|
93
93
|
size_t n_1;
|
94
94
|
where_opt_t g;
|
95
95
|
ndfunc_arg_in_t ain[2] = {{cT,0},{Qnil,0}};
|
96
|
-
ndfunc_t ndf = {
|
96
|
+
ndfunc_t ndf = {<%=c_iter%>, FULL_LOOP, 2, 0, ain, 0};
|
97
97
|
|
98
|
-
n_1 = NUM2SIZET(
|
99
|
-
idx_1 =
|
98
|
+
n_1 = NUM2SIZET(<%=find_tmpl("count_true").c_func%>(0, NULL, mask));
|
99
|
+
idx_1 = nary_new(cIndex, 1, &n_1);
|
100
100
|
g.count = 0;
|
101
101
|
g.elmsz = SIZEOF_VOIDP;
|
102
102
|
g.idx1 = na_get_pointer_for_write(idx_1);
|
@@ -1,14 +1,14 @@
|
|
1
|
-
VALUE
|
2
|
-
|
1
|
+
static VALUE
|
2
|
+
<%=c_func(-1)%>(int argc, VALUE *argv, VALUE self)
|
3
3
|
{
|
4
4
|
VALUE v;
|
5
5
|
|
6
|
-
v =
|
6
|
+
v = <%=find_tmpl("any?").c_func%>(argc,argv,self);
|
7
7
|
|
8
8
|
if (v==Qtrue) {
|
9
9
|
return Qfalse;
|
10
10
|
} else if (v==Qfalse) {
|
11
11
|
return Qtrue;
|
12
12
|
}
|
13
|
-
return
|
13
|
+
return <%=find_tmpl("not").c_func%>(v);
|
14
14
|
}
|
@@ -20,7 +20,7 @@ static void
|
|
20
20
|
|
21
21
|
if (lp->args[1].ptr) {
|
22
22
|
if (v1 == Qtrue) {
|
23
|
-
iter_<%=
|
23
|
+
iter_<%=type_name%>_store_<%=type_name%>(lp);
|
24
24
|
i = lp->args[1].shape[0];
|
25
25
|
if (idx1) {
|
26
26
|
idx1 += i;
|
@@ -94,7 +94,7 @@ static void
|
|
94
94
|
}
|
95
95
|
|
96
96
|
static VALUE
|
97
|
-
<%=c_func%>(VALUE self, VALUE rary)
|
97
|
+
<%=c_func(:nodef)%>(VALUE self, VALUE rary)
|
98
98
|
{
|
99
99
|
ndfunc_arg_in_t ain[2] = {{OVERWRITE,0}, {rb_cArray,0}};
|
100
100
|
ndfunc_t ndf = {<%=c_iter%>, FULL_LOOP, 2, 0, ain, 0};
|
@@ -30,11 +30,11 @@ void
|
|
30
30
|
|
31
31
|
/*
|
32
32
|
Convert self to Array.
|
33
|
-
@overload <%=
|
33
|
+
@overload <%=name%>
|
34
34
|
@return [Array]
|
35
35
|
*/
|
36
36
|
static VALUE
|
37
|
-
<%=c_func%>(VALUE self)
|
37
|
+
<%=c_func(0)%>(VALUE self)
|
38
38
|
{
|
39
39
|
ndfunc_arg_in_t ain[3] = {{Qnil,0},{sym_loop_opt},{sym_option}};
|
40
40
|
ndfunc_arg_out_t aout[1] = {{rb_cArray,0}}; // dummy?
|
@@ -16,7 +16,7 @@ static void
|
|
16
16
|
if (s1!=1 || s3!=1 || idx1 || idx3) {
|
17
17
|
for (; n--;) {
|
18
18
|
LOAD_BIT_STEP(a1, p1, s1, idx1, x);
|
19
|
-
y = m_<%=
|
19
|
+
y = m_<%=name%>(x);
|
20
20
|
STORE_BIT_STEP(a3, p3, s3, idx3, y);
|
21
21
|
}
|
22
22
|
} else {
|
@@ -31,7 +31,7 @@ static void
|
|
31
31
|
else x = *a1<<-o1;
|
32
32
|
if (p1+len>NB) x |= *(a1+1)<<r1;
|
33
33
|
a1++;
|
34
|
-
y = m_<%=
|
34
|
+
y = m_<%=name%>(x);
|
35
35
|
*a3 = (y & (SLB(len)<<p3)) | (*a3 & ~(SLB(len)<<p3));
|
36
36
|
a3++;
|
37
37
|
n -= len;
|
@@ -39,7 +39,7 @@ static void
|
|
39
39
|
if (o1==0) {
|
40
40
|
for (; n>=NB; n-=NB) {
|
41
41
|
x = *(a1++);
|
42
|
-
y = m_<%=
|
42
|
+
y = m_<%=name%>(x);
|
43
43
|
*(a3++) = y;
|
44
44
|
}
|
45
45
|
} else {
|
@@ -48,26 +48,26 @@ static void
|
|
48
48
|
if (o1<0) x |= *(a1-1)>>l1;
|
49
49
|
if (o1>0) x |= *(a1+1)<<r1;
|
50
50
|
a1++;
|
51
|
-
y = m_<%=
|
51
|
+
y = m_<%=name%>(x);
|
52
52
|
*(a3++) = y;
|
53
53
|
}
|
54
54
|
}
|
55
55
|
if (n>0) {
|
56
56
|
x = *a1>>o1;
|
57
57
|
if (o1<0) x |= *(a1-1)>>l1;
|
58
|
-
y = m_<%=
|
58
|
+
y = m_<%=name%>(x);
|
59
59
|
*a3 = (y & SLB(n)) | (*a3 & BALL<<n);
|
60
60
|
}
|
61
61
|
}
|
62
62
|
}
|
63
63
|
|
64
64
|
/*
|
65
|
-
Unary <%=
|
66
|
-
@overload <%=
|
67
|
-
@return [Numo::<%=class_name%>] <%=
|
65
|
+
Unary <%=name%>.
|
66
|
+
@overload <%=name%>
|
67
|
+
@return [Numo::<%=class_name%>] <%=name%> of self.
|
68
68
|
*/
|
69
69
|
static VALUE
|
70
|
-
<%=c_func%>(VALUE self)
|
70
|
+
<%=c_func(0)%>(VALUE self)
|
71
71
|
{
|
72
72
|
ndfunc_arg_in_t ain[1] = {{cT,0}};
|
73
73
|
ndfunc_arg_out_t aout[1] = {{cT,0}};
|