spatial_stats 1.0.4 → 2.0.0

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: 053a1b234d54d2231e35c7eb74547b086f7415fc96190bc7d3afb25f51dd879e
4
- data.tar.gz: a85d682009559812fb20695c5bea8f2978acf49a12d0b3df2506d58ced8c5e77
3
+ metadata.gz: 6d7d2e6e57d8059f55f1bb9128f670ae02da382005a80111410a4c72c69ce04b
4
+ data.tar.gz: df3018cdf87fd2d5d19cb788855252497466bfd383cb13a078c8f91693a4b2c7
5
5
  SHA512:
6
- metadata.gz: 868ec3b50f4b1b9fc261d6dd94439bba62a08d4c496a48d164c41590d1cd5a088c87de682a7cb96bcf4dbe0d534b5cf35e136e39d42c505ba8cc1f4c3569a3d4
7
- data.tar.gz: b767cc6ed7f22ce4096965a6172f77d21a348d51bd84dc3b96f0d51bf16e2f4f92617e21e9bcda1a36eeda2cd5c07c51452dd55d9e5a62567e206bf7a06c8fe0
6
+ metadata.gz: e95cf8d912d4f6a606871f8f78484157f2aa234ce500f343ec0a7a722b6b470c6e89f733d6e103d27f2d9bd133882aa22af88a0ff67fc62b1358c6df38b7dab5
7
+ data.tar.gz: 53738b1d1cdc77a840eea583baaa26a77f3b50ab8b540822f3da20b8c88801de2666a22944d244b2bd896b3edae0b2d49ea068c1f6507ba38c4170cefa2a42cb
@@ -22,9 +22,17 @@ size_t csr_matrix_memsize(const void *ptr)
22
22
  return sizeof(*csr);
23
23
  }
24
24
 
25
+ const rb_data_type_t csr_matrix_type = {
26
+ "SpatialStats::Weights::CSRMatrix",
27
+ {NULL, csr_matrix_free, csr_matrix_memsize},
28
+ 0,
29
+ 0,
30
+ RUBY_TYPED_FREE_IMMEDIATELY
31
+ };
32
+
25
33
  VALUE csr_matrix_alloc(VALUE self)
26
34
  {
27
- csr_matrix *csr = malloc(sizeof(csr_matrix));
35
+ csr_matrix *csr = ALLOC(csr_matrix);
28
36
  return TypedData_Wrap_Struct(self, &csr_matrix_type, csr);
29
37
  }
30
38
 
@@ -64,7 +72,7 @@ void mat_to_sparse(csr_matrix *csr, VALUE data, VALUE keys, VALUE num_rows)
64
72
  // if it is, add array len to nnz
65
73
  row = rb_hash_aref(data, key);
66
74
  Check_Type(row, T_ARRAY);
67
- nnz += rb_array_len(row);
75
+ nnz += (int)RARRAY_LEN(row); // Explicit cast to int
68
76
  }
69
77
 
70
78
  values = malloc(sizeof(double) * nnz);
@@ -82,7 +90,7 @@ void mat_to_sparse(csr_matrix *csr, VALUE data, VALUE keys, VALUE num_rows)
82
90
 
83
91
  key = rb_ary_entry(keys, i);
84
92
  row = rb_hash_aref(data, key);
85
- m = rb_array_len(row);
93
+ m = (int)RARRAY_LEN(row); // Explicit cast to int
86
94
 
87
95
  for (j = 0; j < m; j++)
