#Problem: #T - time vector #V - value vector #for each monotone(sp?) time segment #and each i find j <= i #such that T[i]-T[j] less or equal a given time interval t = c(1,2,4,5,6,8,13,14,16,19,20,21,1,2,4,5,6,8) v = c(-1.0, 1.2, 1.0, 0.4, 0.3, 1.7, 0.9, -0.9, 1.5, -0.4, 1.6, 3.8,-1.0, 1.2, 1.0, 0.4, 0.3, 1.7) r = rep(0, length(t)) s = rep(0, length(t)) r[1] = 1 s[1] = v[1] j = 1 timeInt = 5 for (i in 2:length(t)){ if (t[i] < t[i-1]){ r[i] = i s[i] = v[i] j = i }else{ s[i] = s[i-1] while (t[i] - t[j] > timeInt) { s[i] = s[i] - v[j] j = j+1 } r[i] = j s[i] = s[i] + v[i] } } #v = rnorm(1000000) #m = matrix(rnorm(1000000)) #f5 = function(v){for (i in 1:length(v)) b = v[i]} #system.time(o<-f5(v),gcFirst=TRUE) #system.time(o<-f5(m),gcFirst=TRUE)