Skip to content

Commit 0316a04

Browse files
authored
Merge pull request #1184 from m-muecke/perf/simulate-arima-hoist-ar-coef
perf(simulate): hoist invariant AR coefficients out of myarima.sim loop
2 parents 98afdde + 6b27d63 commit 0316a04

1 file changed

Lines changed: 3 additions & 4 deletions

File tree

R/simulate.R

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -209,12 +209,11 @@ myarima.sim <- function(model, n, x, e, ...) {
209209
x.new.innovations <- x[(length(start.innov) + 1):length(x)]
210210
x.with.data <- c(diff.data, x.new.innovations)
211211

212+
ar.coefficients <- rev(model$ar)
213+
keep <- abs(ar.coefficients) > .Machine$double.eps
212214
for (i in (length(diff.data) + 1):length(x.with.data)) {
213215
lagged.x.values <- x.with.data[(i - len.ar):(i - 1)]
214-
ar.coefficients <- rev(model$ar)
215-
sum.multiplied.x <- sum((lagged.x.values * ar.coefficients)[
216-
abs(ar.coefficients) > .Machine$double.eps
217-
])
216+
sum.multiplied.x <- sum(lagged.x.values[keep] * ar.coefficients[keep])
218217
x.with.data[i] <- x.with.data[i] + sum.multiplied.x
219218
}
220219

0 commit comments

Comments
 (0)