def __init__(self, M, C, init_mesh = None, init_vals = None, check_repeats = True, regularize = True): # Make internal copies of M and C. Note that subsequent observations of M and C # will not affect self. M_internal = copy.copy(M) C_internal = copy.copy(C) M_internal.C = C_internal # If initial values were specified on a mesh: if init_mesh is not None: if regularize: init_mesh = regularize_array(init_mesh) init_vals = init_vals.ravel() # Observe internal M and C with self's value on init_mesh. observe(M_internal, C_internal, obs_mesh=init_mesh, obs_vals=init_vals, obs_V=zeros(len(init_vals),dtype=float), lintrans=None, cross_validate = False) # Store init_mesh. if check_repeats: self.x_sofar = init_mesh self.f_sofar = init_vals elif check_repeats: # Store init_mesh. self.x_sofar = None self.f_sofar = None self.check_repeats = check_repeats self.M_internal = M_internal self.C_internal = C_internal
def _init_obs(self): # If initial values were specified on a mesh: if self.init_mesh is not None: if self.regularize: self.init_mesh = regularize_array(self.init_mesh) self.init_vals = self.init_vals.ravel() # Observe internal M and C with self's value on init_mesh. observe(self.M_internal, self.C_internal, obs_mesh=self.init_mesh, obs_vals=self.init_vals, obs_V=zeros(len(self.init_vals), dtype=float), lintrans=None, cross_validate=False) # Store init_mesh. if self.check_repeats: self.x_sofar = self.init_mesh self.f_sofar = self.init_vals self.need_init_obs = False
def _init_obs(self): # If initial values were specified on a mesh: if self.init_mesh is not None: if self.regularize: self.init_mesh = regularize_array(self.init_mesh) self.init_vals = self.init_vals.ravel() # Observe internal M and C with self's value on init_mesh. observe(self.M_internal, self.C_internal, obs_mesh=self.init_mesh, obs_vals=self.init_vals, obs_V=zeros(len(self.init_vals),dtype=float), lintrans=None, cross_validate = False) # Store init_mesh. if self.check_repeats: self.x_sofar = self.init_mesh self.f_sofar = self.init_vals self.need_init_obs = False