def run_iteration(self): """ Note: slsqp controls the looping.""" n = self.nparam m = self.ncon meq = self.neqcon la = max(m, 1) gg = zeros([la], 'd') df = zeros([n+1], 'd') dg = zeros([la, n+1], 'd') mineq = m - meq + 2*(n+1) lsq = (n+1)*((n+1)+1) + meq*((n+1)+1) + mineq*((n+1)+1) lsi = ((n+1)-meq+1)*(mineq+2) + 2*mineq lsei = ((n+1)+mineq)*((n+1)-meq) + 2*meq + (n+1) slsqpb = (n+1)*(n/2) + 2*m + 3*n + 3*(n+1) + 1 lw = lsq + lsi + lsei + slsqpb + n + m w = zeros([lw], 'd') ljw = max(mineq, (n+1)-meq) jw = zeros([ljw], 'i') try: dg, self.error_code, self.nfunc, self.ngrad = \ slsqp(self.ncon, self.neqcon, la, self.nparam, self.x, self.x_lower_bounds, self.x_upper_bounds, self.ff, gg, df, dg, self.accuracy, self.maxiter, self.iprint-1, self.iout, self.output_filename, self.error_code, w, lw, jw, ljw, self.nfunc, self.ngrad, self._func, self._grad) #slsqp(m,meq,la,n,xx,xl,xu,ff,gg,df,dg,acc,maxit,iprint, # iout,ifile,mode,w,lw,jw,ljw,nfunc,ngrad,slfunc,slgrad) except Exception as err: self._logger.error(str(err)) raise if self.iprint > 0: closeunit(self.iout) # Log any errors if self.error_code != 0: self._logger.warning(self.error_messages[self.error_code]) self.exit_flag = 0 else: self.exit_flag = 1 # Iteration is complete self._continue = False
def run_iteration(self): """ Note: slsqp controls the looping.""" n = self.nparam m = self.ncon meq = self.neqcon la = max(m, 1) gg = zeros([la], 'd') df = zeros([n + 1], 'd') dg = zeros([la, n + 1], 'd') mineq = m - meq + 2 * (n + 1) lsq = (n + 1) * ((n + 1) + 1) + meq * ((n + 1) + 1) + mineq * ( (n + 1) + 1) lsi = ((n + 1) - meq + 1) * (mineq + 2) + 2 * mineq lsei = ((n + 1) + mineq) * ((n + 1) - meq) + 2 * meq + (n + 1) slsqpb = (n + 1) * (n / 2) + 2 * m + 3 * n + 3 * (n + 1) + 1 lw = lsq + lsi + lsei + slsqpb + n + m w = zeros([lw], 'd') ljw = max(mineq, (n + 1) - meq) jw = zeros([ljw], 'i') try: dg, self.error_code, self.nfunc, self.ngrad = \ slsqp(self.ncon, self.neqcon, la, self.nparam, self.x, self.x_lower_bounds, self.x_upper_bounds, self.ff, gg, df, dg, self.accuracy, self.maxiter, self.iprint-1, self.iout, self.output_filename, self.error_code, w, lw, jw, ljw, self.nfunc, self.ngrad, self._func, self._grad) #slsqp(m,meq,la,n,xx,xl,xu,ff,gg,df,dg,acc,maxit,iprint, # iout,ifile,mode,w,lw,jw,ljw,nfunc,ngrad,slfunc,slgrad) except Exception as err: self._logger.error(str(err)) raise if self.iprint > 0: closeunit(self.iout) # Log any errors if self.error_code != 0: self._logger.warning(self.error_messages[self.error_code]) self.exit_flag = 0 else: self.exit_flag = 1 # Iteration is complete self._continue = False
def run_iteration(self): """ Note: slsqp controls the looping.""" n = self.nparam m = self.ncon meq = self.neqcon la = max(m, 1) self.gg = zeros([la], 'd') df = zeros([n + 1], 'd') dg = zeros([la, n + 1], 'd') mineq = m - meq + 2 * (n + 1) lsq = (n + 1) * ((n + 1) + 1) + meq * ((n + 1) + 1) + mineq * ( (n + 1) + 1) lsi = ((n + 1) - meq + 1) * (mineq + 2) + 2 * mineq lsei = ((n + 1) + mineq) * ((n + 1) - meq) + 2 * meq + (n + 1) slsqpb = (n + 1) * (n / 2) + 2 * m + 3 * n + 3 * (n + 1) + 1 lw = lsq + lsi + lsei + slsqpb + n + m w = zeros([lw], 'd') ljw = max(mineq, (n + 1) - meq) jw = zeros([ljw], 'i') try: dg, self.error_code, self.nfunc, self.ngrad = \ slsqp(self.ncon, self.neqcon, la, self.nparam, \ self.x, self.x_lower_bounds, self.x_upper_bounds, \ self.ff, self.gg, df, dg, self.accuracy, self.maxiter, \ self.iprint-1, self.iout, self.output_filename, \ self.error_code, w, lw, jw, ljw, \ self.nfunc, self.ngrad, \ self._func, self._grad) #slsqp(m,meq,la,n,xx,xl,xu,ff,gg,df,dg,acc,maxit,iprint, # iout,ifile,mode,w,lw,jw,ljw,nfunc,ngrad,slfunc,slgrad) except Exception, err: self._logger.error(str(err)) raise
def run_iteration(self): """ Note: slsqp controls the looping.""" n = self.nparam m = self.ncon meq = self.neqcon la = max(m,1) self.gg = zeros([la], 'd') df = zeros([n+1], 'd') dg = zeros([la, n+1], 'd') mineq = m - meq + 2*(n+1) lsq = (n+1)*((n+1)+1) + meq*((n+1)+1) + mineq*((n+1)+1) lsi = ((n+1)-meq+1)*(mineq+2) + 2*mineq lsei = ((n+1)+mineq)*((n+1)-meq) + 2*meq + (n+1) slsqpb = (n+1)*(n/2) + 2*m + 3*n + 3*(n+1) + 1 lw = lsq + lsi + lsei + slsqpb + n + m w = zeros([lw], 'd') ljw = max(mineq,(n+1)-meq) jw = zeros([ljw], 'i') try: dg, self.error_code, self.nfunc, self.ngrad = \ slsqp(self.ncon, self.neqcon, la, self.nparam, \ self.x, self.x_lower_bounds, self.x_upper_bounds, \ self.ff, self.gg, df, dg, self.accuracy, self.maxiter, \ self.iprint-1, self.iout, self.output_filename, \ self.error_code, w, lw, jw, ljw, \ self.nfunc, self.ngrad, \ self._func, self._grad) #slsqp(m,meq,la,n,xx,xl,xu,ff,gg,df,dg,acc,maxit,iprint, # iout,ifile,mode,w,lw,jw,ljw,nfunc,ngrad,slfunc,slgrad) except Exception, err: self._logger.error(str(err)) raise