⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mexchol.c

📁 这事很不错的半定规划matlab软件,this is the important software of SDP.
💻 C
字号:
/*************************************************************************   U = mexchol(X)         X = U'*U *  Computes upper-triangular Cholesky factor U of full symmetric positive*  definite matrix X. **  Uses LAPACK routine DPOTRF************************************************************************/#include "mex.h"#include <math.h>/********************************************************************  PROCEDURE mexFunction - Entry for Matlab*********************************************************************/void mexFunction(const int nlhs, mxArray *plhs[],                 const int nrhs, const mxArray *prhs[]){  int n;   double *x, *info;  char   *chn;     int    infotmp=0, j,k,jn;     if(nrhs < 1)    mexErrMsgTxt("mexchol: requires 1 input arguments.");  if(nlhs > 1)    mexErrMsgTxt("mexchol: requires 1 output argument.");  x = mxGetPr(prhs[0]);  if (mxIsSparse(prhs[0]))     mexErrMsgTxt("Sparse X not supported by mexchol.");  n = mxGetM(prhs[0]);   if ( n != mxGetN(prhs[0]) )     mexErrMsgTxt("X should be square.");  plhs[0] = mxCreateDoubleMatrix(1,1,mxREAL);    info = mxGetPr(plhs[0]);   chn = "U";  dpotrf(chn, &n, x, &n, &infotmp);   info[0] = (double)infotmp;   /***** make lower triangular part of x zero *****/   for (j=0; j<n; j++) {     jn = j*n;     for (k=j+1; k<n; k++) { x[k+jn] = 0; }   }  return;}/************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -