convolver 0.3.1 → 0.3.2

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: aa84808d5f3c0be7b1128732c98ffecbd71d1673
4
- data.tar.gz: 91a4d77ad8feb496408251f688f2eeab0124c8a0
3
+ metadata.gz: 4c3bcf13a230b62ed29260b84490f720af3408cc
4
+ data.tar.gz: 3d00b5f4ece4078525b5d57fbe536d3dfcc6020e
5
5
  SHA512:
6
- metadata.gz: 45559b58c01d30623707001ba3af4e442695d5108e6757f93a716d6683055ed7f07b95559bb010c42c9f7bb621c64895b01f82431301b8645a030303c40c33a5
7
- data.tar.gz: 51db7895f0e8c07b4a4e47d20c6b242c6e4691ad838109afeb450aef8fad496c70bb1ff15759afe38276f329a7efec0b8123ea4e8e7334ad554ed07b786c0b3c
6
+ metadata.gz: 113c51e9233dabd6d94490b1906e31787f0fc9e7826bacf8b999c2c63e2722381baf417c616519735456f286c781e2597547b9851e77addd8267ec87c38947c2
7
+ data.tar.gz: 2495231401448636a915562cf6ad09ba4351094a4af290b0d0a84ee5a7a313e57e1e2d8e07b70746b7ee60b1780ba6ed9e4e8c8c19518fa785d4c01e589b8258
@@ -1,11 +1,19 @@
1
- before_install:
2
- - sudo apt-get update -qq
3
- - sudo apt-get install -qq libfftw3-dev
4
1
  language: ruby
2
+ cache: bundler
3
+
4
+ os:
5
+ - linux
6
+ - osx
7
+
8
+ addons:
9
+ apt:
10
+ update: true
11
+ packages: libfftw3-dev
12
+ homebrew:
13
+ packages: fftw
14
+
5
15
  rvm:
