khiva 0.2.0 → 0.2.1

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
  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