def Morris_function(x):
delta=np.zeros((20,20,20)); delta[:5,:5,:5].fill(-10)
gamma=np.zeros((20,20,20,20)); gamma[:4,:4,:4,:4].fill(5)
W=np.sum(alpha.reshape(-1,1)*w(x))
W1=np.sum(beta*(w(x).reshape(1,-1)*w(x))*(np.arange(20).reshape(-1,1)<np.arange(20)))
W2=np.sum(delta*(w(x).reshape(-1,1,1)*w(x).reshape(1,-1,1)*w(x).reshape(1,1,-1))*(np.arange(20).reshape(-1,1,1)<np.arange(20).reshape(1,-1,1))*(np.arange(20).reshape(1,-1,1)<np.arange(20).reshape(1,1,-1)))
W3=np.sum(gamma*(w(x).reshape(-1,1,1,1)*w(x).reshape(1,-1,1,1)*w(x).reshape(1,1,-1,1)*w(x).reshape(1,1,1,-1))*(np.arange(20).reshape(-1,1,1,1)<np.arange(20).reshape(1,-1,1,1))*(np.arange(20).reshape(1,-1,1,1)<np.arange(20).reshape(1,1,-1,1))*(np.arange(20).reshape(1,1,-1,1)<np.arange(20).reshape(1,1,1,-1)))
y=W+W1+W2+W3+float(b0)
return y
However, the current implementation has no unit tests. This makes changing the implementation unconformable.