khiva 0.1.3 → 0.2.1

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
  SHA256:
3
- metadata.gz: bb48358c9961cf78042430533542244a794c1332b9df562314901063bfe9df43
4
- data.tar.gz: 8fbbd152a6c84cd4bd4ff1a62519cdb1de19d25d48cfb9203024ac1e5a5d838b
3
+ metadata.gz: '086bdca24cfb0bd2cba8c06c84e17efa6f0853e9d201133732493a82a1eec0f0'
4
+ data.tar.gz: 7a899d7065ffe7f9650081f9480f378dffed85707bf32a36b6a1aa4c5634cc39
5
5
  SHA512:
6
- metadata.gz: 9cfed0a65e0ff7b915df05ed240f2440a580c03b045967cdce139c985d0679e0f2c24c71108941e877083fd10511da4ce35c16c3942baf2bddbb47621d744c13
7
- data.tar.gz: ac8cbafe3011b28e25e16edc24c6fb459a4881a564dba62392aca7f6925efce7211dfb75fb5b2eed9a02071c26e16357635a21bc137d01eaa8019c19e6c0fd21
6
+ metadata.gz: 84239b838ccce4f3fa90b95f927e973e279eb3bf9e273e76c73228c04b2e918e71bb40f0bd98e0a73b46453e27148856d61d2333f03163a9bfb61b3b8cc46ccc
7
+ data.tar.gz: de680ec20fa545489cc9566ecf684f7e245e1a8ced68e4ef3a48c6c1a5b52b05aa796500c9fe8a30c2f18ece37e288e57ddbc2c6c20991601dda90aa26ce579a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 0.2.1 (2023-06-07)
2
+
3
+ - Improved support for Mac ARM
4
+
5
+ ## 0.2.0 (2022-12-28)
6
+
7
+ - Dropped support for Ruby < 2.7
8
+
1
9
  ## 0.1.3 (2021-02-18)
2
10
 
3
11
  - Added `chains` method
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # Khiva
1
+ # Khiva Ruby
2
2
 
