class_docstr: Base class for Gaussian processes. 
class_docstr_tok: ["Base","class","for","Gaussian","processes","."]
docstr: Adds new data to the GP. If rebuild is true it rebuilds the posterior. 
docstr_tok: ["Adds","new","data","to","the","GP",".","If","rebuild","is","true","it","rebuilds","the","posterior","."]
code: def add_data_multiple(self, X_new, Y_new, build_posterior=True):
      """Adds new data to the GP. If rebuild is true it rebuilds the posterior."""
      _check_feature_label_lengths_and_format(X_new, Y_new)
      self.X.extend(X_new)
      self.Y.extend(Y_new)
      self.num_tr_data = len(self.Y)
      if build_posterior:
          self.build_posterior()
  
imports: from __future__ import division
  from argparse import Namespace
  from itertools import product
  import sys
  import numpy
  from ..distributions.model import Model
  from ..distributions import continuous
  from ..distributions import discrete
  from ..utils.general_utils import stable_cholesky, draw_gaussian_samples, project_symmetric_to_psd_cone, solve_lower_triangular, solve_upper_triangular
  from ..utils.oper_utils import direct_ft_maximise, pdoo_maximise, random_maximise, random_sample_cts_dscr
  from ..utils.option_handler import get_option_specs, load_options
  from ..utils.reporters import get_reporter
label_desc: Use image node_id 6 for calling the GP obj's underlying member method code with example usage: obj.add_data_multiple(X_new, Y_new, build_posterior) without return types