Computes the best so far Matrix Profile and Profile Index for Univariate Time Series.
DISCLAIMER: This algorithm still in development by its authors.
Join similarity, RMP and LMP not implemented yet.

```
scrimp(
...,
window_size,
exclusion_zone = getOption("tsmp.exclusion_zone", 1/2),
verbose = getOption("tsmp.verbose", 2),
s_size = Inf,
pre_scrimp = 1/4,
pre_only = FALSE
)
```

## Arguments

- ...
a `matrix`

or a `vector`

.

- window_size
an `int`

. Size of the sliding window.

- exclusion_zone
a `numeric`

. Size of the exclusion zone, based on window size (default is
`1/2`

). See details.

- verbose
an `int`

. See details. (Default is `2`

).

- s_size
a `numeric`

. for anytime algorithm, represents the size (in observations) the
random calculation will occur (default is `Inf`

).

- pre_scrimp
a `numeric`

. Set the pre-scrimp step based on `window_size`

, if `0`

, disables pre-scrimp.
(default is `1/4`

).

- pre_only
a `logical`

. Returns only the pre script data. (Default is `FALSE`

).

## Value

Returns a `MatrixProfile`

object, a `list`

with the matrix profile `mp`

, profile index `pi`

left and right matrix profile `lmp`

, `rmp`

and profile index `lpi`

, `rpi`

, window size `w`

and
exclusion zone `ez`

.

## Details

The Matrix Profile, has the potential to revolutionize time series data mining because of its
generality, versatility, simplicity and scalability. In particular it has implications for time
series motif discovery, time series joins, shapelet discovery (classification), density
estimation, semantic segmentation, visualization, rule discovery, clustering etc. The anytime
SCRIMP computes the Matrix Profile and Profile Index in such manner that it can be stopped before
its complete calculation and return the best so far results allowing ultra-fast approximate
solutions. `verbose`

changes how much information is printed by this function; `0`

means nothing,
`1`

means text, `2`

adds the progress bar, `3`

adds the finish sound. `exclusion_zone`

is used to
avoid trivial matches.

## Examples

```
mp <- scrimp(mp_toy_data$data[1:200, 1], window_size = 30, verbose = 0)
# \donttest{
ref_data <- mp_toy_data$data[, 1]
query_data <- mp_toy_data$data[, 2]
# self similarity
mp <- scrimp(ref_data, window_size = 30, s_size = round(nrow(ref_data) * 0.1))
#> Finished in 0.24 secs
# join similarity
mp <- scrimp(ref_data, query_data, window_size = 30, s_size = round(nrow(query_data) * 0.1))
#> Join similarity not implemented yet.
#> Finished in 0.19 secs
# }
```