亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? glpkmex.c

?? This routine calls the glpk library to solve a LP/MIP problem. A typical LP problem has following s
?? C
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/*---------------------------------------------------------------------- * * Copyright (C) 2001-2005, Nicolo' Giorgetti, All rights reserved. * E-mail: <giorgetti@dii.unisi.it>. * * This file is part of GLPK (GNU Linear Programming Kit). * * GLPK is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This part of code is distributed with the FURTHER condition that it  * can be compiled and linked with the Matlab libraries and it can be  * used within the Matlab environment. * * GLPK is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public * License for more details. * * You should have received a copy of the GNU General Public License * along with GLPK; see the file COPYING. If not, write to the Free * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * *-----------------------------------------------------------------------*/#include <stdio.h>#include <stdlib.h>#include <float.h>#include <math.h>#include <string.h>#include <setjmp.h>#include "mex.h"#include "glpk.h"#include "glpksets.h"#include "glpkfun.h"#define	SENSE_IN   prhs[0]#define	C_IN	    prhs[1]#define	A_IN	    prhs[2]#define	B_IN	    prhs[3]#define  CTYPE_IN   prhs[4]#define  LB_IN	    prhs[5]#define  UB_IN      prhs[6]#define  VARTYPE_IN prhs[7]#define  PARAM      prhs[8]#define  SOLVER_IN  prhs[9]#define  SAVE_IN    prhs[10]/* Output Arguments */#define	 XMIN_OUT     plhs[0]#define	 FMIN_OUT     plhs[1]#define	 STATUS_OUT   plhs[2]#define   EXTRA_OUT    plhs[3]/* This constant is used to discriminate not null elements    of the constant matrix A. For instance, if A[i,j] > TOL   A[i,j] is considered a not-null element of the matrix,    otherwise it is assumed NULL.*/ #define TOL 1e-14void mexFunction( int nlhs, mxArray *plhs[],                  int nrhs, const mxArray *prhs[]){   int    sense;   double *tmp=NULL;   double *c=NULL;   double *A=NULL;   double *b=NULL;   double *bcopy=NULL;    double *lb=NULL;   double *ub=NULL;   char *vartype=NULL;   int mrowsc=0;   int mrowsA=0;   char *ctype=NULL;   int save_pb=0;   int lpsolver=1;   int error;   double *xmin=NULL;   double *fmin=NULL;   double *status=NULL;   double *lambda=NULL;   double *redcosts=NULL;   double *time=NULL;   double *mem=NULL;   char errmsg[1024];   int *freeLB=0;   int *freeUB=0;   int nfields=0;   const char **extranames;   mxArray *mxlambda, *mxredcosts, *mxtime,*mxmem;   double *rdtmp=NULL;   mxArray *mxtmp;   int *vartype2=NULL;   int jmpret;   int i;   int size;   int flagLB=0; /* flag used to free LB if allocated with mxCalloc */   int flagUB=0; /* flag used to free UB if allocated with mxCalloc */      /* row and column sets of non-zero constraint coefficients */   int nz;  /* number of non-zero coefficients */   int *rn=NULL;   int *cn=NULL;   double *a=NULL;  /* non-zero coefficients */   /*      flag to identify the type of problem:             isMIP=0 <=> LP problem             isMIP=1 <=> MIP problem   */   int isMIP = 0;   if(nrhs < 1){      mexPrintf(header);      mexPrintf(version);      mexPrintf(copyright);      mexPrintf(syntax);      return;   }   if(nrhs < 4) mexErrMsgTxt("At least 4 inputs required (SENSE,C,A,b)");   if(nlhs < 2) mexErrMsgTxt("2 outputs required");   /* 1st Input. Sense of optimization. */   if (!mxIsNumeric(SENSE_IN)       || (mxGetNumberOfDimensions(SENSE_IN) > 2)       || (mxGetM(SENSE_IN) != 1)       || (mxGetN(SENSE_IN) != 1)       || mxIsComplex(SENSE_IN)       || ((tmp = mxGetPr(SENSE_IN)) == NULL)       || ((*tmp != 1) && (*tmp != -1))      )       mexErrMsgTxt("SENSE must be either 1 or -1.");   else       sense = (int) (*tmp);   /* 2nd Input. A column array containing the objective function                 coefficients.   */   if (!mxIsNumeric(C_IN)	    || (mxGetNumberOfDimensions(C_IN) > 2)	    || ((mrowsc = mxGetM(C_IN)) < 1)	    || (mxGetN(C_IN) != 1)	    || mxIsComplex(C_IN)	    || ((c= mxGetPr(C_IN)) == NULL)		)		mexErrMsgTxt("C must be a real valued column vector.");   /* 3rd Input. A matrix containing the constraints coefficients. */	if (!mxIsNumeric(A_IN)	    || (mxGetNumberOfDimensions(A_IN) > 2)	    || ((mrowsA = mxGetM(A_IN)) < 1)	    || (mxGetN(A_IN) != mrowsc)	    || mxIsComplex(A_IN)	    || ((A = mxGetPr(A_IN)) == NULL)		) {		sprintf(errmsg,"A must be a real valued %d by %d matrix.",mrowsA, mrowsc);		mexErrMsgTxt(errmsg);	}else{	  if(!mxIsSparse(A_IN)){	    int i,j;	   /* int nrcount; */	    rn=(int *)mxCalloc(mrowsA*mrowsc+1,sizeof(int));	    cn=(int *)mxCalloc(mrowsA*mrowsc+1,sizeof(int));	    a=(double *)mxCalloc(mrowsA*mrowsc+1,sizeof(double));		/*		nz=0;	    for(i=0;i<mrowsA;i++){	      for(j=0;j<mrowsc;j++){		      if(A[i+j*mrowsA]!=0) nz++;	      }	    }		rn=(int *)mxCalloc(mrowsA*mrowsc+1,sizeof(int));	    cn=(int *)mxCalloc(nz+1,sizeof(int));	    a=(double *)mxCalloc(nz+1,sizeof(double)); */	    	    nz=0;	    for(i=0;i<mrowsA;i++){	      for(j=0;j<mrowsc;j++){		      if(fabs(A[i+j*mrowsA])> TOL){                    nz++;		            rn[nz]=i+1;		            cn[nz]=j+1;		            a[nz]=A[i+j*mrowsA];		      }	      }	    }	  }else{	    int i,j;	    int *jc,*ir;	    double *pr;	    int nelc,count,row;	    /* NOTE: nnz is the actual number of nonzeros and is stored as the       last element of the jc array where the size of the jc array is the       number of columns + 1 */	    nz = *(mxGetJc(A_IN) + mrowsc);	    jc = mxGetJc(A_IN);	    ir = mxGetIr(A_IN);	    pr = mxGetPr(A_IN);       rn=(int *)mxCalloc(nz+1,sizeof(int));	    cn=(int *)mxCalloc(nz+1,sizeof(int));	    a=(double *)mxCalloc(nz+1,sizeof(double));       count=0; row=0;	    for(i=1;i<=mrowsc;i++){	      nelc=jc[i]-jc[i-1];	      for(j=0;j<nelc;j++){		      count++;		      rn[count]=ir[row]+1;		      cn[count]=i;		      a[count]=pr[row];		      row++;	      }	    }	  }	}   /* 4th Input. A column array containing the right-hand side value	         for each constraint in the constraint matrix.   */	if (!mxIsNumeric(B_IN)	    || (mxGetNumberOfDimensions(B_IN) > 2)	    || (mxGetM(B_IN) != mrowsA)	    || (mxGetN(B_IN) != 1)	    || mxIsComplex(B_IN)	    || ((b = mxGetPr(B_IN)) == NULL)		) {		sprintf(errmsg,"B must be a real valued %d by 1 column vector.",mrowsA);		mexErrMsgTxt(errmsg);	}   /* 5th Input. A column array containing the sense of each constraint                 in the constraint matrix.   */  if ((nrhs > 4) && (mxGetM(CTYPE_IN) != 0) && (mxGetN(CTYPE_IN) != 0)) {  if (!mxIsChar(CTYPE_IN)       || (mxGetNumberOfDimensions(CTYPE_IN) > 2)       || (mxGetM(CTYPE_IN) != mrowsA)       || (mxGetN(CTYPE_IN) != 1)       || mxIsComplex(CTYPE_IN)      ){	sprintf(errmsg,"CTYPE must be a char valued %d by 1 column vector.",mrowsA);	mexErrMsgTxt(errmsg);       } else {	 /* int i,size; */	size = mxGetNumberOfElements(CTYPE_IN) + 1;	/* Allocate enough memory to hold the converted string. */	ctype = mxCalloc(size, sizeof (char));	/* Copy the string data from string_array_ptr and place it into buf. */	if (mxGetString(CTYPE_IN, ctype, size) != 0)	  mexErrMsgTxt("Could not convert string data.");	/* checking if the input is made only of  F, U, S, L and D */	for (i = 0; i < size - 1; i++) {	  if (     (ctype[i] != 'F') && (ctype[i] != 'U')		&& (ctype[i] != 'S') && (ctype[i] != 'L')		&& (ctype[i] != 'D'))	          mexErrMsgTxt("CTYPE must contain only F,U,S,L and D");	}       }  }   /* 6th Input. An array of at least length numcols containing the lower            	  bound on each of the variables.   */    if ((nrhs > 5) && (mxGetM(LB_IN) != 0) && (mxGetN(LB_IN) != 0)) {    if (!mxIsNumeric(LB_IN)	|| (mxGetNumberOfDimensions(LB_IN) > 2)	|| (mrowsc != mxGetM(LB_IN))	|| (mxGetN(LB_IN) != 1)	|| mxIsComplex(LB_IN)	|| ((lb = mxGetPr(LB_IN)) == NULL)       ) {      sprintf(errmsg,"LB must be a real valued %d by 1 column vector.",mrowsc);      mexErrMsgTxt(errmsg);    }    }    /* 7th Input. An array of at least length numcols containing the upper       bound on each of the variables.    */    if ((nrhs > 6) && (mxGetM(UB_IN) != 0) && (mxGetN(UB_IN) != 0)) {      if (!mxIsNumeric(UB_IN)	  || (mxGetNumberOfDimensions(UB_IN) > 2)	  || (mrowsc != mxGetM(UB_IN))	  || (mxGetN(UB_IN) != 1)	  || mxIsComplex(UB_IN)	  || ((ub = mxGetPr(UB_IN)) == NULL)	  ) {	sprintf(errmsg,"UB must be a real valued %d by 1 column vector.",		mrowsc);	mexErrMsgTxt(errmsg);      }    }    /* 8th Input. A column array containing the types of the variables.     */    if ((nrhs > 7) && (mxGetM(VARTYPE_IN) != 0)	&& (mxGetN(VARTYPE_IN) != 0)) {      if (!mxIsChar(VARTYPE_IN)	  || (mxGetNumberOfDimensions(VARTYPE_IN) > 2)	  || (mxGetM(VARTYPE_IN) != mrowsc)	  || (mxGetN(VARTYPE_IN) != 1)	  || mxIsComplex(VARTYPE_IN)	  ) {	sprintf(errmsg, "VARTYPE must be a char valued %d by 1 column vector.", mrowsc);	mexErrMsgTxt(errmsg);      } else {	/*int i,size;*/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区av性色| 亚洲精品一区二区在线观看| 美女国产一区二区三区| 欧美国产精品一区二区| 欧美日本韩国一区二区三区视频| 国产一区福利在线| 亚洲一线二线三线视频| 久久久亚洲高清| 欧美日韩久久久久久| 99视频有精品| 国产一区二区三区免费在线观看| 亚洲综合图片区| 国产精品美女久久久久久2018| 欧美一级xxx| 色婷婷av一区| 成人午夜免费视频| 国产精品综合二区| 蜜臀精品一区二区三区在线观看 | 日韩情涩欧美日韩视频| av电影天堂一区二区在线| 韩国精品免费视频| 日本伊人精品一区二区三区观看方式| 亚洲欧洲国产日本综合| 久久一日本道色综合| 欧美日韩精品免费| 91精彩视频在线| 99久久99久久精品免费看蜜桃| 九色综合狠狠综合久久| 日本亚洲最大的色成网站www| 亚洲最快最全在线视频| 一区二区在线看| 亚洲精品国久久99热| 日韩一区有码在线| 国产精品国产三级国产aⅴ入口| 精品sm在线观看| 精品999久久久| 日韩欧美一级二级| 日韩一区二区在线观看| 欧美人与禽zozo性伦| 精品视频在线免费看| 欧洲国产伦久久久久久久| 99久久久久免费精品国产| 成人午夜视频福利| 成人av资源在线| 成人av先锋影音| 99在线精品一区二区三区| 99r精品视频| 在线看不卡av| 欧美人妇做爰xxxⅹ性高电影| 欧美精品一二三| 91精品国产综合久久福利| 51精品久久久久久久蜜臀| 欧美日韩一区二区三区在线| 欧美日韩三级一区| 在线播放91灌醉迷j高跟美女| 69久久99精品久久久久婷婷| 欧美日韩在线播放三区| 在线不卡a资源高清| 日韩一区二区三| 久久久久国产精品麻豆ai换脸| 国产三级久久久| 亚洲色图丝袜美腿| 亚州成人在线电影| 日本欧美一区二区| 极品美女销魂一区二区三区| 国产99久久久国产精品潘金网站| 99在线精品视频| 欧美丝袜自拍制服另类| 91精品福利在线一区二区三区| 欧美一区二区三区日韩视频| 精品欧美一区二区在线观看| 国产欧美一区二区在线观看| 亚洲日本韩国一区| 天天亚洲美女在线视频| 国产一区二区三区电影在线观看 | 欧美视频中文一区二区三区在线观看| 欧美电影一区二区三区| 久久久久久久免费视频了| 国产精品不卡一区| 午夜精品久久久久久久99水蜜桃| 久久国产综合精品| 99re热视频精品| 日韩视频在线观看一区二区| 亚洲国产精品99久久久久久久久 | 91网上在线视频| 欧美丰满嫩嫩电影| 国产精品热久久久久夜色精品三区| 亚洲尤物视频在线| 久久91精品久久久久久秒播| 94色蜜桃网一区二区三区| 91精品国产91综合久久蜜臀| 国产区在线观看成人精品| 亚洲国产另类精品专区| 国产精品一区二区不卡| 欧美日韩一区中文字幕| 欧美激情在线观看视频免费| 日精品一区二区| 99精品欧美一区二区三区综合在线| 7777精品久久久大香线蕉 | 九一九一国产精品| 在线观看视频一区二区| 久久久www成人免费毛片麻豆| 亚洲成人黄色影院| 99热99精品| 久久这里只精品最新地址| 亚洲大片免费看| 99久久精品国产毛片| 日韩精品中文字幕一区二区三区| 亚洲伦理在线免费看| 国产精品一区二区在线看| 欧美精品 国产精品| 亚洲人成精品久久久久久| 国产精一区二区三区| 日韩欧美亚洲一区二区| 亚洲国产婷婷综合在线精品| 91在线视频网址| 亚洲国产精品精华液ab| 国产精品18久久久久| 欧美一区二区三区成人| 亚洲自拍都市欧美小说| 91尤物视频在线观看| 中文字幕不卡的av| 国产成人在线观看免费网站| 精品久久久久久久久久久久包黑料| 亚洲五月六月丁香激情| 日本高清不卡aⅴ免费网站| 国产精品久久午夜| 高清国产一区二区三区| 久久久久免费观看| 国产一区二区三区黄视频| 欧美成人女星排名| 九九精品一区二区| 精品成人免费观看| 激情图区综合网| 26uuu久久综合| 国产真实乱对白精彩久久| 精品国产一区a| 九九**精品视频免费播放| 精品国产一区二区三区四区四| 免费成人在线视频观看| 日韩欧美国产电影| 麻豆精品视频在线观看视频| 欧美mv和日韩mv的网站| 狠狠色狠狠色综合系列| 2020国产精品自拍| 国产高清久久久| 国产精品美女久久久久久| 99久久99久久精品免费观看| 亚洲你懂的在线视频| 欧美性做爰猛烈叫床潮| 日韩av在线发布| 日韩片之四级片| 国产成人亚洲综合a∨婷婷图片| 欧美韩国一区二区| 91在线视频播放| 亚洲 欧美综合在线网络| 日韩久久久久久| 国产iv一区二区三区| 中文字幕亚洲电影| 欧美少妇bbb| 精品一区二区影视| 日本一区二区三区在线不卡| 97久久超碰精品国产| 亚洲综合小说图片| 精品国产一区二区三区av性色| 东方aⅴ免费观看久久av| 亚洲欧美色一区| 91精品免费在线| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲高清免费一级二级三级| 7777女厕盗摄久久久| 美女视频免费一区| 国产精品毛片无遮挡高清| 色综合久久久久久久| 免费观看成人鲁鲁鲁鲁鲁视频| 国产日本亚洲高清| 欧美日韩一区三区| 国产精品一区2区| 亚洲一区二区高清| 久久九九全国免费| 欧美精品久久99久久在免费线 | 欧美一区二区福利在线| 风间由美一区二区三区在线观看| 亚洲男女毛片无遮挡| 精品国产乱码久久久久久蜜臀| 99久久婷婷国产综合精品| 美女脱光内衣内裤视频久久网站| 中文字幕一区二区在线观看| 91精品国产乱| 99精品久久99久久久久| 精品影院一区二区久久久| 国产精品久久久久9999吃药| 日韩午夜激情视频| 99riav久久精品riav| 国产一区在线观看视频| 五月激情综合婷婷| 亚洲丝袜自拍清纯另类| 久久久久久99精品| 51精品视频一区二区三区| 91福利在线播放|