Computes the Matrix Profile and Profile Index for Multivariate Time Series.
mstomp_par(
data,
window_size,
exclusion_zone = getOption("tsmp.exclusion_zone", 1/2),
verbose = getOption("tsmp.verbose", 2),
must_dim = NULL,
exc_dim = NULL,
n_workers = 2
)
mstomp(
data,
window_size,
exclusion_zone = getOption("tsmp.exclusion_zone", 1/2),
verbose = getOption("tsmp.verbose", 2),
must_dim = NULL,
exc_dim = NULL
)
a matrix
of numeric
, where each column is a time series. Accepts vector
(see
details), list
and data.frame
too.
an int
with the size of the sliding window.
a numeric
. Size of the exclusion zone, based on window size (default is
1/2
).
an int
. See details. (Default is 2
).
an int
or vector
of which dimensions to forcibly include (default is NULL
).
an int
or vector
of which dimensions to exclude (default is NULL
).
an int
. Number of workers for parallel. (Default is 2
).
Returns a MultiMatrixProfile
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
,
number of dimensions n_dim
, exclusion zone ez
, must dimensions must
and excluded dimensions exc
.
If the input has only one dimension, returns the same as stomp()
.
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 MSTOMP computes the Matrix Profile and Profile Index for Multivariate Time Series that is meaningful for multidimensional MOTIF discovery. It uses the STOMP algorithm that is faster than STAMP but lacks its anytime property.
Although this functions handles Multivariate Time Series, it can also be used to handle
Univariate Time Series. 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.
mstomp_par()
: Parallel version.
mstomp()
: Single thread version.
Yeh CM, Kavantzas N, Keogh E. Matrix Profile VI : Meaningful Multidimensional Motif Discovery.
Zhu Y, Imamura M, Nikovski D, Keogh E. Matrix Profile VII: Time Series Chains: A New Primitive for Time Series Data Mining. Knowl Inf Syst. 2018 Jun 2;1-27.
# using all dimensions
mp <- mstomp(mp_toy_data$data[1:150, ], 30, verbose = 0)
# \donttest{
#' # using threads
mp <- mstomp_par(mp_toy_data$data[1:150, ], 30, verbose = 0)
#> Error in { pro_muls <- matrix(Inf, length(idx_work[[i]]), n_dim) pro_idxs <- matrix(-Inf, length(idx_work[[i]]), n_dim) pro_muls_right <- matrix(Inf, length(idx_work[[i]]), n_dim) pro_idxs_right <- matrix(-Inf, length(idx_work[[i]]), n_dim) pro_muls_left <- matrix(Inf, length(idx_work[[i]]), n_dim) pro_idxs_left <- matrix(-Inf, length(idx_work[[i]]), n_dim) dist_pro <- matrix(0, matrix_profile_size, n_dim) last_product <- matrix(0, matrix_profile_size, n_dim) drop_value <- matrix(0, 1, n_dim) for (j in seq_len(length(idx_work[[i]]))) { idx <- idx_work[[i]][j] query_window <- as.matrix(data[idx:(idx + window_size - 1), ]) if (j == 1) { for (k in 1:n_dim) { nni <- dist_profile(data[, k], data[, k], nn[[k]], index = idx) dist_pro[, k] <- nni$distance_profile last_product[, k] <- nni$last_product } } else { rep_drop_value <- kronecker(matrix(1, matrix_profile_size - 1, 1), t(drop_value)) rep_query <- kronecker(matrix(1, matrix_profile_size - 1, 1), t(query_window[window_size, ])) last_product[2:(data_size - window_size + 1), ] <- last_product[1:(data_size - window_size), ] - data[1:(data_size - window_size), ] * rep_drop_value + data[(window_size + 1):data_size, ] * rep_query last_product[1, ] <- first_product[idx, ] dist_pro <- 2 * (window_size - (last_product - window_size * data_mean * kronecker(matrix(1, matrix_profile_size, 1), t(data_mean[idx, ])))/(data_sd * kronecker(matrix(1, matrix_profile_size, 1), t(data_sd[idx, ])))) } drop_value <- query_window[1, ] exc_zone_st <- max(1, idx - exclusion_zone) exc_zone_ed <- min(matrix_profile_size, idx + exclusion_zone) dist_pro[exc_zone_st:exc_zone_ed, ] <- Inf dist_pro[data_sd < vars()$eps] <- Inf if (skip_location[idx] || any(data_sd[idx, !mask_exc] < vars()$eps)) { dist_pro[] <- Inf } dist_pro[skip_location, ] <- Inf dist_pro[, exc_dim] <- Inf if (n_must > 0) { mask_must <- rep(FALSE, n_dim) mask_must[must_dim] <- TRUE dist_pro_must <- dist_pro[, mask_must] dist_pro[, mask_must] <- -Inf } if (n_dim > 1) { dist_pro_sort <- t(apply(dist_pro, 1, sort)) } else { dist_pro_sort <- dist_pro } if (n_must > 0) { dist_pro_sort[, 1:n_must] <- dist_pro_must } dist_pro_cum <- rep(0, matrix_profile_size) dist_pro_merg <- rep(0, matrix_profile_size) for (k in (max(1, n_must):(n_dim - n_exc))) { dist_pro_cum <- dist_pro_cum + dist_pro_sort[, k] dist_pro_merg[] <- dist_pro_cum/k if (idx > (exclusion_zone + 1)) { min_idx <- which.min(dist_pro_merg[1:(idx - exclusion_zone)]) min_val <- dist_pro_merg[min_idx] pro_muls_left[j, k] <- min_val pro_idxs_left[j, k] <- min_idx } if (idx < (matrix_profile_size - exclusion_zone)) { min_idx <- which.min(dist_pro_merg[(idx + exclusion_zone):matrix_profile_size]) + idx + exclusion_zone - 1 min_val <- dist_pro_merg[min_idx] pro_muls_right[j, k] <- min_val pro_idxs_right[j, k] <- min_idx } min_idx <- which.min(dist_pro_merg) min_val <- dist_pro_merg[min_idx] pro_muls[j, k] <- min_val pro_idxs[j, k] <- min_idx } } pro_muls <- sqrt(pro_muls) pro_muls_left <- sqrt(pro_muls_left) pro_muls_right <- sqrt(pro_muls_right) res <- list(pro_muls = pro_muls, pro_idxs = pro_idxs, pro_muls_left = pro_muls_left, pro_idxs_left = pro_idxs_left, pro_muls_right = pro_muls_right, pro_idxs_right = pro_idxs_right, idx = i) res}: task 1 failed - "could not find function "mass_v3""
# force using dimensions 1 and 2
mp <- mstomp(mp_toy_data$data[1:200, ], 30, must_dim = c(1, 2))
#>
#> mSTOMP [===>--------------------------] 14% at 117 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [===>--------------------------] 15% at 119 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [====>-------------------------] 15% at 120 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [====>-------------------------] 16% at 120 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [====>-------------------------] 16% at 121 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [====>-------------------------] 17% at 122 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [====>-------------------------] 18% at 123 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [====>-------------------------] 18% at 124 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=====>------------------------] 19% at 124 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=====>------------------------] 19% at 125 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=====>------------------------] 20% at 126 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=====>------------------------] 20% at 123 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=====>------------------------] 21% at 124 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=====>------------------------] 22% at 123 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [======>-----------------------] 22% at 124 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [======>-----------------------] 23% at 124 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [======>-----------------------] 23% at 125 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [======>-----------------------] 24% at 126 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [======>-----------------------] 25% at 126 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=======>----------------------] 25% at 127 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=======>----------------------] 26% at 128 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=======>----------------------] 27% at 127 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=======>----------------------] 28% at 128 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [========>---------------------] 29% at 128 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [========>---------------------] 29% at 129 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [========>---------------------] 30% at 129 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [========>---------------------] 30% at 130 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [========>---------------------] 31% at 130 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [========>---------------------] 32% at 131 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=========>--------------------] 32% at 131 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=========>--------------------] 33% at 132 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=========>--------------------] 34% at 130 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=========>--------------------] 35% at 129 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [==========>-------------------] 35% at 130 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [==========>-------------------] 36% at 130 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [==========>-------------------] 37% at 131 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [==========>-------------------] 38% at 131 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [===========>------------------] 39% at 132 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===========>------------------] 40% at 132 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===========>------------------] 40% at 131 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===========>------------------] 41% at 131 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===========>------------------] 42% at 131 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [============>-----------------] 42% at 131 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [============>-----------------] 43% at 132 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [============>-----------------] 44% at 132 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=============>----------------] 45% at 133 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=============>----------------] 46% at 133 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=============>----------------] 47% at 133 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=============>----------------] 48% at 133 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [==============>---------------] 49% at 133 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [==============>---------------] 49% at 134 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [==============>---------------] 50% at 134 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [==============>---------------] 51% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===============>--------------] 52% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===============>--------------] 53% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===============>--------------] 54% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===============>--------------] 55% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [================>-------------] 56% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [================>-------------] 57% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [================>-------------] 58% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=================>------------] 58% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=================>------------] 59% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=================>------------] 60% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=================>------------] 60% at 134 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=================>------------] 61% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=================>------------] 61% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==================>-----------] 62% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==================>-----------] 63% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==================>-----------] 64% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==================>-----------] 65% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===================>----------] 65% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===================>----------] 66% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===================>----------] 67% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===================>----------] 68% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [====================>---------] 68% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [====================>---------] 69% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [====================>---------] 70% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [====================>---------] 70% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [====================>---------] 71% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=====================>--------] 72% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=====================>--------] 73% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=====================>--------] 74% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=====================>--------] 75% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [======================>-------] 75% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [======================>-------] 76% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [======================>-------] 77% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [======================>-------] 78% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=======================>------] 78% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=======================>------] 79% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=======================>------] 80% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=======================>------] 80% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=======================>------] 81% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [========================>-----] 82% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [========================>-----] 83% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [========================>-----] 84% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [========================>-----] 85% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=========================>----] 85% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=========================>----] 86% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=========================>----] 87% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=========================>----] 88% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==========================>---] 89% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==========================>---] 90% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==========================>---] 91% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===========================>--] 92% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===========================>--] 93% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===========================>--] 94% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===========================>--] 95% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [============================>-] 95% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [============================>-] 96% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [============================>-] 97% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [============================>-] 98% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=============================>] 99% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==============================] 100% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> Finished in 1.28 secs
# exclude dimensions 2 and 3
mp2 <- mstomp(mp_toy_data$data[1:200, ], 30, exc_dim = c(2, 3))
#>
#> mSTOMP [====>-------------------------] 16% at 137 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [====>-------------------------] 17% at 138 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [====>-------------------------] 18% at 139 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [====>-------------------------] 18% at 140 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=====>------------------------] 19% at 140 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=====>------------------------] 20% at 140 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=====>------------------------] 20% at 138 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=====>------------------------] 21% at 137 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=====>------------------------] 22% at 137 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [======>-----------------------] 22% at 138 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [======>-----------------------] 23% at 138 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [======>-----------------------] 23% at 139 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [======>-----------------------] 24% at 139 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [======>-----------------------] 25% at 139 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=======>----------------------] 25% at 140 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=======>----------------------] 26% at 140 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=======>----------------------] 27% at 135 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=======>----------------------] 28% at 135 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [========>---------------------] 29% at 136 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [========>---------------------] 30% at 136 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [========>---------------------] 30% at 137 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [========>---------------------] 31% at 137 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [========>---------------------] 32% at 137 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=========>--------------------] 32% at 138 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=========>--------------------] 33% at 138 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=========>--------------------] 33% at 136 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=========>--------------------] 34% at 136 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [=========>--------------------] 35% at 136 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [==========>-------------------] 35% at 136 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [==========>-------------------] 36% at 136 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [==========>-------------------] 36% at 137 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [==========>-------------------] 37% at 137 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [==========>-------------------] 37% at 138 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [==========>-------------------] 38% at 138 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [===========>------------------] 39% at 138 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [===========>------------------] 40% at 137 it/s, elapsed: 0s, eta: 1s
#>
#> mSTOMP [===========>------------------] 40% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===========>------------------] 41% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===========>------------------] 42% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [============>-----------------] 42% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [============>-----------------] 43% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [============>-----------------] 44% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [============>-----------------] 44% at 136 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=============>----------------] 45% at 136 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=============>----------------] 46% at 136 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=============>----------------] 47% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=============>----------------] 48% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [==============>---------------] 49% at 135 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [==============>---------------] 49% at 136 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [==============>---------------] 50% at 136 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [==============>---------------] 51% at 136 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===============>--------------] 52% at 137 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===============>--------------] 53% at 137 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===============>--------------] 53% at 136 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===============>--------------] 54% at 136 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [===============>--------------] 55% at 136 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [================>-------------] 56% at 136 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [================>-------------] 56% at 137 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [================>-------------] 57% at 137 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [================>-------------] 58% at 137 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=================>------------] 58% at 137 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=================>------------] 59% at 138 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=================>------------] 60% at 138 it/s, elapsed: 1s, eta: 1s
#>
#> mSTOMP [=================>------------] 60% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=================>------------] 61% at 137 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=================>------------] 61% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==================>-----------] 62% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==================>-----------] 63% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==================>-----------] 64% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==================>-----------] 65% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===================>----------] 65% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===================>----------] 66% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===================>----------] 67% at 133 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===================>----------] 68% at 133 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [====================>---------] 68% at 133 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [====================>---------] 69% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [====================>---------] 70% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [====================>---------] 71% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=====================>--------] 72% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=====================>--------] 73% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=====================>--------] 73% at 133 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=====================>--------] 74% at 133 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=====================>--------] 75% at 133 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [======================>-------] 75% at 133 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [======================>-------] 76% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [======================>-------] 77% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [======================>-------] 78% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=======================>------] 78% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=======================>------] 79% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=======================>------] 80% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=======================>------] 81% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [========================>-----] 82% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [========================>-----] 83% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [========================>-----] 84% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [========================>-----] 84% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [========================>-----] 85% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=========================>----] 85% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=========================>----] 86% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=========================>----] 87% at 134 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=========================>----] 87% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=========================>----] 88% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==========================>---] 89% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==========================>---] 90% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==========================>---] 91% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==========================>---] 91% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===========================>--] 92% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===========================>--] 93% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===========================>--] 94% at 135 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===========================>--] 94% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [===========================>--] 95% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [============================>-] 95% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [============================>-] 96% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [============================>-] 97% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [============================>-] 98% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [=============================>] 99% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> mSTOMP [==============================] 100% at 136 it/s, elapsed: 1s, eta: 0s
#>
#> Finished in 1.26 secs
# }