import numpy as np import scipy def rbf(l=1.0): return se(sig=1.414, l=l) def se(sig=1.414, l=1.0): def func(xa, xb): sq = scipy.spatial.distance.cdist(xa, xb, 'sqeuclidean') / -2*l return (sig**2)*np.exp(sq) return func def brown(f=0.02, eps=0.00000001): def func(xa, xb): m = [] for i in range(xa.shape[0]): l = [] for j in range(xb.shape[0]): l.append(min(xa[i][0], xb[j][0])) m.append(l) return (np.array(m) + eps)*f return func def pink(sig=1.414): def func(xa, xb): d = scipy.spatial.distance.cdist(xa, xb, 'sqeuclidean') m = (d == 1)*1 + (d == 0)*sig return m return func