vector_sse 0.0.3 → 0.0.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 76432f1deaa727915d70bb6d2f6c1f664c37266d
4
- data.tar.gz: 38032d25b177403ae26e9aaf4b96f5779d891bb4
3
+ metadata.gz: 56fffce0ddf63910192cb3d6c02b2c7052b07f48
4
+ data.tar.gz: ad9f4491bf8a3f03fba24ee40f89f4ff6d1c2f92
5
5
  SHA512:
6
- metadata.gz: c7371159b7f988e00bd1118370c7cebba152b8c06d1f7158fb3312033ab11b57c12f0051ef2c757bdeadf3b5011720335dd997f5df47adb350c4b7a2febf5167
7
- data.tar.gz: d96ab615ef09749a318f301a1e7109209f0eae80318dc0bd9162263e6ea46e7c36376890df5a3d796cecc588e5edae90ce0bb533c36459f86064dac87f9b41d4
6
+ metadata.gz: e7424cccf7484b98e2e01f27e477737bf911517b21ee14143bfcbd127370ef8a33443f89e11dc07088e1eab68cd6c7cafab445ff8e16944b5187cd46925252bd
7
+ data.tar.gz: 54e9bf1e96ffe47dd57723413bc675751d20a6dd414b753f1f45688ec5496b83252d2dd53294aa177d6f01e8739742d8fb146b0788587142da3b1b91c8d1d6e2
@@ -0,0 +1,8 @@
1
+ language: ruby
2
+ sudo: false
3
+ cache: bundler
4
+ rvm:
5
+ - 2.4.5
6
+ - 2.5.5
7
+ - 2.6.2
8
+ script: bundle exec rake compile spec
data/Gemfile CHANGED
@@ -1,5 +1,5 @@
1
1
  source 'https://rubygems.org'
2
- gem 'rake', '10.4.2'
2
+ gem 'rake', '12.3.3'
3
3
  gem 'rake-compiler', '0.9.5'
4
- gem 'rspec'
4
+ gem 'rspec', '>= 3.1.0'
5
5
 
