stl-rb 0.2.2 → 0.3.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: 061add34ca7cbbc77e11a2178f040c80d7dc37ac98d9c845efa065e9cfdf3b29
4
- data.tar.gz: 8bb5178783861d2a559ae10ebe13cf413cda80d8bb3f24fda84c3328a2f91ea7
3
+ metadata.gz: c9618c6ec1b85dd66819a5d2ad583a7eea4f3477d00ec2294bfb11ead531c8a2
4
+ data.tar.gz: 85bfe604d2baa36e592f5c10639301258152a0805bf6790e2926af6fbac0bbe5
5
5
  SHA512:
6
- metadata.gz: 6928df73f32cc800b991c2e9797cd1ff0536f408a3a8bb7821883fc9a5623e98dca508ae3d827dff271cb0a638dacc5264de07acb7915a52f80deb52bc71a5ec
7
- data.tar.gz: caed7783af4c42b8c21eb1585c92d2aa2fb956dc34b380916e2a8f859e1a2c2cfbf6523e71f2235581f5c630cb2e4fddf9e5c3e9ccb6e4258ad3a50d0d421423
6
+ metadata.gz: 32e4f5fee0ec21fa9676a25fea82609b7c1814c27ae26d6e45117d3e7c815827fc4ab6628feb4736b5c93bc93925483a1a6a510a3930a49e8e27e83f4690919b
7
+ data.tar.gz: 86e8cd5354cca7c121c9e26a8b9a7dde4b3585095843fdc80b1eedcce25a0c8fb0aa8b8b0a6fa2e15a0a6a10f682e8ef71e5e4da186e3e7b17fe8de6b1506332
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 0.3.0 (2024-10-22)
2
+
3
+ - Dropped support for Ruby < 3.1
4
+
5
+ ## 0.2.3 (2024-01-26)
6
+
7
+ - Fixed bug with `inner_loops` and `outer_loops`
8
+
1
9
  ## 0.2.2 (2023-06-20)
2
10
 
3
11
  - Fixed bug when jump > 1
data/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Seasonal-trend decomposition for Ruby
4
4
 
5
- [![Build Status](https://github.com/ankane/stl-ruby/workflows/build/badge.svg?branch=master)](https://github.com/ankane/stl-ruby/actions)
5
+ [![Build Status](https://github.com/ankane/stl-ruby/actions/workflows/build.yml/badge.svg)](https://github.com/ankane/stl-ruby/actions)
6
6
 
7
7
  ## Installation
8
8
 
@@ -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.3.0"
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.3.0
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-10-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rice
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.0.2
19
+ version: 4.3.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 4.0.2
26
+ version: 4.3.3
27
27
  description:
28
28
  email: andrew@ankane.org
29
29
  executables: []
@@ -51,14 +51,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '2.7'
54
+ version: '3.1'
55
55
  required_rubygems_version: !ruby/object:Gem::Requirement
56
56
  requirements:
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
59
  version: '0'
60
60
  requirements: []
61
- rubygems_version: 3.4.10
61
+ rubygems_version: 3.5.16
62
62
  signing_key:
63
63
  specification_version: 4
64
64
  summary: Seasonal-trend decomposition for Ruby