88
96
  {
@@ -140,7 +148,7 @@ VALUE csr_matrix_initialize(VALUE self, VALUE data, VALUE num_rows)
140
148
  keys = rb_funcall(data, rb_intern("keys"), 0);
141
149
 
142
150
  // check dimensions are correct
143
- if (NUM2INT(num_rows) != rb_array_len(keys))
151
+ if (NUM2INT(num_rows) != (int)RARRAY_LEN(keys)) // Explicit cast to int
144
152
  {
145
153
  rb_raise(rb_eArgError, "n_rows != keys.size, check your dimensions");
146
154
  }
@@ -249,7 +257,7 @@ VALUE csr_matrix_mulvec(VALUE self, VALUE vec)
249
257
 
250
258
  TypedData_Get_Struct(self, csr_matrix, &csr_matrix_type, csr);
251
259
 
252
- if (rb_array_len(vec) != csr->n)
260
+ if (RARRAY_LEN(vec) != csr->n)
253
261
  {
254
262
  rb_raise(rb_eArgError, "Dimension Mismatch CSRMatrix.n != vec.size");
255
263
  }
@@ -294,7 +302,7 @@ VALUE csr_matrix_dot_row(VALUE self, VALUE vec, VALUE row)
294
302
 
295
303
  TypedData_Get_Struct(self, csr_matrix, &csr_matrix_type, csr);
296
304
 
297
- if (rb_array_len(vec) != csr->n)
305
+ if (RARRAY_LEN(vec) != csr->n)
298
306
  {
299
307
  rb_raise(rb_eArgError, "Dimension Mismatch CSRMatrix.n != vec.size");
300
308
  }
@@ -14,13 +14,7 @@ typedef struct csr_matrix
14
14
  void csr_matrix_free(void *mat);
15
15
  size_t csr_matrix_memsize(const void *ptr);
16
16
 
17
- // ruby VALUE for csr_matrix
18
- static const rb_data_type_t csr_matrix_type = {
19
- "SpatialStats::Weights::CSRMatrix",
20
- {NULL, csr_matrix_free, csr_matrix_memsize},
21
- 0,
22
- 0,
23
- RUBY_TYPED_FREE_IMMEDIATELY};
17
+ extern const rb_data_type_t csr_matrix_type;
24
18
 
25
19
  void mat_to_sparse(csr_matrix *csr, VALUE data, VALUE keys, VALUE num_rows);
26
20
  VALUE csr_matrix_alloc(VALUE self);
@@ -15,7 +15,7 @@ void Init_spatial_stats()
15
15
  {
16
16
  VALUE spatial_stats_mod = rb_define_module("SpatialStats");
17
17
  VALUE weights_mod = rb_define_module_under(spatial_stats_mod, "Weights");
18
- VALUE csr_matrix_class = rb_define_class_under(weights_mod, "CSRMatrix", rb_cData);
18
+ VALUE csr_matrix_class = rb_define_class_under(weights_mod, "CSRMatrix", rb_cObject);
19
19
 
20
20
  rb_define_alloc_func(csr_matrix_class, csr_matrix_alloc);
21
21
  rb_define_method(csr_matrix_class, "initialize", csr_matrix_initialize, 2);
Binary file
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module SpatialStats
4
- VERSION = '1.0.4'
4
+ VERSION = '2.0.0'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spatial_stats
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.4
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Keith Doggett
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-19 00:00:00.000000000 Z
11
+ date: 2024-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: numo-narray
@@ -42,14 +42,14 @@ dependencies:
42
42
  name: activerecord-postgis-adapter
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: 6.0.0
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: 6.0.0
55
55
  - !ruby/object:Gem::Dependency
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: 1.8.3
61
+ version: 2.0.2
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
- version: 1.8.3
68
+ version: 2.0.2
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: pg
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -182,14 +182,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
182
182
  requirements:
183
183
  - - ">="
184
184
  - !ruby/object:Gem::Version
185
- version: 2.3.0
185
+ version: 3.1.0
186
186
  required_rubygems_version: !ruby/object:Gem::Requirement
187
187
  requirements:
188
188
  - - ">="
189
189
  - !ruby/object:Gem::Version
190
190
  version: '0'
191
191
  requirements: []
192
- rubygems_version: 3.0.8
192
+ rubygems_version: 3.5.3
193
193
  signing_key:
194
194
  specification_version: 4
195
195
  summary: An ActiveRecord/PostGIS extension that provides statistical methods to spatial