red_amber 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -236,7 +236,6 @@ module RedAmber
236
236
  # division of self by other.
237
237
  #
238
238
  define_binary_element_wise :divide
239
- alias_method :div, :divide
240
239
  alias_method :'/', :divide
241
240
 
242
241
  # Divide the arguments element-wise.
@@ -248,21 +247,21 @@ module RedAmber
248
247
 
249
248
  # Returns element-wise modulo.
250
249
  #
251
- # This is equivalent to `self-other*(self/other).floor`.
252
- # @param other [Vector, numeric]
253
- # other numeric Vector or numeric scalar.
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
254
  # @return [Vector]
255
- # modulo of dividing self by other.
255
+ # modulo of dividing self by divisor.
256
256
  #
257
- def modulo(other)
258
- other = other.data if other.is_a?(Vector)
259
- d = find(:divide).execute([data, other])
257
+ def modulo(divisor)
258
+ divisor = divisor.data if divisor.is_a?(Vector)
259
+ d = find(:divide).execute([data, divisor])
260
260
  d = find(:floor).execute([d]) if d.value.is_a?(Arrow::DoubleArray)
261
- m = find(:multiply).execute([d, other])
261
+ m = find(:multiply).execute([d, divisor])
262
262
  datum = find(:subtract).execute([data, m])
263
263
  Vector.create(datum.value)
264
264
  end
265
- alias_method :mod, :modulo
266
265
  alias_method :'%', :modulo
267
266
 
268
267
  # Returns element-wise modulo.
@@ -270,11 +269,11 @@ module RedAmber
270
269
  # This function is a overflow-checking variant of #modulo.
271
270
  # @return (see #modulo)
272
271
  #
273
- def modulo_checked(other)
274
- other = other.data if other.is_a?(Vector)
275
- d = find(:divide_checked).execute([data, other])
272
+ def modulo_checked(divisor)
273
+ divisor = divisor.data if divisor.is_a?(Vector)
274
+ d = find(:divide_checked).execute([data, divisor])
276
275
  d = find(:floor).execute([d]) if d.value.is_a?(Arrow::DoubleArray)
277
- m = find(:multiply_checked).execute([d, other])
276
+ m = find(:multiply_checked).execute([d, divisor])
278
277
  datum = find(:subtract_checked).execute([data, m])
279
278
  Vector.create(datum.value)
280
279
  end
@@ -323,27 +322,57 @@ module RedAmber
323
322
 
324
323
  # Returns element-wise quotient by double Vector.
325
324
  #
326
- # @param other [Vector, numeric]
327
- # other numeric Vector or numeric scalar.
325
+ # @param divisor [Vector, numeric]
326
+ # divisor numeric Vector or numeric scalar.
328
327
  # @return [Vector]
329
- # quotient of dividing self by other.
328
+ # quotient of dividing self by divisor.
330
329
  #
331
- def quotient(other)
332
- other = other.data if other.is_a?(Vector)
333
- datum = find(:divide).execute([Arrow::DoubleArray.new(data), other])
330
+ def fdiv(divisor)
331
+ divisor = divisor.data if divisor.is_a?(Vector)
332
+ datum = find(:divide).execute([Arrow::DoubleArray.new(data), divisor])
334
333
  Vector.create(datum.value)
335
334
  end
336
- alias_method :quo, :quotient
337
- alias_method :fdiv, :quotient
338
335
 
339
336
  # Returns element-wise quotient by double Vector.
340
337
  #
341
338
  # This function is a overflow-checking variant of #quotient.
342
339
  # @return (see #quotient)
343
340
  #
344
- def quotient_checked(other)
345
- other = other.data if other.is_a?(Vector)
346
- datum = find(:divide_checked).execute([Arrow::DoubleArray.new(data), other])
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])
347
376
  Vector.create(datum.value)
348
377
  end
349
378
 
@@ -2,5 +2,5 @@
2
2
 
3
3
  module RedAmber
4
4
  # Library version
5
- VERSION = '0.4.1'
5
+ VERSION = '0.4.2'
6
6
  end
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/heronshoes/red_amber'
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/heronshoes/red_amber'
20
- spec.metadata['changelog_uri'] = 'https://github.com/heronshoes/red_amber/blob/main/CHANGELOG.md'
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.1
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-03-11 00:00:00.000000000 Z
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/heronshoes/red_amber
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/heronshoes/red_amber
118
- source_code_uri: https://github.com/heronshoes/red_amber
119
- changelog_uri: https://github.com/heronshoes/red_amber/blob/main/CHANGELOG.md
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.4.1
145
+ rubygems_version: 3.4.10
137
146
  signing_key:
138
147
  specification_version: 4
139
148
  summary: Simple dataframe library for Ruby