vector_sse 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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/