def adjust(G, X, Y, pos, hci, alpha, selection, tmp): vector = G[pos] # vector = vector + alpha * (vector - sel) ufunc.subtract(vector, selection, out=tmp) ufunc.multiply(tmp, alpha, out=tmp) ufunc.add(vector, tmp, out=vector) G[pos] = vector
def bmu(grid, x, y, sel, tmp): """ Entry in the grid that has the smallest euclidean distance. """ min_pos = 0 min_dist = float(10000) for i in range(x*y): entry = grid[i] ufunc.subtract(sel, entry, out=tmp) # euclidean dist ufunc.multiply(tmp, tmp, out=tmp) d = ufunc.sqrt(tmp.sum()) if d < min_dist: min_dist = d min_pos = i return min_pos
def bmu(grid, x, y, sel, tmp): """ Entry in the grid that has the smallest euclidean distance. """ min_pos = 0 min_dist = float(10000) for i in range(x * y): entry = grid[i] ufunc.subtract(sel, entry, out=tmp) # euclidean dist ufunc.multiply(tmp, tmp, out=tmp) d = ufunc.sqrt(tmp.sum()) if d < min_dist: min_dist = d min_pos = i return min_pos