3
3
  [Khiva](https://github.com/shapelets/khiva) - high-performance time series algorithms - for Ruby
4
4
 
@@ -17,7 +17,7 @@ brew install khiva
17
17
  Add this line to your application’s Gemfile:
18
18
 
19
19
  ```ruby
20
- gem 'khiva'
20
+ gem "khiva"
21
21
  ```
22
22
 
23
23
  ## Getting Started
@@ -835,7 +835,7 @@ Install ArrayFire:
835
835
 
836
836
  ```sh
837
837
  sudo apt-key adv --fetch-key https://repo.arrayfire.com/GPG-PUB-KEY-ARRAYFIRE-2020.PUB
838
- echo "deb [arch=amd64] https://repo.arrayfire.com/ubuntu $(. /etc/os-release && echo $VERSION_CODENAME) main" | sudo tee /etc/apt/sources.list.d/arrayfire.list
838
+ echo "deb [arch=amd64] https://repo.arrayfire.com/debian all main" | sudo tee /etc/apt/sources.list.d/arrayfire.list
839
839
  sudo apt-get update
840
840
  sudo apt-get install arrayfire-unified3 arrayfire-cpu3-openblas arrayfire-opencl3-openblas
841
841
  ```
data/lib/khiva/array.rb CHANGED
@@ -44,13 +44,10 @@ module Khiva
44
44
  data = Fiddle::Pointer[flat_obj.pack("#{TYPE_FORMAT[type]}*")]
45
45
  ndims = dims.size
46
46
  dims = Fiddle::Pointer[dims.pack("q!*")]
47
- result = Fiddle::Pointer.malloc(Fiddle::SIZEOF_VOIDP)
48
-
49
- FFI.call(:create_array, data, ndims, dims, result, TYPES.index(type))
50
- @ptr = result
47
+ @ptr = Fiddle::Pointer.malloc(Fiddle::SIZEOF_VOIDP)
48
+ FFI.call(:create_array, data, ndims, dims, @ptr, TYPES.index(type))
49
+ ObjectSpace.define_finalizer(@ptr, self.class.finalize(@ptr.to_i))
51
50
  end
52
-
53
- ObjectSpace.define_finalizer(self, self.class.finalize(@ptr))
54
51
  end
55
52
 
56
53
  def display
@@ -131,9 +128,9 @@ module Khiva
131
128
  alias_method :dup, :copy
132
129
  alias_method :clone, :copy
133
130
 
134
- def self.finalize(ptr)
131
+ def self.finalize(addr)
135
132
  # must use proc instead of stabby lambda
136
- proc { FFI.call(:delete_array, ptr) }
133
+ proc { FFI.call(:delete_array, addr) }
137
134
  end
138
135
  end
139
136
  end
data/lib/khiva/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Khiva
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.1"
3
3
  end
data/lib/khiva.rb CHANGED
@@ -2,21 +2,21 @@
2
2
  require "fiddle/import"
3
3
 
4
4
  # modules
5
- require "khiva/array"
6
- require "khiva/clustering"
7
- require "khiva/dimensionality"
8
- require "khiva/distances"
9
- require "khiva/features"
10
- require "khiva/library"
11
- require "khiva/linalg"
12
- require "khiva/matrix"
13
- require "khiva/normalization"
14
- require "khiva/polynomial"
15
- require "khiva/regression"
16
- require "khiva/regularization"
17
- require "khiva/statistics"
18
- require "khiva/utils"
19
- require "khiva/version"
5
+ require_relative "khiva/array"
6
+ require_relative "khiva/clustering"
7
+ require_relative "khiva/dimensionality"
8
+ require_relative "khiva/distances"
9
+ require_relative "khiva/features"
10
+ require_relative "khiva/library"
11
+ require_relative "khiva/linalg"
12
+ require_relative "khiva/matrix"
13
+ require_relative "khiva/normalization"
14
+ require_relative "khiva/polynomial"
15
+ require_relative "khiva/regression"
16
+ require_relative "khiva/regularization"
17
+ require_relative "khiva/statistics"
18
+ require_relative "khiva/utils"
19
+ require_relative "khiva/version"
20
20
 
21
21
  module Khiva
22
22
  class Error < StandardError; end
@@ -28,7 +28,11 @@ module Khiva
28
28
  if Gem.win_platform?
29
29
  ["khiva_c.dll"]
30
30
  elsif RbConfig::CONFIG["host_os"] =~ /darwin/i
31
- ["libkhiva_c.dylib"]
31
+ if RbConfig::CONFIG["host_cpu"] =~ /arm|aarch64/i
32
+ ["libkhiva_c.dylib", "/opt/homebrew/lib/libkhiva_c.dylib"]
33
+ else
34
+ ["libkhiva_c.dylib"]
35
+ end
32
36
  else
33
37
  ["libkhiva_c.so"]
34
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: khiva
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-19 00:00:00.000000000 Z
11
+ date: 2023-06-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: andrew@ankane.org
@@ -36,7 +36,7 @@ files:
36
36
  - lib/khiva/statistics.rb
37
37
  - lib/khiva/utils.rb
38
38
  - lib/khiva/version.rb
39
- homepage: https://github.com/ankane/khiva
39
+ homepage: https://github.com/ankane/khiva-ruby
40
40
  licenses:
41
41
  - MPL-2.0
42
42
  metadata: {}
@@ -48,14 +48,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
48
48
  requirements:
49
49
  - - ">="
50
50
  - !ruby/object:Gem::Version
51
- version: '2.5'
51
+ version: '2.7'
52
52
  required_rubygems_version: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
57
  requirements: []
58
- rubygems_version: 3.2.3
58
+ rubygems_version: 3.4.10
59
59
  signing_key:
60
60
  specification_version: 4
61
61
  summary: High-performance time series algorithms for Ruby