def METHOD_NAME(coefs):
	'''
	Single level SURE adaptive thresholding of wavelet coefficients from:
	'Adapting to Unknown Smoothness via Wavelet Shrinkage', D. Donoho, I. Johnstone,
	Dec 1995
	Performs softmax thresholding of wavelet coefficients ('coefs') at this level. 
	Threshold is selected by minimization of SURE objective for threshold ('t') values in range:
	0 < t < sqrt(2*log(d)) where 'd' is the number of coefficients at this level.
	For more details see paper.
	Args:
        coefs (float list): Single level wavelet coefficients.
    Returns:
        float list: Softmax thresholded wavelet coefficients.
	'''
	d = coefs.shape[0]
	t_max = np.sqrt(2*np.log(d))
	t_min = 0
	def SURE(t):
		return d-2*np.sum(np.abs(coefs) <= t) + np.sum(np.minimum(coefs,t)**2)
	trsh = minimize_scalar(SURE,bounds=[t_min,t_max]).x
	def soft_threshold(y):
		a = np.absolute(y) - trsh
		sgn = np.sign(y)
		if a <= 0:
			return 0
		else:
			return sgn*a
	thresholded = np.vectorize(soft_threshold)(coefs)
	return thresholded