stl-rb 0.2.2 → 0.2.3

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: 061add34ca7cbbc77e11a2178f040c80d7dc37ac98d9c845efa065e9cfdf3b29
4
- data.tar.gz: 8bb5178783861d2a559ae10ebe13cf413cda80d8bb3f24fda84c3328a2f91ea7
3
+ metadata.gz: acb247c95bfe0b9d339f507c5a9da2c0cf3a3238b7813bc8790782f17dd63496
4
+ data.tar.gz: ecaeaf9f4fc8d4784639c472d15e0ffc7fa40d32ae2b9feccf0741bc8ed36650
5
5
  SHA512:
6
- metadata.gz: 6928df73f32cc800b991c2e9797cd1ff0536f408a3a8bb7821883fc9a5623e98dca508ae3d827dff271cb0a638dacc5264de07acb7915a52f80deb52bc71a5ec
7
- data.tar.gz: caed7783af4c42b8c21eb1585c92d2aa2fb956dc34b380916e2a8f859e1a2c2cfbf6523e71f2235581f5c630cb2e4fddf9e5c3e9ccb6e4258ad3a50d0d421423
6
+ metadata.gz: 821487152fc03aede2cae7c69eaad8f2bede5a9a7647167f51f6a30085a745c68cce2e87df6609d1aaa0e3eac6303f7477e1387dfc1a8b4cc56861b23aabc243
7
+ data.tar.gz: 72e50a717aaf027eec309908e24fa72344d32e0ef4143dc86c555e0981328e084fc65ae6f80ecc3f4d91c6adfde6cec8a34efc6185df68de66d2b6e79356941e
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.2.3 (2024-01-26)
2
+
3
+ - Fixed bug with `inner_loops` and `outer_loops`
4
+
1
5
  ## 0.2.2 (2023-06-20)
2
6
 
3
7
  - Fixed bug when jump > 1
data/README.md CHANGED
@@ -18,9 +18,9 @@ Decompose a time series
18
18
 
19
19
  ```ruby
20
20
  series = {
21
- Date.parse("2020-01-01") => 100,
22
- Date.parse("2020-01-02") => 150,
23
- Date.parse("2020-01-03") => 136,
21
+ Date.parse("2023-01-01") => 100,
22
+ Date.parse("2023-01-02") => 150,
23
+ Date.parse("2023-01-03") => 136,
24
24
  # ...
25
25
  }
26
26
 
data/ext/stl/stl.hpp CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * STL C++ v0.1.3
2
+ * STL C++ v0.1.4
3
3
  * https://github.com/ankane/stl-cpp
4
4
  * Unlicense OR MIT License
5
5
  *
@@ -342,6 +342,15 @@ float var(const std::vector<float>& series) {
342
342
  return std::accumulate(tmp.begin(), tmp.end(), 0.0) / (series.size() - 1);
343
343
  }
344
344
 
345
+ float strength(const std::vector<float>& component, const std::vector<float>& remainder) {
346
+ std::vector<float> sr;
347
+ sr.reserve(remainder.size());
348
+ for (size_t i = 0; i < remainder.size(); i++) {
349
+ sr.push_back(component[i] + remainder[i]);
350
+ }
351
+ return std::max(0.0, 1.0 - var(remainder) / var(sr));
352
+ }
353
+
345
354
  class StlResult {
346
355
  public:
347
356
  std::vector<float> seasonal;
@@ -350,21 +359,11 @@ public:
350
359
  std::vector<float> weights;
351
360
 
352
361
  inline float seasonal_strength() {
353
- std::vector<float> sr;
354
- sr.reserve(remainder.size());
355
- for (size_t i = 0; i < remainder.size(); i++) {
356
- sr.push_back(seasonal[i] + remainder[i]);
357
- }
358
- return std::max(0.0, 1.0 - var(remainder) / var(sr));
362
+ return strength(seasonal, remainder);
359
363
  }
360
364
 
361
365
  inline float trend_strength() {
362
- std::vector<float> tr;
363
- tr.reserve(remainder.size());
364
- for (size_t i = 0; i < remainder.size(); i++) {
365
- tr.push_back(trend[i] + remainder[i]);
366
- }
367
- return std::max(0.0, 1.0 - var(remainder) / var(tr));
366
+ return strength(trend, remainder);
368
367
  }
369
368
  };
370
369
 
@@ -428,12 +427,12 @@ public:
428
427
  return *this;
429
428
  }
430
429
 
431
- inline StlParams inner_loops(bool ni) {
430
+ inline StlParams inner_loops(size_t ni) {
432
431
  this->ni_ = ni;
433
432
  return *this;
434
433
  }
435
434
 
436
- inline StlParams outer_loops(bool no) {
435
+ inline StlParams outer_loops(size_t no) {
437
436
  this->no_ = no;
438
437
  return *this;
439
438
  }
data/lib/stl/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Stl
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stl-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-20 00:00:00.000000000 Z
11
+ date: 2024-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rice
@@ -58,7 +58,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  - !ruby/object:Gem::Version
59
59
  version: '0'
60
60
  requirements: []
61
- rubygems_version: 3.4.10
61
+ rubygems_version: 3.5.3
62
62
  signing_key:
63
63
  specification_version: 4
64
64
  summary: Seasonal-trend decomposition for Ruby