Here is a O(N * M) solution. Let's fix the lower row(r). If the maximum for all rows between r - K and r is known for every column, this problem can be reduced to a well-known sliding window maximum problem. So it is possible to compute the answer for...

sql,google-bigquery,sliding-window

The BigQuery documentation doesn't do a good job of explaining the complexity of window functions that the tool supports because it doesn't specify what expressions can appear after ROWS or RANGE. It actually supports the SQL 2003 standard for window functions, which you can find documented other places on the...

#include <iostream> #include <thread> #include <chrono> #include <mutex> #include <condition_variable> using namespace std; condition_variable cv; int value; void read_value() { cin >> value; cv.notify_one(); } int main () { cout << "Please enter the input: "; thread th (read_value); mutex mtx; unique_lock<mutex> lck(mtx); while (cv.wait_for(lck,chrono::seconds(2))==cv_status::timeout) { cout << "\nTime-Out:...

algorithm,dataset,moving-average,sliding-window

If the data length is n and window size m, then here's an O(n log m) solution using sorted-maps. (defn freqs "Like frequencies but uses a sorted map" [coll] (reduce (fn [counts x] (assoc counts x (inc (get counts x 0)))) (sorted-map) coll)) (defn rng "Return max - min value...

python,numpy,scipy,filtering,sliding-window

Your approach is correct, but as you note, it is way too slow for the task at hand. Consider how large your task is in the numerically best implementation (not bothering about boundary values): def kurt(X, w): n, m = X.shape K = np.zeros_like(X) for i in xrange(w, n-w): #...

python,numpy,computer-vision,sliding-window

It might be easier for you to understand what's going on if you try using flatten=False to create a 'grid' of windows onto the image: import numpy as np from scipy.misc import lena from matplotlib import pyplot as plt img = lena() print(img.shape) # (512, 512) # make a 64x64...

Adapted from @Jaime's answer here: http://stackoverflow.com/a/14314054/553404 import numpy as np def rolling_sum(a, n=4) : ret = np.cumsum(a, axis=1, dtype=float) ret[:, n:] = ret[:, n:] - ret[:, :-n] return ret[:, n - 1:] M = np.array([[0., 0., 0., 0., 0., 1., 1., 0., 1., 1., 1., 0., 0.], [0., 0., 1.,...