<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def reset_Ac(self):
 """ Reset ``dae.Ac`` sparse matrix for disabled equations due to hard_limit and anti_windup limiters. :return: None """

        if self.ac_reset is False:
            return

        mn = self.m + self.n

        x = index(aandb(self.zxmin, self.zxmax), 0.)
        y = [i + self.n for i in index(aandb(self.zymin, self.zymax), 0.)]
        xy = list(x) + y

        eye = spdiag([1.0] * mn)
        H = spmatrix(1.0, xy, xy, (mn, mn), 'd')

        # Modifying ``eye`` is more efficient than ``eye = eye - H``.
        # CVXOPT modifies eye in place because all the accessed elements exist.

        for idx in xy:
            eye[idx, idx] = 0

        if len(xy) > 0:
            self.Ac = eye * (self.Ac * eye) - H
            self.q[x] = 0

        self.ac_reset = False
        self.factorize = True