spatial_stats 1.0.4 → 2.0.0

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