khiva 0.2.0 → 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: cbb5dadb536979ca07cabb43cbf11903337b2c30981cb27053bba7f1bd45de11
4
- data.tar.gz: 99c0c9d407e5d7ca7aaeaac2366b11b671a63e9750ef0a52d5872ec1588e0483
3
+ metadata.gz: '086bdca24cfb0bd2cba8c06c84e17efa6f0853e9d201133732493a82a1eec0f0'
4
+ data.tar.gz: 7a899d7065ffe7f9650081f9480f378dffed85707bf32a36b6a1aa4c5634cc39
5
5
  SHA512:
6
- metadata.gz: 9cdde72809e818df31419fc88dbcc69da474881c243b0a032344f12de6b7a32564502a93923b82451c916f9b505e0ab78cee2515f3184b459aa33f82a7775fa7
7
- data.tar.gz: 968e1aa3638d31ee5ace1dfc8a15f6f39c8d12567e0a1056aed9400fa9d7d3ff20607cdc9f8f87ed15c01c6554a3b2baf1daf6fc0653ab6420fb509c4b097b69
6
+ metadata.gz: 84239b838ccce4f3fa90b95f927e973e279eb3bf9e273e76c73228c04b2e918e71bb40f0bd98e0a73b46453e27148856d61d2333f03163a9bfb61b3b8cc46ccc
7
+ data.tar.gz: de680ec20fa545489cc9566ecf684f7e245e1a8ced68e4ef3a48c6c1a5b52b05aa796500c9fe8a30c2f18ece37e288e57ddbc2c6c20991601dda90aa26ce579a
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.2.1 (2023-06-07)
2
+
3
+ - Improved support for Mac ARM
4
+
1
5
  ## 0.2.0 (2022-12-28)
2
6
 
3
7
  - Dropped support for Ruby < 2.7
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.2.0"
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.2.0
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: 2022-12-29 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: {}
@@ -55,7 +55,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
55
55
  - !ruby/object:Gem::Version
56
56
  version: '0'
57
57
  requirements: []
58
- rubygems_version: 3.4.1
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