data/README.md CHANGED
@@ -1,3 +1,5 @@
1
+ [![Build Status](https://travis-ci.org/rgmann/vector_sse.svg?branch=master)](https://travis-ci.org/rgmann/vector_sse)
2
+
1
3
  ## Welcome to VectorSSE ##
2
4
 
3
5
  VectorSSE is a Ruby gem that uses x86 Streaming SIMD Extensions (SSE) to accelerate
@@ -18,9 +20,9 @@ normal, non-SSE instructions to yield the overall sum of the 1000-element array.
18
20
 
19
21
  ## Install the gem ##
20
22
 
21
- Install it with [RubyGems](https://rubygems.org/) (currently pre-release)
23
+ Install it with [RubyGems](https://rubygems.org/)
22
24
 
23
- gem install vector_sse --pre
25
+ gem install vector_sse
24
26
 
25
27
  or add this to your Gemfile if you use [Bundler](http://gembundler.com/):
26
28
 
@@ -36,8 +36,6 @@ require File.join( bin_root, 'vector_sse.so' )
36
36
 
37
37
  module VectorSSE
38
38
 
39
- VERSION = "0.0.3"
40
-
41
39
  module Type
42
40
  S32 = 0
43
41
  S64 = 1
@@ -138,7 +136,7 @@ module VectorSSE
138
136
 
139
137
  scalar_mul = false
140
138
 
141
- if [ Fixnum, Float ].include? other.class
139
+ if [ Integer, Float ].include? other.class
142
140
 
143
141
  scalar_mul = true
144
142
  scalar_value = other
@@ -195,7 +193,7 @@ module VectorSSE
195
193
 
196
194
  def +( other )
197
195
 
198
- if [ Fixnum, Float ].include? other.class
196
+ if [ Integer, Float ].include? other.class
199
197
 
200
198
  scalar_value = other
201
199
  other = Mat.new( @type, @rows, @cols )
@@ -211,7 +209,7 @@ module VectorSSE
211
209
  else
212
210
 
213
211
  raise ArgumentError.new(
214
- "expect argument of type #{self.class}, Fixnum, or Float for argument 0" )
212
+ "expect argument of type #{self.class}, Integer, or Float for argument 0" )
215
213
 
216
214
  end
217
215
 
@@ -233,7 +231,7 @@ module VectorSSE
233
231
 
234
232
  def -( other )
235
233
 
236
- if [ Fixnum, Float ].include? other.class
234
+ if [ Integer, Float ].include? other.class
237
235
 
238
236
  scalar_value = other
239
237
  other = Mat.new( @type, @rows, @cols )
@@ -249,7 +247,7 @@ module VectorSSE
249
247
  else
250
248
 
251
249
  raise ArgumentError.new(
252
- "expect argument of type #{self.class}, Fixnum, or Float for argument 0" )
250
+ "expect argument of type #{self.class}, Integer, or Float for argument 0" )
253
251
 
254
252
  end
255
253
 
@@ -309,8 +307,8 @@ module VectorSSE
309
307
 
310
308
  def valid_data_type( value )
311
309
 
312
- unless [ Fixnum, Float ].include? value.class
313
- raise ArgumentError.new( "expected argument of type Fixnum or Float" )
310
+ unless [ Integer, Float ].include? value.class
311
+ raise ArgumentError.new( "expected argument of type Integer or Float" )
314
312
  end
315
313
 
316
314
  end
@@ -336,27 +334,27 @@ module VectorSSE
336
334
  end
337
335
 
338
336
  def <<( value )
339
- unless [ Fixnum, Float ].include? value.class
337
+ unless [ Integer, Float ].include? value.class
340
338
  raise ArgumentError.new(
341
- "expected argument of type Fixnum or Float for argument 0" )
339
+ "expected argument of type Integer or Float for argument 0" )
342
340
  end
343
341
  super( value )
344
342
  end
345
343
 
346
344
  def insert( index, *values )
347
345
  values.each_with_index do |value,arg_index|
348
- unless [ Fixnum, Float ].include? value.class
346
+ unless [ Integer, Float ].include? value.class
349
347
  raise ArgumentError.new(
350
- "expected argument of type Fixnum or Float for argument #{arg_index}" )
348
+ "expected argument of type Integer or Float for argument #{arg_index}" )
351
349
  end
352
350
  end
353
351
  super( index, values )
354
352
  end
355
353
 
356
354
  def []=( index, value )
357
- unless [ Fixnum, Float ].include? value.class
355
+ unless [ Integer, Float ].include? value.class
358
356
  raise ArgumentError.new(
359
- "expected argument of type Fixnum or Float for argument 1" )
357
+ "expected argument of type Integer or Float for argument 1" )
360
358
  end
361
359
  super( index, value )
362
360
  end
@@ -367,14 +365,14 @@ module VectorSSE
367
365
  #
368
366
  def +( other )
369
367
 
370
- if [ Fixnum, Float ].include? other.class
368
+ if [ Integer, Float ].include? other.class
371
369
 
372
370
  other = ::Array.new( self.length, other )
373
371
 
374
372
  elsif other.class != self.class
375
373
 
376
374
  raise ArgumentError.new(
377
- "expect argument of type #{self.class}, Fixnum, or Float for argument 0" )
375
+ "expect argument of type #{self.class}, Integer, or Float for argument 0" )
378
376
 
379
377
  end
380
378
 
@@ -400,11 +398,11 @@ module VectorSSE
400
398
  #
401
399
  def -( other )
402
400
 
403
- if [ Fixnum, Float ].include? other.class
401
+ if [ Integer, Float ].include? other.class
404
402
  other = ::Array.new( self.length, other )
405
403
  elsif other.class != self.class
406
404
  raise ArgumentError.new(
407
- "expected argument of type #{self.class}, Fixnum, or Float for argument 0" )
405
+ "expected argument of type #{self.class}, Integer, or Float for argument 0" )
408
406
  end
409
407
 
410
408
  result = self.class.new( @type )
@@ -444,9 +442,9 @@ module VectorSSE
444
442
 
445
443
  def *( other )
446
444
 
447
- unless [ Fixnum, Float ].include? other.class
445
+ unless [ Integer, Float ].include? other.class
448
446
 
449
- raise ArgumentError.new( "expected argument of type Float or Fixnum for argument 0" )
447
+ raise ArgumentError.new( "expected argument of type Float or Integer for argument 0" )
450
448
 
451
449
  end
452
450
 
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module VectorSSE
4
+ VERSION = "0.0.4".freeze
5
+ end
@@ -30,6 +30,51 @@ RSpec.describe VectorSSE::Array do
30
30
  end
