def METHOD_NAME(self, r1, r2, r3, r4, VP):
    param = VP[0 : self.param_size]
    rot = construct_antisym(param)
    # Could use this if not doing autodiff
    # rot_mat = scipy.linalg.expm(-rot)
    rot_mat = mat_exp(-rot)
    rot_mo = np.dot(rot_mat, self.mo_coeff)
    mo_size = self.mo_coeff.shape[0]
    phi0_1 = [self.sto.eval_v2(i, r1) for i in range(mo_size)]
    phi0_2 = [self.sto.eval_v2(i, r2) for i in range(mo_size)]
    phi0_a = np.array([phi0_1, phi0_2])
    phi0 = np.dot(rot_mo, phi0_a.T)
    phi1_1 = [self.sto.eval_v2(i, r3) for i in range(mo_size)]
    phi1_2 = [self.sto.eval_v2(i, r4) for i in range(mo_size)]
    phi1_a = np.array([phi1_1, phi1_2])
    phi1 = np.dot(rot_mo, phi1_a.T)
    d1 = det2(phi0)
    d2 = det2(phi1)
    return d1 * d2