Skip to content

Commit

Permalink
Add type hints to STL
Browse files Browse the repository at this point in the history
  • Loading branch information
sbelak committed Aug 9, 2017
1 parent 45937bd commit 66d33f3
Showing 1 changed file with 18 additions and 18 deletions.
36 changes: 18 additions & 18 deletions src/metabase/fingerprinting/stl.clj
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
(ns metabase.fingerprinting.stl
"Seasonal-Trend Decomposition
https://www.wessa.net/download/stl.pdf"
(:import com.github.brandtg.stl.StlDecomposition))
(:import (com.github.brandtg.stl StlDecomposition StlResult StlConfig)))

(def ^:private setters
{:inner-loop-passes (memfn setNumberOfInnerLoopPasses n)
Expand All @@ -16,23 +16,23 @@
([period ts]
(decompose period {} ts))
([period opts ts]
(let [xs (map first ts)
ys (map second ts)
preprocess (if-let [transform (:transform opts)]
(partial map transform)
identity)
postprocess (if-let [transform (:reverse-transform opts)]
(partial map transform)
vec)
decomposer (StlDecomposition. period)
_ (reduce-kv (fn [config k v]
(when-let [setter (setters k)]
(setter config v))
config)
(.getConfig decomposer)
(merge {:inner-loop-passes 100}
opts))
decomposition (.decompose decomposer xs (preprocess ys))]
(let [xs (map first ts)
ys (map second ts)
preprocess (if-let [transform (:transform opts)]
(partial map transform)
identity)
postprocess (if-let [transform (:reverse-transform opts)]
(partial map transform)
vec)
^StlDecomposition decomposer (StlDecomposition. period)
_ (reduce-kv (fn [^StlConfig config k v]
(when-let [setter (setters k)]
(setter config v))
config)
(.getConfig decomposer)
(merge {:inner-loop-passes 100}
opts))
^StlResult decomposition (.decompose decomposer xs (preprocess ys))]
{:trend (postprocess (.getTrend decomposition))
:seasonal (postprocess (.getSeasonal decomposition))
:residual (postprocess (.getRemainder decomposition))
Expand Down

0 comments on commit 66d33f3

Please sign in to comment.