31
31
 
32
32
  describe "vector addition" do
33
+
34
+ it "raises exception if right addend is shorter than the left addend in addition" do
35
+ left = VectorSSE::Array.new( VectorSSE::Type::S32 )
36
+ left.replace [ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 ]
37
+ right = VectorSSE::Array.new( VectorSSE::Type::S32 )
38
+ right.replace [ 1, 2, 3, 4, 5 ]
39
+
40
+ expect {
41
+ result = left + right
42
+ }.to raise_error "Vector lengths must be the same"
43
+ end
44
+
45
+ it "raises exception if right addend is shorter than the left addend in subtraction" do
46
+ left = VectorSSE::Array.new( VectorSSE::Type::S32 )
47
+ left.replace [ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 ]
48
+ right = VectorSSE::Array.new( VectorSSE::Type::S32 )
49
+ right.replace [ 1, 2, 3, 4, 5 ]
50
+
51
+ expect {
52
+ result = left - right
53
+ }.to raise_error "Vector lengths must be the same"
54
+ end
55
+
56
+ it "raises exception if right addend is longer than the left addend in addition" do
57
+ left = VectorSSE::Array.new( VectorSSE::Type::S32 )
58
+ left.replace [ 1, 2, 3, 4, 5 ]
59
+ right = VectorSSE::Array.new( VectorSSE::Type::S32 )
60
+ right.replace [ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 ]
61
+
62
+ expect {
63
+ result = left + right
64
+ }.to raise_error "Vector lengths must be the same"
65
+ end
66
+
67
+ it "raises exception if right addend is longer than the left addend in subtraction" do
68
+ left = VectorSSE::Array.new( VectorSSE::Type::S32 )
69
+ left.replace [ 1, 2, 3, 4, 5 ]
70
+ right = VectorSSE::Array.new( VectorSSE::Type::S32 )
71
+ right.replace [ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 ]
72
+
73
+ expect {
74
+ result = left - right
75
+ }.to raise_error "Vector lengths must be the same"
76
+ end
77
+
33
78
  it "returns difference between vectors" do
34
79
  left = VectorSSE::Array.new( VectorSSE::Type::S32 )
35
80
  left.replace [ 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 ]
@@ -1,9 +1,11 @@
1
1
  # -*- encoding: utf-8 -*-
2
- require_relative 'lib/vector_sse'
2
+
3
+ $:.push File.expand_path("../lib", __FILE__)
4
+ require "vector_sse/version"
3
5
 
4
6
  Gem::Specification.new do |s|
5
7
  s.name = 'vector_sse'
6
- s.version = VectorSSE::VERSION
8
+ s.version = VectorSSE::VERSION.dup
7
9
  s.date = Time.now.to_date.strftime('%Y-%m-%d')
8
10
  s.summary = "SIMD accelerated vector and matrix operations"
9
11
  s.description = "VectorSse employs x86 Streaming SIMD Extensions (SSE), v3 or greater, to accelerate basic vector and matrix computations in Ruby."
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vector_sse
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Glissmann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-03 00:00:00.000000000 Z
11
+ date: 2020-12-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
@@ -47,6 +47,7 @@ extensions:
47
47
  extra_rdoc_files: []
48
48
  files:
49
49
  - ".gitignore"
50
+ - ".travis.yml"
50
51
  - Gemfile
51
52
  - LICENSE.txt
52
53
  - README.md
@@ -65,8 +66,8 @@ files:
65
66
  - ext/vector_sse/vector_sse_sum.h
66
67
  - ext/vector_sse/vector_sse_vec_mul.c
67
68
  - ext/vector_sse/vector_sse_vec_mul.h
68
- - lib/.gitignore
69
69
  - lib/vector_sse.rb
70
+ - lib/vector_sse/version.rb
70
71
  - spec/vector_mat_spec.rb
71
72
  - spec/vector_vec_spec.rb
72
73
  - vector_sse.gemspec
@@ -90,8 +91,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
90
91
  version: '0'
91
92
  requirements: []
92
93
  rubyforge_project:
93
- rubygems_version: 2.4.8
94
+ rubygems_version: 2.4.5.1
94
95
  signing_key:
95
96
  specification_version: 4
96
97
  summary: SIMD accelerated vector and matrix operations
97
98
  test_files: []
99
+ has_rdoc:
@@ -1 +0,0 @@
1
- vector_sse/