6
- - "1.8.7"
7
- - "1.9.3"
8
- - "2.0.0"
9
- - rbx-18mode
10
- - rbx-19mode
11
- - ree
16
+ - "2.2.10"
17
+ - "2.3.8"
18
+ - "2.4.5"
19
+ - "2.5.3"
data/README.md CHANGED
@@ -2,7 +2,9 @@
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/convolver.png)](http://badge.fury.io/rb/convolver)
4
4
  [![Build Status](https://travis-ci.org/neilslater/convolver.png?branch=master)](http://travis-ci.org/neilslater/convolver)
5
- [![Dependency Status](https://gemnasium.com/neilslater/convolver.png)](https://gemnasium.com/neilslater/convolver)
5
+ [![Coverage Status](https://coveralls.io/repos/neilslater/convolver/badge.png?branch=master)](https://coveralls.io/r/neilslater/convolver?branch=master)
6
+ [![Inline docs](http://inch-ci.org/github/neilslater/convolver.png?branch=master)](http://inch-ci.org/github/neilslater/convolver)
7
+ [![Code Climate](https://codeclimate.com/github/neilslater/convolver.png)](https://codeclimate.com/github/neilslater/convolver)
6
8
 
7
9
  Calculates discrete convolution between two multi-dimensional arrays of floats.
8
10
  See http://en.wikipedia.org/wiki/Convolution
@@ -51,11 +53,6 @@ small convolutions are processed directly by multiplying out all combinations an
51
53
  and large convolutions are processed using FFTW3 to convert to frequency space where convolution
52
54
  is simpler and faster to calculate, then convert back.
53
55
 
54
- ## Convolutional Neural Nets
55
-
56
- Code for CNNs in Ruby, based on the convolve_basic method from this gem, is planned for a
57
- new gem ```co_ne_ne```.
58
-
59
56
  ## Contributing
60
57
 
61
58
  1. Fork it
@@ -63,3 +60,7 @@ new gem ```co_ne_ne```.
63
60
  3. Commit your changes (`git commit -am 'Add some feature'`)
64
61
  4. Push to the branch (`git push origin my-new-feature`)
65
62
  5. Create new Pull Request
63
+
64
+ ## Contributors
65
+
66
+ * [Dima Ermilov](https://github.com/adworse) contributed fix to support compiling under Windows.
@@ -19,9 +19,9 @@ Gem::Specification.new do |spec|
19
19
  spec.add_development_dependency "yard", ">= 0.8.7.2"
20
20
  spec.add_development_dependency "bundler", ">= 1.3"
21
21
  spec.add_development_dependency "rspec", ">= 2.13.0"
22
- spec.add_development_dependency "mocha", ">= 0.14.0"
23
22
  spec.add_development_dependency "rake", ">= 1.9.1"
24
23
  spec.add_development_dependency "rake-compiler", ">= 0.8.3"
24
+ spec.add_development_dependency "coveralls", ">= 0.6.7"
25
25
 
26
26
  spec.files = `git ls-files`.split($/)
27
27
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
@@ -4,7 +4,11 @@ require "rubygems"
4
4
 
5
5
  # Following code stolen shamelessly from fftw3 gem:
6
6
  narray_dir = File.dirname(Gem.find_files("narray.h").first) rescue $sitearchdir
7
- dir_config('narray', narray_dir, narray_dir)
7
+ if /cygwin|mingw/ =~ RUBY_PLATFORM
8
+ dir_config('narray', narray_dir, "#{narray_dir}/src")
9
+ else
10
+ dir_config('narray', narray_dir, narray_dir)
11
+ end
8
12
 
9
13
  if ( ! ( have_header("narray.h") && have_header("narray_config.h") ) ) then
10
14
  print <<-EOS
@@ -26,7 +26,8 @@ module Convolver
26
26
  end
27
27
 
28
28
  # Factor of two to allow for large uncertainty in predictions for FFTW3
29
- if predict_convolve_fft_time( signal, kernel ) < 2 * basic_time_predicted
29
+ fft_time_predicted = predict_convolve_fft_time( signal, kernel )
30
+ if fft_time_predicted < 2 * basic_time_predicted
30
31
  return convolve_fftw3( signal, kernel )
31
32
  end
32
33
 
@@ -64,7 +65,7 @@ module Convolver
64
65
  # @param [NArray] kernel must be same size or smaller than signal in each dimension
65
66
  # @return [Float] rough estimate of time for convolution compared to baseline
66
67
  def self.predict_convolve_fft_time signal, kernel
67
- 16 * 4.55e-08 * combined_shape(signal.shape,kernel.shape).inject(1) { |t,x| t * x * Math.log(x) }
68
+ 16 * 4.55e-08 * result_shape(signal.shape,kernel.shape).inject(1) { |t,x| t * x * Math.log(x) }
68
69
  end
69
70
 
70
71
  # A rough estimate of time that #convolve will take, based on complexity
@@ -84,15 +85,6 @@ module Convolver
84
85
  shape.inject(1) { |t,x| t * x }
85
86
  end
86
87
 
87
- def self.combined_shape signal_shape, kernel_shape
88
- combined_shape = [ ]
89
- signal_shape.each_with_index do |signal_size, i|
90
- kernel_size = kernel_shape[i]
91
- combined_shape[i] = signal_size + kernel_size - 1
92
- end
93
- combined_shape
94
- end
95
-
96
88
  def self.result_shape signal_shape, kernel_shape
97
89
  result_shape = [ ]
98
90
  signal_shape.each_with_index do |signal_size, i|
@@ -1,3 +1,3 @@
1
1
  module Convolver
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
@@ -7,14 +7,14 @@ describe Convolver do
7
7
  a = NArray[ 0.3, 0.4, 0.5 ]
8
8
  b = NArray[ 1.3, -0.5 ]
9
9
  c = Convolver.convolve_basic( a, b )
10
- c.should be_narray_like NArray[ 0.19, 0.27 ]
10
+ expect( c ).to be_narray_like NArray[ 0.19, 0.27 ]
11
11
  end
12
12
 
13
13
  it "should calculate a 2D convolution" do
14
14
  a = NArray[ [ 0.3, 0.4, 0.5 ], [ 0.6, 0.8, 0.2 ], [ 0.9, 1.0, 0.1 ] ]
15
15
  b = NArray[ [ 1.2, -0.5 ], [ 0.5, -1.3 ] ]
16
16
  c = Convolver.convolve_basic( a, b )
17
- c.should be_narray_like NArray[ [ -0.58, 0.37 ], [ -0.53, 1.23 ] ]
17
+ expect( c ).to be_narray_like NArray[ [ -0.58, 0.37 ], [ -0.53, 1.23 ] ]
18
18
  end
19
19
 
20
20
  it "should calculate a 2D convolution with rectangular arrays" do
@@ -23,7 +23,7 @@ describe Convolver do
23
23
  [ 0.4, 0.5, 0.6, 0.7, 0.8 ], [ 0.5, 0.4, 0.3, 0.2, 0.1 ] ]
24
24
  b = NArray[ [ 1.2, -0.5, 0.2 ], [ 1.8, 0.5, -1.3 ] ]
25
25
  c = Convolver.convolve_basic( a, b )
26
- c.should be_narray_like NArray[ [ 1.48, 0.79, 1.03 ], [ 2.35, 1.7, -0.79 ], [ 1.56, 2.84, -0.53 ],
26
+ expect( c ).to be_narray_like NArray[ [ 1.48, 0.79, 1.03 ], [ 2.35, 1.7, -0.79 ], [ 1.56, 2.84, -0.53 ],
27
27
  [ 1.13, 1.3, 0.83 ], [ 1.04, 0.26, 0.77 ], [ 1.06, 1.05, 1.04 ] ]
28
28
  end
29
29
 
@@ -44,7 +44,7 @@ describe Convolver do
44
44
 
45
45
  # Should be 3x2x1
46
46
  c = Convolver.convolve_basic( a, b )
47
- c.should be_narray_like NArray[ [ [ 5.51, 3.04, 4.3 ], [ 3.04, 6.31, 3.87 ] ] ]
47
+ expect( c ).to be_narray_like NArray[ [ [ 5.51, 3.04, 4.3 ], [ 3.04, 6.31, 3.87 ] ] ]
48
48
  end
49
49
 
50
50
  it "should calculate a 4D convolution" do
@@ -75,7 +75,7 @@ describe Convolver do
75
75
 
76
76
  # Should be 2x2x3x2
77
77
  c = Convolver.convolve_basic( a, b )
78
- c.should be_narray_like NArray[
78
+ expect( c ).to be_narray_like NArray[
79
79
  [ [ [ 8.5, 8.2 ], [ 11.34, 9.68 ] ], [ [ 7.68, 6.56 ], [ 11.24, 7.16 ] ], [ [ 9.14, 6.54 ], [ 12.44, 9.2 ] ] ],
80
80
  [ [ [ 8.5, 8.2 ], [ 11.34, 9.68 ] ], [ [ 7.68, 6.56 ], [ 11.24, 7.16 ] ], [ [ 9.14, 6.54 ], [ 12.44, 9.2 ] ] ]
81
81
  ]
@@ -7,51 +7,51 @@ describe Convolver do
7
7
  a = NArray[ 0.3, 0.4, 0.5 ]
8
8
  b = NArray[ 1.3, -0.5 ]
9
9
  c = Convolver.convolve_fftw3( a, b )
10
- c.should be_narray_like NArray[ 0.19, 0.27 ]
10
+ expect( c ).to be_narray_like NArray[ 0.19, 0.27 ]
11
11
  end
12
12
 
13
13
  it "should convolve 1D arrays with a variety of signal and kernel lengths" do
14
14
  a = NArray[ 0.3 ]
15
15
  b = NArray[ -0.7 ]
16
16
  c = Convolver.convolve_fftw3( a, b )
17
- c.should be_narray_like NArray[ -0.21 ]
17
+ expect( c ).to be_narray_like NArray[ -0.21 ]
18
18
 
19
19
  a = NArray[ 0.3, 0.4, 0.5, 0.2 ]
20
20
  b = NArray[ -0.7 ]
21
21
  c = Convolver.convolve_fftw3( a, b )
22
- c.should be_narray_like NArray[ -0.21, -0.28, -0.35, -0.14 ]
22
+ expect( c ).to be_narray_like NArray[ -0.21, -0.28, -0.35, -0.14 ]
23
23
 
24
24
  a = NArray[ 0.3, 0.4, 0.5, 0.2 ]
25
25
  b = NArray[ 1.1, -0.7 ]
26
26
  c = Convolver.convolve_fftw3( a, b )
27
- c.should be_narray_like NArray[ 0.05, 0.09, 0.41 ]
27
+ expect( c ).to be_narray_like NArray[ 0.05, 0.09, 0.41 ]
28
28
 
29
29
  a = NArray[ 0.3, 0.4, 0.5, 0.2 ]
30
30
  b = NArray[ 1.1, -0.7, -0.2 ]
31
31
  c = Convolver.convolve_fftw3( a, b )
32
- c.should be_narray_like NArray[ -0.05, 0.05 ]
32
+ expect( c ).to be_narray_like NArray[ -0.05, 0.05 ]
33
33
 
34
34
  a = NArray[ 0.3, 0.4, 0.5, 0.2, 0.6 ]
35
35
  b = NArray[ 1.1, -0.7 ]
36
36
  c = Convolver.convolve_fftw3( a, b )
37
- c.should be_narray_like NArray[ 0.05, 0.09, 0.41, -0.2 ]
37
+ expect( c ).to be_narray_like NArray[ 0.05, 0.09, 0.41, -0.2 ]
38
38
 
39
39
  a = NArray[ 0.3, 0.4, 0.5, 0.2, 0.6 ]
40
40
  b = NArray[ 1.1, -0.7, 2.1 ]
41
41
  c = Convolver.convolve_fftw3( a, b )
42
- c.should be_narray_like NArray[ 1.1, 0.51, 1.67 ]
42
+ expect( c ).to be_narray_like NArray[ 1.1, 0.51, 1.67 ]
43
43
 
44
44
  a = NArray[ 0.3, 0.4, 0.5, 0.2, 0.6 ]
45
45
  b = NArray[ 0.6, -0.5, -0.4, 0.7 ]
46
46
  c = Convolver.convolve_fftw3( a, b )
47
- c.should be_narray_like NArray[ -0.08, 0.33 ]
47
+ expect( c ).to be_narray_like NArray[ -0.08, 0.33 ]
48
48
  end
49
49
 
50
50
  it "should calculate a 2D convolution" do
51
51
  a = NArray[ [ 0.3, 0.4, 0.5 ], [ 0.6, 0.8, 0.2 ], [ 0.9, 1.0, 0.1 ] ]
52
52
  b = NArray[ [ 1.2, -0.5 ], [ 0.5, -1.3 ] ]
53
53
  c = Convolver.convolve_fftw3( a, b )
54
- c.should be_narray_like NArray[ [ -0.58, 0.37 ], [ -0.53, 1.23 ] ]
54
+ expect( c ).to be_narray_like NArray[ [ -0.58, 0.37 ], [ -0.53, 1.23 ] ]
55
55
  end
56
56
 
57
57
  it "should calculate a 3D convolution" do
@@ -71,7 +71,7 @@ describe Convolver do
71
71
 
72
72
  # Should be 3x2x1
73
73
  c = Convolver.convolve_fftw3( a, b )
74
- c.should be_narray_like NArray[ [ [ 5.51, 3.04, 4.3 ], [ 3.04, 6.31, 3.87 ] ] ]
74
+ expect( c ).to be_narray_like NArray[ [ [ 5.51, 3.04, 4.3 ], [ 3.04, 6.31, 3.87 ] ] ]
75
75
  end
76
76
 
77
77
  it "should calculate a 4D convolution" do
@@ -102,7 +102,7 @@ describe Convolver do
102
102
 
103
103
  # Should be 2x2x3x2
104
104
  c = Convolver.convolve_fftw3( a, b )
105
- c.should be_narray_like NArray[
105
+ expect( c ).to be_narray_like NArray[
106
106
  [ [ [ 8.5, 8.2 ], [ 11.34, 9.68 ] ], [ [ 7.68, 6.56 ], [ 11.24, 7.16 ] ], [ [ 9.14, 6.54 ], [ 12.44, 9.2 ] ] ],
107
107
  [ [ [ 8.5, 8.2 ], [ 11.34, 9.68 ] ], [ [ 7.68, 6.56 ], [ 11.24, 7.16 ] ], [ [ 9.14, 6.54 ], [ 12.44, 9.2 ] ] ]
108
108
  ]
@@ -116,7 +116,7 @@ describe Convolver do
116
116
  kernel = NArray.sfloat(kernel_length).random()
117
117
  expect_result = Convolver.convolve_basic( signal, kernel )
118
118
  got_result = Convolver.convolve_fftw3( signal, kernel )
119
- got_result.should be_narray_like expect_result
119
+ expect( got_result ).to be_narray_like expect_result
120
120
  end
121
121
  end
122
122
  end
@@ -130,7 +130,7 @@ describe Convolver do
130
130
  kernel = NArray.sfloat(kernel_x,kernel_y).random()
131
131
  expect_result = Convolver.convolve_basic( signal, kernel )
132
132
  got_result = Convolver.convolve_fftw3( signal, kernel )
133
- got_result.should be_narray_like expect_result
133
+ expect( got_result ).to be_narray_like expect_result
134
134
  end
135
135
  end
136
136
  end
@@ -148,7 +148,7 @@ describe Convolver do
148
148
  kernel = NArray.sfloat(kernel_x,kernel_y,kernel_z).random()
149
149
  expect_result = Convolver.convolve_basic( signal, kernel )
150
150
  got_result = Convolver.convolve_fftw3( signal, kernel )
151
- got_result.should be_narray_like expect_result
151
+ expect( got_result ).to be_narray_like expect_result
152
152
  end
153
153
  end
154
154
  end
@@ -7,22 +7,40 @@ describe Convolver do
7
7
  a = NArray[ 0.3, 0.4, 0.5 ]
8
8
  b = NArray[ 1.3, -0.5 ]
9
9
  c = Convolver.convolve( a, b )
10
- c.should be_narray_like NArray[ 0.19, 0.27 ]
10
+ expect( c ).to be_narray_like NArray[ 0.19, 0.27 ]
11
+ end
12
+
13
+ it "should process convolutions of different sizes" do
14
+ # The variety here is to ensure all branches of optimisation algorithm
15
+ # are covered
16
+ [10,30,60,90,100,120,130,150,175,200].each do |asize|
17
+ [5,10,12,15,20,30,40,50].each do |bsize|
18
+ next unless bsize < asize
19
+ a = NArray.sfloat(asize,asize).random()
20
+ b = NArray.sfloat(bsize,bsize).random()
21
+ c = Convolver.convolve( a, b )
22
+
23
+ # We should always match output of convolve_basic irrespective
24
+ # of what the optimal choice of algorithm is (larger error allowed here due to rounding)
25
+ expect_result = Convolver.convolve_basic( a, b )
26
+ expect( c ).to be_narray_like( expect_result, 1e-6 )
27
+ end
28
+ end
11
29
  end
12
30
 
13
31
  it "should choose #convolve_basic for small inputs" do
14
32
  a = NArray.sfloat(50,50).random()
15
33
  b = NArray.sfloat(10,10).random()
16
- Convolver.expects( :convolve_basic ).once
17
- Convolver.expects( :convolve_fftw3 ).never
34
+ expect(Convolver).to receive(:convolve_basic).once
35
+ expect(Convolver).to_not receive(:convolve_fftw3)
18
36
  c = Convolver.convolve( a, b )
19
37
  end
20
38
 
21
39
  it "should choose #convolve_fftw3 for large inputs" do
22
40
  a = NArray.sfloat(500,500).random()
23
41
  b = NArray.sfloat(100,100).random()
24
- Convolver.expects( :convolve_basic ).never
25
- Convolver.expects( :convolve_fftw3 ).once
42
+ expect(Convolver).to receive(:convolve_fftw3).once
43
+ expect(Convolver).to_not receive(:convolve_basic)
26
44
  c = Convolver.convolve( a, b )
27
45
  end
28
46
 
@@ -1,9 +1,12 @@
1
1
  # convolver/spec/helpers.rb
2
+ require 'coveralls'
3
+
4
+ Coveralls.wear!
5
+
2
6
  require 'convolver'
3
- require 'mocha/api'
4
7
 
5
8
  # Matcher compares NArrays numerically
6
- RSpec::Matchers.define :be_narray_like do |expected_narray|
9
+ RSpec::Matchers.define :be_narray_like do |expected_narray, mse = 1e-9|
7
10
  match do |given|
8
11
  @error = nil
9
12
  if ! given.is_a?(NArray)
@@ -13,7 +16,7 @@ RSpec::Matchers.define :be_narray_like do |expected_narray|
13
16
  else
14
17
  d = given - expected_narray
15
18
  difference = ( d * d ).sum / d.size
16
- if difference > 1e-9
19
+ if difference > mse
17
20
  @error = "Numerical difference with mean square error #{difference}"
18
21
  end
19
22
  end
@@ -26,13 +29,13 @@ RSpec::Matchers.define :be_narray_like do |expected_narray|
26
29
  ! @error
27
30
  end
28
31
 
29
- failure_message_for_should do
32
+ failure_message do
30
33
  "NArray does not match supplied example. #{@error}
31
34
  Expected: #{@expected.inspect}
32
35
  Got: #{@given.inspect}"
33
36
  end
34
37
 
35
- failure_message_for_should_not do
38
+ failure_message_when_negated do
36
39
  "NArray is too close to unwanted example.
37
40
  Unwanted: #{@given.inspect}"
38
41
  end
metadata CHANGED
@@ -1,127 +1,127 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: convolver
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Neil Slater
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-14 00:00:00.000000000 Z
11
+ date: 2018-11-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: narray
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.6.0.8
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.6.0.8
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: fftw3
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0.3'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: yard
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: 0.8.7.2
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.8.7.2
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: bundler
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '1.3'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.3'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: 2.13.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: 2.13.0
83
83
  - !ruby/object:Gem::Dependency
84
- name: mocha
84
+ name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 0.14.0
89
+ version: 1.9.1
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 0.14.0
96
+ version: 1.9.1
97
97
  - !ruby/object:Gem::Dependency
98
- name: rake
98
+ name: rake-compiler
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 1.9.1
103
+ version: 0.8.3
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 1.9.1
110
+ version: 0.8.3
111
111
  - !ruby/object:Gem::Dependency
112
- name: rake-compiler
112
+ name: coveralls
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
- version: 0.8.3
117
+ version: 0.6.7
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
- version: 0.8.3
124
+ version: 0.6.7
125
125
  description: Convolution for NArray
126
126
  email:
127
127
  - slobo777@gmail.com
@@ -130,8 +130,8 @@ extensions:
130
130
  - ext/convolver/extconf.rb
131
131
  extra_rdoc_files: []
132
132
  files:
133
- - .gitignore
134
- - .travis.yml
133
+ - ".gitignore"
134
+ - ".travis.yml"
135
135
  - Gemfile
136
136
  - LICENSE.txt
137
137
  - README.md
@@ -159,17 +159,17 @@ require_paths:
159
159
  - lib
160
160
  required_ruby_version: !ruby/object:Gem::Requirement
161
161
  requirements:
162
- - - '>='
162
+ - - ">="
163
163
  - !ruby/object:Gem::Version
164
164
  version: '0'
165
165
  required_rubygems_version: !ruby/object:Gem::Requirement
166
166
  requirements:
167
- - - '>='
167
+ - - ">="
168
168
  - !ruby/object:Gem::Version
169
169
  version: '0'
170
170
  requirements: []
171
171
  rubyforge_project:
172
- rubygems_version: 2.1.8
172
+ rubygems_version: 2.6.12
173
173
  signing_key:
174
174
  specification_version: 4
175
175
  summary: Convolution for NArray
@@ -178,4 +178,3 @@ test_files:
178
178
  - spec/convolve_fftw3_spec.rb
179
179
  - spec/convolve_spec.rb
180
180
  - spec/helpers.rb
181
- has_rdoc: