nodes: 0, module; 1, function_definition; 2, function_name:compute; 3, parameters; 4, block; 5, identifier:self; 6, identifier:t; 7, default_parameter; 8, default_parameter; 9, default_parameter; 10, default_parameter; 11, default_parameter; 12, expression_statement; 13, expression_statement; 14, if_statement; 15, if_statement; 16, expression_statement; 17, expression_statement; 18, expression_statement; 19, expression_statement; 20, expression_statement; 21, expression_statement; 22, expression_statement; 23, expression_statement; 24, expression_statement; 25, identifier:yerr; 26, float:1.123e-12; 27, identifier:check_sorted; 28, True; 29, identifier:A; 30, None; 31, identifier:U; 32, None; 33, identifier:V; 34, None; 35, comment:"""
          Compute the extended form of the covariance matrix and factorize
  
          Args:
              x (array[n]): The independent coordinates of the data points.
                  This array must be _sorted_ in ascending order.
              yerr (Optional[float or array[n]]): The measurement uncertainties
                  for the data points at coordinates ``x``. These values will be
                  added in quadrature to the diagonal of the covariance matrix.
                  (default: ``1.123e-12``)
              check_sorted (bool): If ``True``, ``x`` will be checked to make
                  sure that it is properly sorted. If ``False``, the coordinates
                  will be assumed to be in the correct order.
  
          Raises:
              ValueError: For un-sorted data or mismatched dimensions.
              solver.LinAlgError: For non-positive definite matrices.
  
          """; 36, assignment; 37, boolean_operator; 38, block; 39, boolean_operator; 40, block; 41, assignment; 42, assignment; 43, assignment; 44, assignment; 45, assignment; 46, assignment; 47, assignment; 48, call; 49, assignment; 50, identifier:t; 51, call; 52, identifier:check_sorted; 53, call; 54, raise_statement; 55, identifier:check_sorted; 56, comparison_operator:len(t.shape) > 1; 57, raise_statement; 58, attribute; 59, identifier:t; 60, attribute; 61, call; 62, subscript; 63, identifier:yerr; 64, tuple_pattern; 65, attribute; 66, attribute; 67, conditional_expression:np.empty(0) if A is None else A; 68, attribute; 69, conditional_expression:np.empty((0, 0)) if U is None else U; 70, attribute; 71, conditional_expression:np.empty((0, 0)) if V is None else V; 72, attribute; 73, argument_list; 74, attribute; 75, False; 76, attribute; 77, argument_list; 78, attribute; 79, argument_list; 80, call; 81, call; 82, integer:1; 83, call; 84, identifier:self; 85, identifier:_t; 86, identifier:self; 87, identifier:_yerr; 88, attribute; 89, argument_list; 90, attribute; 91, slice; 92, identifier:alpha_real; 93, identifier:beta_real; 94, identifier:alpha_complex_real; 95, identifier:alpha_complex_imag; 96, identifier:beta_complex_real; 97, identifier:beta_complex_imag; 98, attribute; 99, identifier:coefficients; 100, identifier:self; 101, identifier:_A; 102, call; 103, comparison_operator:A is None; 104, identifier:A; 105, identifier:self; 106, identifier:_U; 107, call; 108, comparison_operator:U is None; 109, identifier:U; 110, identifier:self; 111, identifier:_V; 112, call; 113, comparison_operator:V is None; 114, identifier:V; 115, attribute; 116, identifier:compute; 117, attribute; 118, identifier:alpha_real; 119, identifier:beta_real; 120, identifier:alpha_complex_real; 121, identifier:alpha_complex_imag; 122, identifier:beta_complex_real; 123, identifier:beta_complex_imag; 124, attribute; 125, attribute; 126, attribute; 127, identifier:t; 128, binary_operator:self._yerr**2; 129, identifier:self; 130, identifier:dirty; 131, identifier:np; 132, identifier:atleast_1d; 133, identifier:t; 134, identifier:np; 135, identifier:any; 136, comparison_operator:np.diff(t) < 0.0; 137, identifier:ValueError; 138, argument_list; 139, identifier:len; 140, argument_list; 141, identifier:ValueError; 142, argument_list; 143, identifier:np; 144, identifier:empty_like; 145, attribute; 146, identifier:self; 147, identifier:_yerr; 148, identifier:self; 149, identifier:kernel; 150, attribute; 151, argument_list; 152, identifier:A; 153, None; 154, attribute; 155, argument_list; 156, identifier:U; 157, None; 158, attribute; 159, argument_list; 160, identifier:V; 161, None; 162, identifier:self; 163, identifier:solver; 164, attribute; 165, identifier:jitter; 166, identifier:self; 167, identifier:_A; 168, identifier:self; 169, identifier:_U; 170, identifier:self; 171, identifier:_V; 172, attribute; 173, integer:2; 174, call; 175, float:0.0; 176, string:"the input coordinates must be sorted"; 177, attribute; 178, string:"dimension mismatch"; 179, identifier:self; 180, identifier:_t; 181, identifier:np; 182, identifier:empty; 183, integer:0; 184, identifier:np; 185, identifier:empty; 186, tuple; 187, identifier:np; 188, identifier:empty; 189, tuple; 190, identifier:self; 191, identifier:kernel; 192, identifier:self; 193, identifier:_yerr; 194, attribute; 195, argument_list; 196, identifier:t; 197, identifier:shape; 198, integer:0; 199, integer:0; 200, integer:0; 201, integer:0; 202, identifier:np; 203, identifier:diff; 204, identifier:t
code: def compute(self, t, yerr=1.123e-12, check_sorted=True,
                  A=None, U=None, V=None):
          """
          Compute the extended form of the covariance matrix and factorize
  
          Args:
              x (array[n]): The independent coordinates of the data points.
                  This array must be _sorted_ in ascending order.
              yerr (Optional[float or array[n]]): The measurement uncertainties
                  for the data points at coordinates ``x``. These values will be
                  added in quadrature to the diagonal of the covariance matrix.
                  (default: ``1.123e-12``)
              check_sorted (bool): If ``True``, ``x`` will be checked to make
                  sure that it is properly sorted. If ``False``, the coordinates
                  will be assumed to be in the correct order.
  
          Raises:
              ValueError: For un-sorted data or mismatched dimensions.
              solver.LinAlgError: For non-positive definite matrices.
  
          """
          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