def _Prepare(self): if hasattr(self, 'prepared') and self.prepared == True: return NonLinProblem._Prepare(self) self.prepared = True if self.isFDmodel: r = {} for iv in self.freeVars: if iv.domain is None: continue ind1, ind2 = self._oovarsIndDict[iv] assert ind2 - ind1 == 1 r[ind1] = iv.domain self.discreteVars = r # TODO: use something else instead of dict.keys() new_discr = {} for key, fv in self.discreteVars.items(): if type(fv) not in [list, tuple, ndarray ] and fv not in ('bool', bool): self.err( 'each element from discreteVars dictionary should be list or tuple of allowed values' ) if fv is not bool and fv is not 'bool': new_discr[key] = sort(fv) lowest = 0 if fv is bool or fv is 'bool' else fv[0] biggest = 1 if fv is bool or fv is 'bool' else fv[-1] if lowest > self.ub[key]: self.err('variable ' + str(key) + ': smallest allowed discrete value ' + str(fv[0]) + ' exeeds imposed upper bound ' + str(self.ub[key])) if biggest < self.lb[key]: self.err('variable ' + str(key) + ': biggest allowed discrete value ' + str(fv[-1]) + ' is less than imposed lower bound ' + str(self.lb[key])) self.discreteVars.update(new_discr)
def _Prepare(self): if hasattr(self, 'prepared') and self.prepared == True: return NonLinProblem._Prepare(self) if self.isFDmodel: r = {} for iv in self.freeVars: if iv.domain is None: continue ind1, ind2 = self._oovarsIndDict[iv] assert ind2-ind1 == 1 r[ind1] = iv.domain self.discreteVars = r # TODO: use something else instead of dict.keys() for key in self.discreteVars.keys(): fv = self.discreteVars[key] if type(fv) not in [list, tuple, ndarray] and fv not in ('bool', bool): self.err('each element from discreteVars dictionary should be list or tuple of allowed values') if fv is not bool and fv is not 'bool': fv = sort(fv) lowest = 0 if fv is bool or fv is 'bool' else fv[0] biggest = 1 if fv is bool or fv is 'bool' else fv[-1] if lowest > self.ub[key]: self.err('variable '+ str(key)+ ': smallest allowed discrete value ' + str(fv[0]) + ' exeeds imposed upper bound '+ str(self.ub[key])) if biggest < self.lb[key]: self.err('variable '+ str(key)+ ': biggest allowed discrete value ' + str(fv[-1]) + ' is less than imposed lower bound '+ str(self.lb[key])) self.discreteVars[key] = fv
def _Prepare(self): self.X = atleast_2d(self.X) self.Y = array(self.Y, float) if self.X.shape[0] != self.Y.shape[0]: if self.X.shape[1] != self.Y.shape[0]: self.err('incorrect shape of input data') else: self.X = self.X.T NonLinProblem._Prepare(self) #if self.Y.ndim if self.userProvided.df: assert len(self.user.df) == 1 self.dfff = self.user.df[0] def dff(x): r = zeros(self.n) for i in range(self.Y.shape[0]): #print asfarray(self.fff(x, self.X[i])-self.Y[i]), asfarray(self.dfff(x, self.X[i])) r += dot( 2.0 * asfarray(self.fff(x, self.X[i]) - self.Y[i]), asfarray(self.dfff(x, self.X[i]))) return r self.df = self.user.df = dff
def _Prepare(self): self.X = atleast_2d(self.X) self.Y = array(self.Y, float) if self.X.shape[0] != self.Y.shape[0]: if self.X.shape[1] != self.Y.shape[0]: self.err('incorrect shape of input data') else: self.X = self.X.T NonLinProblem._Prepare(self) #if self.Y.ndim if self.userProvided.df: assert len(self.user.df) == 1 self.dfff = self.user.df[0] def dff(x): r = zeros(self.n) for i in range(self.Y.shape[0]): #print asfarray(self.fff(x, self.X[i])-self.Y[i]), asfarray(self.dfff(x, self.X[i])) r += dot(2.0 * asfarray(self.fff(x, self.X[i])-self.Y[i]), asfarray(self.dfff(x, self.X[i]))) return r self.df = self.user.df = dff