numo-narray-alt 0.10.7 → 0.11.0
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 +4 -4
- data/README.md +9 -0
- data/ext/numo/narray/data.c +2 -13
- data/ext/numo/narray/extconf.rb +2 -0
- data/ext/numo/narray/index.c +9 -22
- data/ext/numo/narray/narray.c +0 -1
- data/ext/numo/narray/numo/narray.h +3 -3
- data/ext/numo/narray/numo/types/robj_macro.h +7 -0
- data/ext/numo/narray/src/mh/format.h +3 -25
- data/ext/numo/narray/src/mh/math/sqrt.h +372 -0
- data/ext/numo/narray/src/mh/mulsum.h +1360 -74
- data/ext/numo/narray/src/mh/op/add.h +20 -0
- data/ext/numo/narray/src/mh/op/binary_func.h +542 -0
- data/ext/numo/narray/src/mh/op/div.h +20 -0
- data/ext/numo/narray/src/mh/op/mul.h +20 -0
- data/ext/numo/narray/src/mh/op/sub.h +20 -0
- data/ext/numo/narray/src/t_bit.c +0 -5
- data/ext/numo/narray/src/t_dcomplex.c +0 -5
- data/ext/numo/narray/src/t_dfloat.c +35 -3
- data/ext/numo/narray/src/t_int16.c +0 -5
- data/ext/numo/narray/src/t_int32.c +0 -5
- data/ext/numo/narray/src/t_int64.c +0 -5
- data/ext/numo/narray/src/t_int8.c +0 -5
- data/ext/numo/narray/src/t_robject.c +1 -8
- data/ext/numo/narray/src/t_scomplex.c +0 -5
- data/ext/numo/narray/src/t_sfloat.c +35 -3
- data/ext/numo/narray/src/t_uint16.c +0 -5
- data/ext/numo/narray/src/t_uint32.c +0 -5
- data/ext/numo/narray/src/t_uint64.c +0 -5
- data/ext/numo/narray/src/t_uint8.c +0 -5
- data/lib/numo/narray/extra.rb +1 -42
- metadata +3 -3
|
@@ -75,4 +75,24 @@
|
|
|
75
75
|
DEF_BINARY_SELF_FUNC(mul, dfloat, numo_cDFloat) \
|
|
76
76
|
DEF_BINARY_FUNC(mul, '*', dfloat, numo_cDFloat)
|
|
77
77
|
|
|
78
|
+
#define DEF_NARRAY_SFLT_MUL_AVX_METHOD_FUNC() \
|
|
79
|
+
DEF_BINARY_SFLT_AVX_ITER_FUNC(mul, _mm256_mul_ps) \
|
|
80
|
+
DEF_BINARY_SELF_FUNC(mul, sfloat, numo_cSFloat) \
|
|
81
|
+
DEF_BINARY_FUNC(mul, '*', sfloat, numo_cSFloat)
|
|
82
|
+
|
|
83
|
+
#define DEF_NARRAY_DFLT_MUL_AVX_METHOD_FUNC() \
|
|
84
|
+
DEF_BINARY_DFLT_AVX_ITER_FUNC(mul, _mm256_mul_pd) \
|
|
85
|
+
DEF_BINARY_SELF_FUNC(mul, dfloat, numo_cDFloat) \
|
|
86
|
+
DEF_BINARY_FUNC(mul, '*', dfloat, numo_cDFloat)
|
|
87
|
+
|
|
88
|
+
#define DEF_NARRAY_SFLT_MUL_NEON_METHOD_FUNC() \
|
|
89
|
+
DEF_BINARY_SFLT_NEON_ITER_FUNC(mul, vmulq_f32) \
|
|
90
|
+
DEF_BINARY_SELF_FUNC(mul, sfloat, numo_cSFloat) \
|
|
91
|
+
DEF_BINARY_FUNC(mul, '*', sfloat, numo_cSFloat)
|
|
92
|
+
|
|
93
|
+
#define DEF_NARRAY_DFLT_MUL_NEON_METHOD_FUNC() \
|
|
94
|
+
DEF_BINARY_DFLT_NEON_ITER_FUNC(mul, vmulq_f64) \
|
|
95
|
+
DEF_BINARY_SELF_FUNC(mul, dfloat, numo_cDFloat) \
|
|
96
|
+
DEF_BINARY_FUNC(mul, '*', dfloat, numo_cDFloat)
|
|
97
|
+
|
|
78
98
|
#endif /* NUMO_NARRAY_MH_OP_MUL_H */
|
|
@@ -75,4 +75,24 @@
|
|
|
75
75
|
DEF_BINARY_SELF_FUNC(sub, dfloat, numo_cDFloat) \
|
|
76
76
|
DEF_BINARY_FUNC(sub, '-', dfloat, numo_cDFloat)
|
|
77
77
|
|
|
78
|
+
#define DEF_NARRAY_SFLT_SUB_AVX_METHOD_FUNC() \
|
|
79
|
+
DEF_BINARY_SFLT_AVX_ITER_FUNC(sub, _mm256_sub_ps) \
|
|
80
|
+
DEF_BINARY_SELF_FUNC(sub, sfloat, numo_cSFloat) \
|
|
81
|
+
DEF_BINARY_FUNC(sub, '-', sfloat, numo_cSFloat)
|
|
82
|
+
|
|
83
|
+
#define DEF_NARRAY_DFLT_SUB_AVX_METHOD_FUNC() \
|
|
84
|
+
DEF_BINARY_DFLT_AVX_ITER_FUNC(sub, _mm256_sub_pd) \
|
|
85
|
+
DEF_BINARY_SELF_FUNC(sub, dfloat, numo_cDFloat) \
|
|
86
|
+
DEF_BINARY_FUNC(sub, '-', dfloat, numo_cDFloat)
|
|
87
|
+
|
|
88
|
+
#define DEF_NARRAY_SFLT_SUB_NEON_METHOD_FUNC() \
|
|
89
|
+
DEF_BINARY_SFLT_NEON_ITER_FUNC(sub, vsubq_f32) \
|
|
90
|
+
DEF_BINARY_SELF_FUNC(sub, sfloat, numo_cSFloat) \
|
|
91
|
+
DEF_BINARY_FUNC(sub, '-', sfloat, numo_cSFloat)
|
|
92
|
+
|
|
93
|
+
#define DEF_NARRAY_DFLT_SUB_NEON_METHOD_FUNC() \
|
|
94
|
+
DEF_BINARY_DFLT_NEON_ITER_FUNC(sub, vsubq_f64) \
|
|
95
|
+
DEF_BINARY_SELF_FUNC(sub, dfloat, numo_cDFloat) \
|
|
96
|
+
DEF_BINARY_FUNC(sub, '-', dfloat, numo_cDFloat)
|
|
97
|
+
|
|
78
98
|
#endif /* NUMO_NARRAY_MH_OP_SUB_H */
|
data/ext/numo/narray/src/t_bit.c
CHANGED
|
@@ -14,11 +14,21 @@
|
|
|
14
14
|
|
|
15
15
|
#define m_map(x) m_num_to_data(rb_yield(m_data_to_num(x)))
|
|
16
16
|
|
|
17
|
-
#
|
|
17
|
+
#if !defined(NUMO_NO_SIMD) && defined(__SSE2__)
|
|
18
18
|
#include <emmintrin.h>
|
|
19
19
|
#define SIMD_ALIGNMENT_SIZE 16
|
|
20
20
|
#endif
|
|
21
21
|
|
|
22
|
+
#if !defined(NUMO_NO_SIMD) && defined(__AVX__)
|
|
23
|
+
#include <immintrin.h>
|
|
24
|
+
#define AVX_ALIGNMENT_SIZE 32
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
#if !defined(NUMO_NO_SIMD) && defined(__ARM_NEON) && defined(__aarch64__)
|
|
28
|
+
#include <arm_neon.h>
|
|
29
|
+
#define NEON_ALIGNMENT_SIZE 16
|
|
30
|
+
#endif
|
|
31
|
+
|
|
22
32
|
static ID id_pow;
|
|
23
33
|
static ID id_cast;
|
|
24
34
|
static ID id_copysign;
|
|
@@ -167,11 +177,21 @@ DEF_NARRAY_MAP_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
|
167
177
|
DEF_NARRAY_EACH_WITH_INDEX_METHOD_FUNC(dfloat)
|
|
168
178
|
DEF_NARRAY_MAP_WITH_INDEX_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
169
179
|
DEF_NARRAY_ABS_METHOD_FUNC(dfloat, numo_cDFloat, dfloat, numo_cDFloat)
|
|
170
|
-
#
|
|
180
|
+
#if !defined(NUMO_NO_SIMD) && defined(__AVX__)
|
|
181
|
+
DEF_NARRAY_DFLT_ADD_AVX_METHOD_FUNC()
|
|
182
|
+
DEF_NARRAY_DFLT_SUB_AVX_METHOD_FUNC()
|
|
183
|
+
DEF_NARRAY_DFLT_MUL_AVX_METHOD_FUNC()
|
|
184
|
+
DEF_NARRAY_DFLT_DIV_AVX_METHOD_FUNC()
|
|
185
|
+
#elif !defined(NUMO_NO_SIMD) && defined(__SSE2__)
|
|
171
186
|
DEF_NARRAY_DFLT_ADD_SSE2_METHOD_FUNC()
|
|
172
187
|
DEF_NARRAY_DFLT_SUB_SSE2_METHOD_FUNC()
|
|
173
188
|
DEF_NARRAY_DFLT_MUL_SSE2_METHOD_FUNC()
|
|
174
189
|
DEF_NARRAY_DFLT_DIV_SSE2_METHOD_FUNC()
|
|
190
|
+
#elif !defined(NUMO_NO_SIMD) && defined(__ARM_NEON) && defined(__aarch64__)
|
|
191
|
+
DEF_NARRAY_DFLT_ADD_NEON_METHOD_FUNC()
|
|
192
|
+
DEF_NARRAY_DFLT_SUB_NEON_METHOD_FUNC()
|
|
193
|
+
DEF_NARRAY_DFLT_MUL_NEON_METHOD_FUNC()
|
|
194
|
+
DEF_NARRAY_DFLT_DIV_NEON_METHOD_FUNC()
|
|
175
195
|
#else
|
|
176
196
|
DEF_NARRAY_ADD_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
177
197
|
DEF_NARRAY_SUB_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
@@ -225,7 +245,15 @@ DEF_NARRAY_FLT_MINIMUM_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
|
225
245
|
DEF_NARRAY_FLT_MINMAX_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
226
246
|
DEF_NARRAY_FLT_CUMSUM_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
227
247
|
DEF_NARRAY_FLT_CUMPROD_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
248
|
+
#if !defined(NUMO_NO_SIMD) && defined(__AVX__)
|
|
249
|
+
DEF_NARRAY_DFLT_MULSUM_AVX_METHOD_FUNC()
|
|
250
|
+
#elif !defined(NUMO_NO_SIMD) && defined(__SSE2__)
|
|
251
|
+
DEF_NARRAY_DFLT_MULSUM_SSE2_METHOD_FUNC()
|
|
252
|
+
#elif !defined(NUMO_NO_SIMD) && defined(__ARM_NEON) && defined(__aarch64__)
|
|
253
|
+
DEF_NARRAY_DFLT_MULSUM_NEON_METHOD_FUNC()
|
|
254
|
+
#else
|
|
228
255
|
DEF_NARRAY_FLT_MULSUM_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
256
|
+
#endif
|
|
229
257
|
DEF_NARRAY_FLT_SEQ_METHOD_FUNC(dfloat)
|
|
230
258
|
DEF_NARRAY_FLT_LOGSEQ_METHOD_FUNC(dfloat)
|
|
231
259
|
DEF_NARRAY_EYE_METHOD_FUNC(dfloat)
|
|
@@ -243,8 +271,12 @@ DEF_NARRAY_FLT_SORT_METHOD_FUNC(dfloat)
|
|
|
243
271
|
#define qsort_cast **(dfloat**)
|
|
244
272
|
DEF_NARRAY_FLT_SORT_INDEX_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
245
273
|
DEF_NARRAY_FLT_MEDIAN_METHOD_FUNC(dfloat)
|
|
246
|
-
#
|
|
274
|
+
#if !defined(NUMO_NO_SIMD) && defined(__AVX__)
|
|
275
|
+
DEF_NARRAY_FLT_SQRT_AVX_DBL_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
276
|
+
#elif !defined(NUMO_NO_SIMD) && defined(__SSE2__)
|
|
247
277
|
DEF_NARRAY_FLT_SQRT_SSE2_DBL_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
278
|
+
#elif !defined(NUMO_NO_SIMD) && defined(__ARM_NEON) && defined(__aarch64__)
|
|
279
|
+
DEF_NARRAY_FLT_SQRT_NEON_DBL_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
248
280
|
#else
|
|
249
281
|
DEF_NARRAY_FLT_SQRT_METHOD_FUNC(dfloat, numo_cDFloat)
|
|
250
282
|
#endif
|
|
@@ -14,11 +14,6 @@
|
|
|
14
14
|
|
|
15
15
|
#define m_map(x) m_num_to_data(rb_yield(m_data_to_num(x)))
|
|
16
16
|
|
|
17
|
-
#ifdef __SSE2__
|
|
18
|
-
#include <emmintrin.h>
|
|
19
|
-
#define SIMD_ALIGNMENT_SIZE 16
|
|
20
|
-
#endif
|
|
21
|
-
|
|
22
17
|
static ID id_ne;
|
|
23
18
|
static ID id_pow;
|
|
24
19
|
static ID id_minus;
|
|
@@ -50,7 +45,6 @@ static ID id_reciprocal;
|
|
|
50
45
|
static ID id_round;
|
|
51
46
|
static ID id_square;
|
|
52
47
|
static ID id_to_a;
|
|
53
|
-
static ID id_to_s;
|
|
54
48
|
static ID id_truncate;
|
|
55
49
|
|
|
56
50
|
#include <numo/types/robject.h>
|
|
@@ -147,7 +141,7 @@ DEF_NARRAY_ASET_METHOD_FUNC(robject)
|
|
|
147
141
|
DEF_NARRAY_COERCE_CAST_METHOD_FUNC(robject)
|
|
148
142
|
DEF_NARRAY_TO_A_METHOD_FUNC(robject)
|
|
149
143
|
DEF_NARRAY_FILL_METHOD_FUNC(robject)
|
|
150
|
-
|
|
144
|
+
DEF_NARRAY_FORMAT_METHOD_FUNC(robject)
|
|
151
145
|
DEF_NARRAY_FORMAT_TO_A_METHOD_FUNC(robject)
|
|
152
146
|
DEF_NARRAY_ROBJ_INSPECT_METHOD_FUNC()
|
|
153
147
|
DEF_NARRAY_EACH_METHOD_FUNC(robject)
|
|
@@ -371,7 +365,6 @@ void Init_numo_robject(void) {
|
|
|
371
365
|
id_round = rb_intern("round");
|
|
372
366
|
id_square = rb_intern("square");
|
|
373
367
|
id_to_a = rb_intern("to_a");
|
|
374
|
-
id_to_s = rb_intern("to_s");
|
|
375
368
|
id_truncate = rb_intern("truncate");
|
|
376
369
|
|
|
377
370
|
/**
|
|
@@ -14,11 +14,21 @@
|
|
|
14
14
|
|
|
15
15
|
#define m_map(x) m_num_to_data(rb_yield(m_data_to_num(x)))
|
|
16
16
|
|
|
17
|
-
#
|
|
17
|
+
#if !defined(NUMO_NO_SIMD) && defined(__SSE2__)
|
|
18
18
|
#include <emmintrin.h>
|
|
19
19
|
#define SIMD_ALIGNMENT_SIZE 16
|
|
20
20
|
#endif
|
|
21
21
|
|
|
22
|
+
#if !defined(NUMO_NO_SIMD) && defined(__AVX__)
|
|
23
|
+
#include <immintrin.h>
|
|
24
|
+
#define AVX_ALIGNMENT_SIZE 32
|
|
25
|
+
#endif
|
|
26
|
+
|
|
27
|
+
#if !defined(NUMO_NO_SIMD) && defined(__ARM_NEON) && defined(__aarch64__)
|
|
28
|
+
#include <arm_neon.h>
|
|
29
|
+
#define NEON_ALIGNMENT_SIZE 16
|
|
30
|
+
#endif
|
|
31
|
+
|
|
22
32
|
static ID id_pow;
|
|
23
33
|
static ID id_cast;
|
|
24
34
|
static ID id_copysign;
|
|
@@ -166,11 +176,21 @@ DEF_NARRAY_MAP_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
|
166
176
|
DEF_NARRAY_EACH_WITH_INDEX_METHOD_FUNC(sfloat)
|
|
167
177
|
DEF_NARRAY_MAP_WITH_INDEX_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
168
178
|
DEF_NARRAY_ABS_METHOD_FUNC(sfloat, numo_cSFloat, sfloat, numo_cSFloat)
|
|
169
|
-
#
|
|
179
|
+
#if !defined(NUMO_NO_SIMD) && defined(__AVX__)
|
|
180
|
+
DEF_NARRAY_SFLT_ADD_AVX_METHOD_FUNC()
|
|
181
|
+
DEF_NARRAY_SFLT_SUB_AVX_METHOD_FUNC()
|
|
182
|
+
DEF_NARRAY_SFLT_MUL_AVX_METHOD_FUNC()
|
|
183
|
+
DEF_NARRAY_SFLT_DIV_AVX_METHOD_FUNC()
|
|
184
|
+
#elif !defined(NUMO_NO_SIMD) && defined(__SSE2__)
|
|
170
185
|
DEF_NARRAY_SFLT_ADD_SSE2_METHOD_FUNC()
|
|
171
186
|
DEF_NARRAY_SFLT_SUB_SSE2_METHOD_FUNC()
|
|
172
187
|
DEF_NARRAY_SFLT_MUL_SSE2_METHOD_FUNC()
|
|
173
188
|
DEF_NARRAY_SFLT_DIV_SSE2_METHOD_FUNC()
|
|
189
|
+
#elif !defined(NUMO_NO_SIMD) && defined(__ARM_NEON) && defined(__aarch64__)
|
|
190
|
+
DEF_NARRAY_SFLT_ADD_NEON_METHOD_FUNC()
|
|
191
|
+
DEF_NARRAY_SFLT_SUB_NEON_METHOD_FUNC()
|
|
192
|
+
DEF_NARRAY_SFLT_MUL_NEON_METHOD_FUNC()
|
|
193
|
+
DEF_NARRAY_SFLT_DIV_NEON_METHOD_FUNC()
|
|
174
194
|
#else
|
|
175
195
|
DEF_NARRAY_ADD_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
176
196
|
DEF_NARRAY_SUB_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
@@ -223,7 +243,15 @@ DEF_NARRAY_FLT_MINIMUM_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
|
223
243
|
DEF_NARRAY_FLT_MINMAX_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
224
244
|
DEF_NARRAY_FLT_CUMSUM_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
225
245
|
DEF_NARRAY_FLT_CUMPROD_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
246
|
+
#if !defined(NUMO_NO_SIMD) && defined(__AVX__)
|
|
247
|
+
DEF_NARRAY_SFLT_MULSUM_AVX_METHOD_FUNC()
|
|
248
|
+
#elif !defined(NUMO_NO_SIMD) && defined(__SSE2__)
|
|
249
|
+
DEF_NARRAY_SFLT_MULSUM_SSE2_METHOD_FUNC()
|
|
250
|
+
#elif !defined(NUMO_NO_SIMD) && defined(__ARM_NEON) && defined(__aarch64__)
|
|
251
|
+
DEF_NARRAY_SFLT_MULSUM_NEON_METHOD_FUNC()
|
|
252
|
+
#else
|
|
226
253
|
DEF_NARRAY_FLT_MULSUM_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
254
|
+
#endif
|
|
227
255
|
DEF_NARRAY_FLT_SEQ_METHOD_FUNC(sfloat)
|
|
228
256
|
DEF_NARRAY_FLT_LOGSEQ_METHOD_FUNC(sfloat)
|
|
229
257
|
DEF_NARRAY_EYE_METHOD_FUNC(sfloat)
|
|
@@ -241,8 +269,12 @@ DEF_NARRAY_FLT_SORT_METHOD_FUNC(sfloat)
|
|
|
241
269
|
#define qsort_cast **(sfloat**)
|
|
242
270
|
DEF_NARRAY_FLT_SORT_INDEX_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
243
271
|
DEF_NARRAY_FLT_MEDIAN_METHOD_FUNC(sfloat)
|
|
244
|
-
#
|
|
272
|
+
#if !defined(NUMO_NO_SIMD) && defined(__AVX__)
|
|
273
|
+
DEF_NARRAY_FLT_SQRT_AVX_SGL_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
274
|
+
#elif !defined(NUMO_NO_SIMD) && defined(__SSE2__)
|
|
245
275
|
DEF_NARRAY_FLT_SQRT_SSE2_SGL_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
276
|
+
#elif !defined(NUMO_NO_SIMD) && defined(__ARM_NEON) && defined(__aarch64__)
|
|
277
|
+
DEF_NARRAY_FLT_SQRT_NEON_SGL_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
246
278
|
#else
|
|
247
279
|
DEF_NARRAY_FLT_SQRT_METHOD_FUNC(sfloat, numo_cSFloat)
|
|
248
280
|
#endif
|
data/lib/numo/narray/extra.rb
CHANGED
|
@@ -137,10 +137,6 @@ module Numo
|
|
|
137
137
|
# # [[2, -3, 5],
|
|
138
138
|
# # [4, 9, 7],
|
|
139
139
|
# # [2, -1, 6]]
|
|
140
|
-
# @example
|
|
141
|
-
# a = Numo::NArray.parse('true false nil')
|
|
142
|
-
# # => Numo::Bit#shape=[1,3]
|
|
143
|
-
# # [[1, 0, 0]]
|
|
144
140
|
|
|
145
141
|
def self.parse(str, split1d: /\s+/, split2d: /;?$|;/,
|
|
146
142
|
split3d: /\s*\n(\s*\n)+/m)
|
|
@@ -155,8 +151,7 @@ module Numo
|
|
|
155
151
|
|
|
156
152
|
c = []
|
|
157
153
|
line.split(split1d).each do |item|
|
|
158
|
-
item
|
|
159
|
-
c << parse_token(item) unless item.empty?
|
|
154
|
+
c << eval(item.strip) unless item.empty? # rubocop:disable Security/Eval
|
|
160
155
|
end
|
|
161
156
|
b << c unless c.empty?
|
|
162
157
|
end
|
|
@@ -169,42 +164,6 @@ module Numo
|
|
|
169
164
|
end
|
|
170
165
|
end
|
|
171
166
|
|
|
172
|
-
# Convert one token of {parse} input into a value.
|
|
173
|
-
#
|
|
174
|
-
# Only the literals that describe an element are accepted: integer, float
|
|
175
|
-
# and complex numbers, and +true+, +false+ and +nil+, which {cast} turns
|
|
176
|
-
# into a {Numo::Bit}. Anything else -- an expression, a method call, a bare
|
|
177
|
-
# word -- raises ArgumentError, so text handed to {parse} is never executed
|
|
178
|
-
# as Ruby code.
|
|
179
|
-
#
|
|
180
|
-
# @param item [String] one whitespace-delimited token, already stripped
|
|
181
|
-
# @return [Integer, Float, Complex, true, false, nil] the parsed value
|
|
182
|
-
# @raise [ArgumentError] if the token is not one of those literals
|
|
183
|
-
def self.parse_token(item)
|
|
184
|
-
case item
|
|
185
|
-
when 'true' then return true
|
|
186
|
-
when 'false' then return false
|
|
187
|
-
when 'nil' then return nil
|
|
188
|
-
end
|
|
189
|
-
|
|
190
|
-
v = Integer(item, exception: false)
|
|
191
|
-
return v if v
|
|
192
|
-
|
|
193
|
-
v = Float(item, exception: false)
|
|
194
|
-
return v if v
|
|
195
|
-
|
|
196
|
-
if item.end_with?('i')
|
|
197
|
-
begin
|
|
198
|
-
return Complex(item)
|
|
199
|
-
rescue ArgumentError, TypeError
|
|
200
|
-
nil
|
|
201
|
-
end
|
|
202
|
-
end
|
|
203
|
-
|
|
204
|
-
raise ArgumentError, "invalid literal: #{item.inspect}"
|
|
205
|
-
end
|
|
206
|
-
private_class_method :parse_token
|
|
207
|
-
|
|
208
167
|
# Iterate over an axis
|
|
209
168
|
# @example
|
|
210
169
|
# > a = Numo::DFloat.new(2,2,2).seq
|
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.
|
|
4
|
+
version: 0.11.0
|
|
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.
|
|
217
|
+
documentation_uri: https://gemdocs.org/gems/numo-narray-alt/0.11.0/
|
|
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.
|
|
241
|
+
rubygems_version: 4.0.13
|
|
242
242
|
specification_version: 4
|
|
243
243
|
summary: Numo::NArray Alternative is a project forked from Numo::NArray.
|
|
244
244
|
test_files: []
|