red_amber 0.4.0 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +20 -5
- data/CHANGELOG.md +104 -4
- data/README.md +18 -16
- data/benchmark/basic.yml +8 -8
- data/benchmark/combine.yml +3 -3
- data/benchmark/dataframe.yml +15 -9
- data/benchmark/group.yml +6 -6
- data/benchmark/reshape.yml +6 -6
- data/benchmark/vector.yml +6 -6
- data/doc/CODE_OF_CONDUCT.md +1 -1
- data/docker/.env +4 -0
- data/docker/Dockerfile +66 -0
- data/docker/Gemfile +21 -0
- data/docker/Gemfile.lock +80 -0
- data/docker/docker-compose.yml +21 -0
- data/docker/example +74 -0
- data/docker/notebook/examples_of_red_amber.ipynb +8562 -0
- data/docker/notebook/red-amber.ipynb +188 -0
- data/docker/readme.md +118 -0
- data/lib/red_amber/data_frame.rb +25 -10
- data/lib/red_amber/data_frame_combinable.rb +117 -73
- data/lib/red_amber/data_frame_displayable.rb +100 -51
- data/lib/red_amber/data_frame_indexable.rb +4 -4
- data/lib/red_amber/data_frame_reshaping.rb +1 -1
- data/lib/red_amber/data_frame_selectable.rb +1 -4
- data/lib/red_amber/data_frame_variable_operation.rb +7 -2
- data/lib/red_amber/group.rb +17 -18
- data/lib/red_amber/helper.rb +4 -4
- data/lib/red_amber/refinements.rb +15 -2
- data/lib/red_amber/subframes.rb +319 -191
- data/lib/red_amber/vector.rb +7 -30
- data/lib/red_amber/vector_binary_element_wise.rb +149 -1
- data/lib/red_amber/vector_selectable.rb +49 -12
- data/lib/red_amber/vector_unary_element_wise.rb +93 -0
- data/lib/red_amber/version.rb +1 -1
- data/red_amber.gemspec +3 -3
- metadata +16 -7
data/lib/red_amber/vector.rb
CHANGED
@@ -27,28 +27,6 @@ module RedAmber
|
|
27
27
|
instance
|
28
28
|
end
|
29
29
|
|
30
|
-
# Return true if it is an aggregation function.
|
31
|
-
#
|
32
|
-
# @param function [Symbol]
|
33
|
-
# function name to test.
|
34
|
-
# @return [Booleans]
|
35
|
-
# true if function is a aggregation function, otherwise false.
|
36
|
-
#
|
37
|
-
# @example
|
38
|
-
# Vector.aggregate?(:mean) # => true
|
39
|
-
#
|
40
|
-
# Vector.aggregate?(:round) # => false
|
41
|
-
#
|
42
|
-
# @since 0.4.0
|
43
|
-
#
|
44
|
-
def self.aggregate?(function)
|
45
|
-
%i[
|
46
|
-
all all? any any? approximate_median count count_distinct count_uniq
|
47
|
-
max mean median min min_max product quantile sd std stddev sum
|
48
|
-
unbiased_variance var variance
|
49
|
-
].include?(function.to_sym)
|
50
|
-
end
|
51
|
-
|
52
30
|
# Create a Vector.
|
53
31
|
#
|
54
32
|
# @param array [Array, Vector, Range, Arrow::Array, #to_arrow_array]
|
@@ -532,13 +510,10 @@ module RedAmber
|
|
532
510
|
|
533
511
|
yield self
|
534
512
|
else
|
535
|
-
function
|
536
|
-
unless function && respond_to?(function) && Vector.aggregate?(function)
|
537
|
-
raise VectorArgumentError, "illegal function: #{function.inspect}"
|
538
|
-
end
|
539
|
-
|
540
|
-
send(function)
|
513
|
+
send(function&.to_sym)
|
541
514
|
end
|
515
|
+
raise VectorArgumentError, 'not an aggregation function' if value.is_a?(Vector)
|
516
|
+
|
542
517
|
Vector.new([value] * size)
|
543
518
|
end
|
544
519
|
alias_method :expand, :propagate
|
@@ -555,8 +530,10 @@ module RedAmber
|
|
555
530
|
case other
|
556
531
|
when Vector
|
557
532
|
find(function).execute([data, other.data], options)
|
558
|
-
when
|
559
|
-
|
533
|
+
when NilClass
|
534
|
+
nils = data.class.new([nil] * size)
|
535
|
+
find(function).execute([data, nils], options)
|
536
|
+
else
|
560
537
|
find(function).execute([data, other], options)
|
561
538
|
end
|
562
539
|
end
|
@@ -174,6 +174,13 @@ module RedAmber
|
|
174
174
|
#
|
175
175
|
define_binary_element_wise :logb
|
176
176
|
|
177
|
+
# Compute base `b` logarithm of self.
|
178
|
+
#
|
179
|
+
# This function is a overflow-checking variant of #logb.
|
180
|
+
# @return (see #logb)
|
181
|
+
#
|
182
|
+
define_binary_element_wise :logb_checked
|
183
|
+
|
177
184
|
# Logical 'or' boolean values with Kleene logic.
|
178
185
|
#
|
179
186
|
# @macro kleene_logic_or
|
@@ -211,6 +218,13 @@ module RedAmber
|
|
211
218
|
define_binary_element_wise :add
|
212
219
|
alias_method :'+', :add
|
213
220
|
|
221
|
+
# Add the arguments element-wise.
|
222
|
+
#
|
223
|
+
# This function is a overflow-checking variant of #add.
|
224
|
+
# @return (see #add)
|
225
|
+
#
|
226
|
+
define_binary_element_wise :add_checked
|
227
|
+
|
214
228
|
# Divide the arguments element-wise.
|
215
229
|
#
|
216
230
|
# Integer division by zero returns an error. However, integer overflow
|
@@ -219,11 +233,51 @@ module RedAmber
|
|
219
233
|
# @param divisor [Vector, Numeric]
|
220
234
|
# numeric vector or numeric scalar as divisor.
|
221
235
|
# @return [Vector]
|
222
|
-
# division of self
|
236
|
+
# division of self by other.
|
223
237
|
#
|
224
238
|
define_binary_element_wise :divide
|
225
239
|
alias_method :'/', :divide
|
226
240
|
|
241
|
+
# Divide the arguments element-wise.
|
242
|
+
#
|
243
|
+
# This function is a overflow-checking variant of #divide.
|
244
|
+
# @return (see #divide)
|
245
|
+
#
|
246
|
+
define_binary_element_wise :divide_checked
|
247
|
+
|
248
|
+
# Returns element-wise modulo.
|
249
|
+
#
|
250
|
+
# This is equivalent to `self-divisor*(self/divisor).floor`.
|
251
|
+
# @note Same behavior as Ruby.
|
252
|
+
# @param divisor [Vector, numeric]
|
253
|
+
# divisor numeric Vector or numeric scalar.
|
254
|
+
# @return [Vector]
|
255
|
+
# modulo of dividing self by divisor.
|
256
|
+
#
|
257
|
+
def modulo(divisor)
|
258
|
+
divisor = divisor.data if divisor.is_a?(Vector)
|
259
|
+
d = find(:divide).execute([data, divisor])
|
260
|
+
d = find(:floor).execute([d]) if d.value.is_a?(Arrow::DoubleArray)
|
261
|
+
m = find(:multiply).execute([d, divisor])
|
262
|
+
datum = find(:subtract).execute([data, m])
|
263
|
+
Vector.create(datum.value)
|
264
|
+
end
|
265
|
+
alias_method :'%', :modulo
|
266
|
+
|
267
|
+
# Returns element-wise modulo.
|
268
|
+
#
|
269
|
+
# This function is a overflow-checking variant of #modulo.
|
270
|
+
# @return (see #modulo)
|
271
|
+
#
|
272
|
+
def modulo_checked(divisor)
|
273
|
+
divisor = divisor.data if divisor.is_a?(Vector)
|
274
|
+
d = find(:divide_checked).execute([data, divisor])
|
275
|
+
d = find(:floor).execute([d]) if d.value.is_a?(Arrow::DoubleArray)
|
276
|
+
m = find(:multiply_checked).execute([d, divisor])
|
277
|
+
datum = find(:subtract_checked).execute([data, m])
|
278
|
+
Vector.create(datum.value)
|
279
|
+
end
|
280
|
+
|
227
281
|
# Multiply the arguments element-wise.
|
228
282
|
#
|
229
283
|
# Results will wrap around on integer overflow.
|
@@ -234,8 +288,16 @@ module RedAmber
|
|
234
288
|
# multiplication of self and other.
|
235
289
|
#
|
236
290
|
define_binary_element_wise :multiply
|
291
|
+
alias_method :mul, :multiply
|
237
292
|
alias_method :'*', :multiply
|
238
293
|
|
294
|
+
# Multiply the arguments element-wise.
|
295
|
+
#
|
296
|
+
# This function is a overflow-checking variant of #multiply.
|
297
|
+
# @return (see #multiply)
|
298
|
+
#
|
299
|
+
define_binary_element_wise :multiply_checked
|
300
|
+
|
239
301
|
# Raise arguments to power element-wise.
|
240
302
|
#
|
241
303
|
# Integer to negative integer power returns an error.
|
@@ -248,8 +310,72 @@ module RedAmber
|
|
248
310
|
# power operation of self and other.
|
249
311
|
#
|
250
312
|
define_binary_element_wise :power
|
313
|
+
alias_method :pow, :power
|
251
314
|
alias_method :'**', :power
|
252
315
|
|
316
|
+
# Raise arguments to power element-wise.
|
317
|
+
#
|
318
|
+
# This function is a overflow-checking variant of #power.
|
319
|
+
# @return (see #power)
|
320
|
+
#
|
321
|
+
define_binary_element_wise :power_checked
|
322
|
+
|
323
|
+
# Returns element-wise quotient by double Vector.
|
324
|
+
#
|
325
|
+
# @param divisor [Vector, numeric]
|
326
|
+
# divisor numeric Vector or numeric scalar.
|
327
|
+
# @return [Vector]
|
328
|
+
# quotient of dividing self by divisor.
|
329
|
+
#
|
330
|
+
def fdiv(divisor)
|
331
|
+
divisor = divisor.data if divisor.is_a?(Vector)
|
332
|
+
datum = find(:divide).execute([Arrow::DoubleArray.new(data), divisor])
|
333
|
+
Vector.create(datum.value)
|
334
|
+
end
|
335
|
+
|
336
|
+
# Returns element-wise quotient by double Vector.
|
337
|
+
#
|
338
|
+
# This function is a overflow-checking variant of #quotient.
|
339
|
+
# @return (see #quotient)
|
340
|
+
#
|
341
|
+
def fdiv_checked(divisor)
|
342
|
+
divisor = divisor.data if divisor.is_a?(Vector)
|
343
|
+
datum = find(:divide_checked).execute([Arrow::DoubleArray.new(data), divisor])
|
344
|
+
Vector.create(datum.value)
|
345
|
+
end
|
346
|
+
|
347
|
+
# Returns element-wise remainder.
|
348
|
+
#
|
349
|
+
# This is equivalent to `self-divisor*(self/divisor).trunc`.
|
350
|
+
# @note Same behavior as Ruby's remainder.
|
351
|
+
# @param divisor [Vector, numeric]
|
352
|
+
# divisor numeric Vector or numeric scalar.
|
353
|
+
# @return [Vector]
|
354
|
+
# modulo of dividing self by divisor.
|
355
|
+
#
|
356
|
+
def remainder(divisor)
|
357
|
+
divisor = divisor.data if divisor.is_a?(Vector)
|
358
|
+
d = find(:divide).execute([data, divisor])
|
359
|
+
d = find(:trunc).execute([d]) if d.value.is_a?(Arrow::DoubleArray)
|
360
|
+
m = find(:multiply).execute([d, divisor])
|
361
|
+
datum = find(:subtract).execute([data, m])
|
362
|
+
Vector.create(datum.value)
|
363
|
+
end
|
364
|
+
|
365
|
+
# Returns element-wise modulo.
|
366
|
+
#
|
367
|
+
# This function is a overflow-checking variant of #modulo.
|
368
|
+
# @return (see #modulo)
|
369
|
+
#
|
370
|
+
def remainder_checked(divisor)
|
371
|
+
divisor = divisor.data if divisor.is_a?(Vector)
|
372
|
+
d = find(:divide_checked).execute([data, divisor])
|
373
|
+
d = find(:trunc).execute([d]) if d.value.is_a?(Arrow::DoubleArray)
|
374
|
+
m = find(:multiply_checked).execute([d, divisor])
|
375
|
+
datum = find(:subtract_checked).execute([data, m])
|
376
|
+
Vector.create(datum.value)
|
377
|
+
end
|
378
|
+
|
253
379
|
# Subtract the arguments element-wise.
|
254
380
|
#
|
255
381
|
# Results will wrap around on integer overflow.
|
@@ -260,8 +386,16 @@ module RedAmber
|
|
260
386
|
# subtraction of self and other.
|
261
387
|
#
|
262
388
|
define_binary_element_wise :subtract
|
389
|
+
alias_method :sub, :subtract
|
263
390
|
alias_method :'-', :subtract
|
264
391
|
|
392
|
+
# Subtract the arguments element-wise.
|
393
|
+
#
|
394
|
+
# This function is a overflow-checking variant of #subtract.
|
395
|
+
# @return (see #subtract)
|
396
|
+
#
|
397
|
+
define_binary_element_wise :subtract_checked
|
398
|
+
|
265
399
|
# Left shift of self by other.
|
266
400
|
#
|
267
401
|
# The shift operates as if on the two's complement representation of the number.
|
@@ -278,6 +412,13 @@ module RedAmber
|
|
278
412
|
define_binary_element_wise :shift_left
|
279
413
|
alias_method :'<<', :shift_left
|
280
414
|
|
415
|
+
# Left shift of self by other.
|
416
|
+
#
|
417
|
+
# This function is a overflow-checking variant of #shift_left.
|
418
|
+
# @return (see #shift_left)
|
419
|
+
#
|
420
|
+
define_binary_element_wise :shift_left_checked
|
421
|
+
|
281
422
|
# Right shift of self by other.
|
282
423
|
#
|
283
424
|
# This is equivalent to dividing `x` by 2 to the power `y`.
|
@@ -292,6 +433,13 @@ module RedAmber
|
|
292
433
|
define_binary_element_wise :shift_right
|
293
434
|
alias_method :'>>', :shift_right
|
294
435
|
|
436
|
+
# Right shift of self by other.
|
437
|
+
#
|
438
|
+
# This function is a overflow-checking variant of #shift_right.
|
439
|
+
# @return (see #shift_right)
|
440
|
+
#
|
441
|
+
define_binary_element_wise :shift_right_checked
|
442
|
+
|
295
443
|
# Logical 'xor' boolean values
|
296
444
|
#
|
297
445
|
# When a nil is encountered in either input, a nil is output.
|
@@ -128,24 +128,55 @@ module RedAmber
|
|
128
128
|
raise VectorArgumentError, "Invalid argument: #{args}"
|
129
129
|
end
|
130
130
|
|
131
|
-
#
|
131
|
+
# Check if elements of self are in the other values.
|
132
|
+
#
|
133
|
+
# @param values [Vector, Array, Arrow::Array, Arrow::ChunkedArray]
|
134
|
+
# values to test existence.
|
135
|
+
# @return [Vector]
|
136
|
+
# boolean Vector.
|
137
|
+
#
|
132
138
|
def is_in(*values)
|
133
|
-
|
134
|
-
|
135
|
-
array =
|
139
|
+
enum =
|
136
140
|
case values
|
137
|
-
in [
|
138
|
-
|
141
|
+
in [] | [[]] | [nil] |[[nil]]
|
142
|
+
return Vector.new([false] * size)
|
143
|
+
in [Vector | Arrow::Array | Arrow::ChunkedArray]
|
144
|
+
values[0].each
|
139
145
|
else
|
140
|
-
|
146
|
+
parse_args(values, size, symbolize: false)
|
141
147
|
end
|
142
|
-
|
143
|
-
Vector.create(self_data.is_in(array))
|
148
|
+
enum.filter_map { self == _1 unless _1.nil? }.reduce(&:|)
|
144
149
|
end
|
145
150
|
|
146
|
-
#
|
151
|
+
# Returns index of first matched position of element in self.
|
152
|
+
#
|
153
|
+
# @param element
|
154
|
+
# an element of self.
|
155
|
+
# @return [integer, nil]
|
156
|
+
# founded position of element. If it is not found, returns nil.
|
157
|
+
#
|
147
158
|
def index(element)
|
148
|
-
|
159
|
+
(0...size).find { |i| self[i] == element }
|
160
|
+
end
|
161
|
+
|
162
|
+
# Returns first element of self.
|
163
|
+
#
|
164
|
+
# @return
|
165
|
+
# the first element.
|
166
|
+
# @since 0.4.1
|
167
|
+
#
|
168
|
+
def first
|
169
|
+
data[0]
|
170
|
+
end
|
171
|
+
|
172
|
+
# Returns last element of self.
|
173
|
+
#
|
174
|
+
# @return
|
175
|
+
# the last element.
|
176
|
+
# @since 0.4.1
|
177
|
+
#
|
178
|
+
def last
|
179
|
+
data[-1]
|
149
180
|
end
|
150
181
|
|
151
182
|
# Drop nil in self and returns a new Vector as a result.
|
@@ -236,7 +267,13 @@ module RedAmber
|
|
236
267
|
# @since 0.4.0
|
237
268
|
#
|
238
269
|
def rank
|
239
|
-
datum =
|
270
|
+
datum =
|
271
|
+
case data
|
272
|
+
when Arrow::ChunkedArray
|
273
|
+
Arrow::Function.find(:rank).execute([data.pack])
|
274
|
+
else
|
275
|
+
Arrow::Function.find(:rank).execute([data])
|
276
|
+
end
|
240
277
|
Vector.create(datum.value) - 1
|
241
278
|
end
|
242
279
|
|
@@ -56,6 +56,13 @@ module RedAmber
|
|
56
56
|
#
|
57
57
|
define_unary_element_wise :abs
|
58
58
|
|
59
|
+
# Calculate the absolute value of self element-wise.
|
60
|
+
#
|
61
|
+
# This function is a overflow-checking variant of #abs.
|
62
|
+
# @return (see #abs)
|
63
|
+
#
|
64
|
+
define_unary_element_wise :abs_checked
|
65
|
+
|
59
66
|
# Compute the inverse cosine of self element-wise.
|
60
67
|
#
|
61
68
|
# NaN is returned for invalid input values.
|
@@ -64,6 +71,13 @@ module RedAmber
|
|
64
71
|
#
|
65
72
|
define_unary_element_wise :acos
|
66
73
|
|
74
|
+
# Compute the inverse cosine of self element-wise.
|
75
|
+
#
|
76
|
+
# This function is a overflow-checking variant of #acos.
|
77
|
+
# @return (see #acos)
|
78
|
+
#
|
79
|
+
define_unary_element_wise :acos_checked
|
80
|
+
|
67
81
|
# Compute the inverse sine of self element-wise.
|
68
82
|
#
|
69
83
|
# NaN is returned for invalid input values.
|
@@ -72,6 +86,13 @@ module RedAmber
|
|
72
86
|
#
|
73
87
|
define_unary_element_wise :asin
|
74
88
|
|
89
|
+
# Compute the inverse sine of self element-wise.
|
90
|
+
#
|
91
|
+
# This function is a overflow-checking variant of #asin.
|
92
|
+
# @return (see #asin)
|
93
|
+
#
|
94
|
+
define_unary_element_wise :asin_checked
|
95
|
+
|
75
96
|
# Return the indices that would sort self.
|
76
97
|
#
|
77
98
|
# Computes indices Vector that define a stable sort of self.
|
@@ -129,8 +150,16 @@ module RedAmber
|
|
129
150
|
#
|
130
151
|
define_unary_element_wise :cos
|
131
152
|
|
153
|
+
# Compute the cosine of self element-wise.
|
154
|
+
#
|
155
|
+
# This function is a overflow-checking variant of #cos.
|
156
|
+
# @return (see #cos)
|
157
|
+
#
|
158
|
+
define_unary_element_wise :cos_checked
|
159
|
+
|
132
160
|
# Compute cumulative sum over the numeric Vector.
|
133
161
|
#
|
162
|
+
# This function is a overflow-checking variant of #cumsum.
|
134
163
|
# @note Self must be numeric.
|
135
164
|
# @note Return error for integer overflow.
|
136
165
|
# @return [Vector]
|
@@ -261,6 +290,13 @@ module RedAmber
|
|
261
290
|
#
|
262
291
|
define_unary_element_wise :ln
|
263
292
|
|
293
|
+
# Compute natural logarithm.
|
294
|
+
#
|
295
|
+
# This function is a overflow-checking variant of #ln.
|
296
|
+
# @return (see #ln)
|
297
|
+
#
|
298
|
+
define_unary_element_wise :ln_checked
|
299
|
+
|
264
300
|
# Compute base 10 logarithm.
|
265
301
|
#
|
266
302
|
# Non-positive values return -inf or NaN. Nil values return nil.
|
@@ -269,6 +305,13 @@ module RedAmber
|
|
269
305
|
#
|
270
306
|
define_unary_element_wise :log10
|
271
307
|
|
308
|
+
# Compute base 10 logarithm.
|
309
|
+
#
|
310
|
+
# This function is a overflow-checking variant of #log10.
|
311
|
+
# @return (see #log10)
|
312
|
+
#
|
313
|
+
define_unary_element_wise :log10_checked
|
314
|
+
|
272
315
|
# Compute natural log of (1+x).
|
273
316
|
#
|
274
317
|
# Non-positive values return -inf or NaN. Nil values return nil.
|
@@ -278,6 +321,13 @@ module RedAmber
|
|
278
321
|
#
|
279
322
|
define_unary_element_wise :log1p
|
280
323
|
|
324
|
+
# Compute natural log of (1+x).
|
325
|
+
#
|
326
|
+
# This function is a overflow-checking variant of #log1p.
|
327
|
+
# @return (see #log1p)
|
328
|
+
#
|
329
|
+
define_unary_element_wise :log1p_checked
|
330
|
+
|
281
331
|
# Compute base 2 logarithm.
|
282
332
|
#
|
283
333
|
# Non-positive values return -inf or NaN. Nil values return nil.
|
@@ -286,6 +336,13 @@ module RedAmber
|
|
286
336
|
#
|
287
337
|
define_unary_element_wise :log2
|
288
338
|
|
339
|
+
# Compute base 2 logarithm.
|
340
|
+
#
|
341
|
+
# This function is a overflow-checking variant of #log2.
|
342
|
+
# @return (see #log2)
|
343
|
+
#
|
344
|
+
define_unary_element_wise :log2_checked
|
345
|
+
|
289
346
|
# Round to a given precision.
|
290
347
|
#
|
291
348
|
# Options are used to control the number of digits and rounding mode.
|
@@ -390,6 +447,28 @@ module RedAmber
|
|
390
447
|
#
|
391
448
|
define_unary_element_wise :sin
|
392
449
|
|
450
|
+
# Compute the sine of self element-wise.
|
451
|
+
#
|
452
|
+
# This function is a overflow-checking variant of #sin.
|
453
|
+
# @return (see #sin)
|
454
|
+
#
|
455
|
+
define_unary_element_wise :sin_checked
|
456
|
+
|
457
|
+
# Compute square root of self.
|
458
|
+
#
|
459
|
+
# NaN is returned for invalid input values.
|
460
|
+
# @return [Vector]
|
461
|
+
# sqrt of each element of self.
|
462
|
+
#
|
463
|
+
define_unary_element_wise :sqrt
|
464
|
+
|
465
|
+
# Compute square root of self.
|
466
|
+
#
|
467
|
+
# This function is a overflow-checking variant of #sqrt.
|
468
|
+
# @return (see #sqrt)
|
469
|
+
#
|
470
|
+
define_unary_element_wise :sqrt_checked
|
471
|
+
|
393
472
|
# Compute the tangent of self element-wise.
|
394
473
|
#
|
395
474
|
# NaN is returned for invalid input values.
|
@@ -398,6 +477,13 @@ module RedAmber
|
|
398
477
|
#
|
399
478
|
define_unary_element_wise :tan
|
400
479
|
|
480
|
+
# Compute the tangent of self element-wise.
|
481
|
+
#
|
482
|
+
# This function is a overflow-checking variant of #tan.
|
483
|
+
# @return (see #tan)
|
484
|
+
#
|
485
|
+
define_unary_element_wise :tan_checked
|
486
|
+
|
401
487
|
# Compute the integral part
|
402
488
|
#
|
403
489
|
# Compute the nearest integer not greater in magnitude than each element.
|
@@ -432,5 +518,12 @@ module RedAmber
|
|
432
518
|
#
|
433
519
|
define_unary_element_wise :negate
|
434
520
|
alias_method :'-@', :negate # rubocop:disable Lint/SymbolConversion
|
521
|
+
|
522
|
+
# Negate the argument element-wise
|
523
|
+
#
|
524
|
+
# This function is a overflow-checking variant of #negate.
|
525
|
+
# @return (see #negate)
|
526
|
+
#
|
527
|
+
define_unary_element_wise :negate_checked
|
435
528
|
end
|
436
529
|
end
|
data/lib/red_amber/version.rb
CHANGED
data/red_amber.gemspec
CHANGED
@@ -11,13 +11,13 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.summary = 'Simple dataframe library for Ruby'
|
12
12
|
spec.description = 'RedAmber is a simple dataframe library ' \
|
13
13
|
'inspired by Rover-df and powered by Red Arrow.'
|
14
|
-
spec.homepage = 'https://github.com/
|
14
|
+
spec.homepage = 'https://github.com/red-data-tools/red_amber'
|
15
15
|
spec.license = 'MIT'
|
16
16
|
spec.required_ruby_version = '>= 3.0'
|
17
17
|
|
18
18
|
spec.metadata['homepage_uri'] = spec.homepage
|
19
|
-
spec.metadata['source_code_uri'] = 'https://github.com/
|
20
|
-
spec.metadata['changelog_uri'] = 'https://github.com/
|
19
|
+
spec.metadata['source_code_uri'] = 'https://github.com/red-data-tools/red_amber'
|
20
|
+
spec.metadata['changelog_uri'] = 'https://github.com/red-data-tools/red_amber/blob/main/CHANGELOG.md'
|
21
21
|
|
22
22
|
# Specify which files should be added to the gem when it is released.
|
23
23
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: red_amber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hirokazu SUZUKI (heronshoes)
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-02
|
11
|
+
date: 2023-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: red-arrow
|
@@ -87,6 +87,15 @@ files:
|
|
87
87
|
- doc/tdr.md
|
88
88
|
- doc/tdr_ja.md
|
89
89
|
- doc/yard-templates/default/fulldoc/html/css/common.css
|
90
|
+
- docker/.env
|
91
|
+
- docker/Dockerfile
|
92
|
+
- docker/Gemfile
|
93
|
+
- docker/Gemfile.lock
|
94
|
+
- docker/docker-compose.yml
|
95
|
+
- docker/example
|
96
|
+
- docker/notebook/examples_of_red_amber.ipynb
|
97
|
+
- docker/notebook/red-amber.ipynb
|
98
|
+
- docker/readme.md
|
90
99
|
- lib/red-amber.rb
|
91
100
|
- lib/red_amber.rb
|
92
101
|
- lib/red_amber/data_frame.rb
|
@@ -110,13 +119,13 @@ files:
|
|
110
119
|
- lib/red_amber/version.rb
|
111
120
|
- red_amber.gemspec
|
112
121
|
- sig/red_amber.rbs
|
113
|
-
homepage: https://github.com/
|
122
|
+
homepage: https://github.com/red-data-tools/red_amber
|
114
123
|
licenses:
|
115
124
|
- MIT
|
116
125
|
metadata:
|
117
|
-
homepage_uri: https://github.com/
|
118
|
-
source_code_uri: https://github.com/
|
119
|
-
changelog_uri: https://github.com/
|
126
|
+
homepage_uri: https://github.com/red-data-tools/red_amber
|
127
|
+
source_code_uri: https://github.com/red-data-tools/red_amber
|
128
|
+
changelog_uri: https://github.com/red-data-tools/red_amber/blob/main/CHANGELOG.md
|
120
129
|
rubygems_mfa_required: 'true'
|
121
130
|
post_install_message:
|
122
131
|
rdoc_options: []
|
@@ -133,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
142
|
- !ruby/object:Gem::Version
|
134
143
|
version: '0'
|
135
144
|
requirements: []
|
136
|
-
rubygems_version: 3.
|
145
|
+
rubygems_version: 3.4.10
|
137
146
|
signing_key:
|
138
147
|
specification_version: 4
|
139
148
|
summary: Simple dataframe library for Ruby
|