def compute(self, t, yerr=1.123e-12, check_sorted=True,
                A=None, U=None, V=None):
        t = np.atleast_1d(t)
        if check_sorted and np.any(np.diff(t) < 0.0):
            raise ValueError("the input coordinates must be sorted")
        if check_sorted and len(t.shape) > 1:
            raise ValueError("dimension mismatch")
        self._t = t
        self._yerr = np.empty_like(self._t)
        self._yerr[:] = yerr
        (alpha_real, beta_real, alpha_complex_real, alpha_complex_imag,
         beta_complex_real, beta_complex_imag) = self.kernel.coefficients
        self._A = np.empty(0) if A is None else A
        self._U = np.empty((0, 0)) if U is None else U
        self._V = np.empty((0, 0)) if V is None else V
        self.solver.compute(
            self.kernel.jitter,
            alpha_real, beta_real,
            alpha_complex_real, alpha_complex_imag,
            beta_complex_real, beta_complex_imag,
            self._A, self._U, self._V,
            t, self._yerr**2
        )
        self.dirty = False