def _studentized_residuals_fast(self, p=None):
if len(self._set_xdata)==<NUM_LIT:0> or len(self._set_ydata)==<NUM_LIT:0>: return<EOL>if p is None:<EOL><INDENT>if self.results is None: p = self._pguess<EOL>else:                    p = self.results[<NUM_LIT:0>]<EOL><DEDENT>f = self._evaluate_all_functions(self._xdata_massaged, p)<EOL>residuals = []<EOL>for n in range(len(f)):<EOL><INDENT>numerator = self._ydata_massaged[n]-f[n]<EOL>denominator = _n.absolute(self._eydata_massaged[n])<EOL>residuals.append(numerator/denominator)<EOL><DEDENT>return residuals<EOL>
Returns a list of studentized residuals, (ydata - model)/error

This function relies on a previous call to set_data(), and assumes
self._massage_data() has been called (to increase speed).

Parameters
----------
p=None 
    Function parameters to use. None means use the fit results; if no fit, use guess results.