red_amber 0.4.1 → 0.4.2

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.
@@ -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