def check_requirements(self):
        jid = xmpp.protocol.JID(self.xmpp_jid)
        try:
            cl = xmpp.Client(jid.getDomain(),debug=[])
            if not cl.connect():
                raise Exception("Connect failed.")

            if not cl.auth(jid.getNode(), self.xmpp_password, resource=jid.getResource()):
                raise Exception("Authentication failed.")

            if self.xmpp_send_test:
                for recipient in self.xmpp_recipient:
                    if not cl.send(xmpp.protocol.Message(recipient, 'Kimsufi Crawler: Initial Test Message')):
                        raise Exception("Failed to send message to %s" % (recipient, ))
                    _logger.info("XMPP sent: [%s] %s" % (recipient, 'Kimsufi Crawler: Initial Test Message'))

        except Exception as ex:
            _logger.error("Cannot connect/auth to XMPP Server. "
                          "Correct your config and try again. Error details:")
            _logger.error(ex)
            raise
        _logger.info("XMPP connected.")
Optimized matrix method for the E-step. 
dataset/ETHPy150Open MA3STR0/kimsufi-crawler/notifiers/xmpp_notifier.py/XMPPNotifier.check_requirements--crossover with--dataset/ETHPy150Open epierson9/ZIFA/ZIFA/ZIFA.py/computeMatrixInLastStep