'The robust criterion function for Huber\'s t.
Parameters
z : array-like
1d array
Returns
rho : array
rho(z) = .5*z**2            for \|z\| <= t
rho(z) = \|z\|*t - .5*t**2    for \|z\| > t'

def rho(self, z):

    z = np.asarray(z)
    test = self._subset(z)
    return (((test * 0.5) * (z ** 2)) + ((1 - test) * ((np.fabs(z) * self.t) - (0.5 * (self.t ** 2)))))
