经管之家:Do the best economic and management education!
RenMin University of China .
Daniel tulips liu.
dertransp.c
/* Inputs: prhs[0] = dA/dx corresponding to a matrix A of size (nrow x ncol)
* prhs[1] = nrow of matrix A
* Outputs: plhs[0] = dA'/dx corresponding to transposed matrix A'
* Method: This is just a row permutation of dA/dx
*
* by SeHyoun Ahn, Aug 2016
*/
#include "mex.h"
#include <stdlib.h>
#include <time.h>
void insertsort(mwIndex *irs, double *prs, mwSize n) {
mwIndex i,j;
mwIndex swapind;
double swapval;
for (i=1; i<n; ++i) {
swapind = irs[i];
swapval = prs[i];
for (j=i; j>=0;--j) {
if (j==0) {
irs[j] = swapind;
prs[j] = swapval;
break;
}
else if (swapind<irs[j-1]) {
irs[j] = irs[j-1];
prs[j] = prs[j-1];
}
else {
irs[j] = swapind;
prs[j] = swapval;
break;
}
}
}
};
/* It uses in-place quicksort to get from unsorted CSC to sorted CSC format*/
void quicksort(mwIndex* irs, double* prs, mwSize n) {
mwIndex front, back, pivot;
mwIndex swapind;
double swapval;
pivot = rand()%n;
front = rand()%n;
back = rand()%n;
if (irs[front]>irs[back]) {
if (irs[pivot]>irs[front]) {
pivot = irs[front];
swapval = prs[front];
irs[front] = irs[0];
prs[front] = prs[0];
irs[0] = pivot;
prs[0] = swapval;
}
else if (irs[pivot]>irs[back]) {
front = irs[pivot];
swapval = prs[pivot];
irs[pivot] = irs[0];
prs[pivot] = prs[0];
irs[0] = front;
prs[0] = swapval;
pivot = front;
}
else {
pivot = irs[back];
swapval = prs[back];
irs[back] = irs[0];
prs[back] = prs[0];
irs[0] = pivot;
prs[0] = swapval;
}
}
else {
if (irs[pivot]>irs[back]) {
pivot = irs[back];
swapval = prs[back];
irs[back] = irs[0];
prs[back] = prs[0];
irs[0] = pivot;
prs[0] = swapval;
}
else if (irs[pivot]>irs[front]) {
back = irs[pivot];
swapval = prs[pivot];
irs[pivot] = irs[0];
prs[pivot] = prs[0];
irs[0] = back;
prs[0] = swapval;
pivot = back;
}
else {
pivot = irs[front];
swapval = prs[front];
irs[front] = irs[0];
prs[front] = prs[0];
irs[0] = pivot;
prs[0] = swapval;
}
}
front = 1;
back = n-1;
while (front < back) {
if (irs[front] < pivot) {
++front;
}
else if (irs[back] > pivot) {
--back;
}
else {
swapind = irs[back];
swapval = prs[back];
irs[back] = irs[front];
prs[back] = prs[front];
irs[front]= swapind;
prs[front]= swapval;
++front;
}
}
if (irs[front]<pivot) {
swapind = irs[front];
swapval = prs[front];
irs[front] = irs[0];
prs[front] = prs[0];
irs[0] = swapind;
prs[0] = swapval;
if (front > 17)
quicksort(&irs[0],&prs[0],front);
else if (front > 1)
insertsort(&irs[0],&prs[0],front);
if ((n-1-front) > 17)
quicksort(&irs[front+1],&prs[front+1],n-1-front);
else if ((n-1-front) > 1)
insertsort(&irs[front+1],&prs[front+1],n-1-front);
}
else {
swapind = irs[front-1];
swapval = prs[front-1];
irs[front-1] = irs[0];
prs[front-1] = prs[0];
irs[0] = swapind;
prs[0] = swapval;
if (front-1 > 17) {
quicksort(&irs[0],&prs[0],front-1);
}
else if (front-1 > 1) {
insertsort(&irs[0],&prs[0],front-1);
}
if (n-front > 17) {
quicksort(&irs[front],&prs[front],n-front);
}
else if (n-front > 1) {
insertsort(&irs[front],&prs[front],n-front);
}
}
};
void mexFunction(int nlhs, mxArray *plhs[],int nrhs,const mxArray *prhs[])
{
mwSize nrow, ncol, nderiv,nnz;
mwIndex *irsA, *jcsA;
double *prA;
mwIndex *lirs, *ljcs;
double *lpr;
mwIndex i,j,tmp;
srand(time(NULL));
/* Read In Sparse Matrix */
nderiv = mxGetN(prhs[0]);
ncol = mxGetM(prhs[0]);
irsA = mxGetIr(prhs[0]);
jcsA = mxGetJc(prhs[0]);
prA = mxGetPr(prhs[0]);
nnz = jcsA[nderiv];
/* Read in the number of rows in the Matrix A */
nrow = mxGetScalar(prhs[1]);
ncol = ncol/nrow;
/* Prepare Output Matrix */
plhs[0] = mxCreateSparse(nrow*ncol, nderiv, nnz, mxREAL);
lirs = mxGetIr(plhs[0]);
ljcs = mxGetJc(plhs[0]);
lpr = mxGetPr(plhs[0]);
ljcs[0] = 0;
for (i=0; i<nderiv; ++i) {
/* Compute the new row Index */
for (j = jcsA[i]; j<jcsA[i+1]; ++j){
lirs[j] = (irsA[j]%nrow)*ncol + irsA[j]/nrow;
lpr[j] = prA[j];
}
ljcs[i+1] = jcsA[i+1];
/* Sort to ensure sorted CSC format */
if ( (ljcs[i+1] - ljcs[i]) > 17) {
quicksort(&lirs[ljcs[i]], &lpr[ljcs[i]], ljcs[i+1]-ljcs[i]);
}
else if ( (ljcs[i+1] - ljcs[i]) > 1) {
insertsort(&lirs[ljcs[i]], &lpr[ljcs[i]], ljcs[i+1]-ljcs[i]);
}
}
}
matvalXmatder
/* Inputs: prhs[0] = [m x n] matrix A
* prhs[1] = [(m*l) x nderiv] matrix of dB'/dx
* Outputs: plhs[0] = [(n*l) x nderiv] matrix corresponding to (A*dB/dx)
*
* Note: To get dB/dx to dB'/dx, you can call dertransp(dB/dx,m) prior to
* calling matvalXmatder
*
* Method: This multiplication does on the fly insert-sort. However,
*
* by SeHyoun Ahn, Aug 2016
*/
#include "mex.h"
void mexFunction(int nlhs, mxArray *plhs[],int nrhs,const mxArray *prhs[])
{
mwIndex n, m, l, nderiv,nnz, counter;
/* Read In A */
mwIndex *irsA, *jcsA;
double *prA;
m = mxGetN(prhs[0]);
n = mxGetM(prhs[0]);
irsA = mxGetIr(prhs[0]);
jcsA = mxGetJc(prhs[0]);
prA = mxGetPr(prhs[0]);
/* Read in dB'/dx */
mwIndex *irsB, *jcsB;
double *prB;
nderiv = mxGetN(prhs[1]);
l = mxGetM(prhs[1]);
irsB = mxGetIr(prhs[1]);
jcsB = mxGetJc(prhs[1]);
prB = mxGetPr(prhs[1]);
l = l/m;
/* Prepare Output Matrix */
mwIndex *lirs, *ljcs;
double *lpr;
nnz = jcsB[nderiv] + 1;
plhs[0] = mxCreateSparse(n*l, nderiv, nnz, mxREAL);
lirs = mxGetIr(plhs[0]);
ljcs = mxGetJc(plhs[0]);
lpr = mxGetPr(plhs[0]);
mwIndex i,j, cloc, cir, k,o,p;
mwSignedIndex pos;
ljcs[0] = 0;
counter = 0;
/* Multiplication Loop */
for (i=0; i<nderiv; ++i) {
cloc = counter;
for (j=jcsB[i]; j<jcsB[i+1]; ++j) {
pos = irsB[j]/l;
for (k=jcsA[pos]; k<jcsA[pos+1]; ++k) {
cir = (irsB[j]%l)*n + irsA[k];
if (counter == cloc) {
if (counter > nnz-1) {
nnz = ((nnz+1)*(nderiv+1)/(i+1));
lirs = mxRealloc(lirs, nnz*sizeof(*lirs));
lpr = mxRealloc(lpr, nnz*sizeof(*lpr));
}
lirs[counter] = cir;
lpr[counter] = prB[j]*prA[k];
++counter;
}
else {
for (o = counter; o>cloc; --o) {
if (lirs[o-1] == cir) {
lpr[o-1] += prB[j]*prA[k];
break;
}
else if (lirs[o-1] < cir) {
if (counter > nnz-1) {
nnz = ((nnz+1)*(nderiv+1)/(i+1));
lirs = mxRealloc( lirs, nnz*sizeof(*lirs));
lpr = mxRealloc( lpr, nnz*sizeof(*lpr));
}
for (p=counter; p>o; --p) {
lirs[p] = lirs[p-1];
lpr[p] = lpr[p-1];
}
lirs[o] = cir;
lpr[o] = prB[j]*prA[k];
++counter;
break;
}
else if (o == cloc+1) {
if (counter > nnz-1) {
nnz = ((nnz+1)*(nderiv+1)/(i+1));
lirs = mxRealloc( lirs, nnz*sizeof(*lirs));
lpr = mxRealloc( lpr, nnz*sizeof(*lpr));
}
for (p=counter; p>cloc; --p) {
lirs[p] = lirs[p-1];
lpr[p] = lpr[p-1];
}
lirs[cloc] = cir;
lpr[cloc] = prB[j]*prA[k];
++counter;
}
}
}
}
}
ljcs[i+1]=counter;
}
/* Prepare Output */
if (counter > 0) {
lirs = mxRealloc(lirs, counter*sizeof(*lirs));
lpr = mxRealloc(lpr, counter*sizeof(*lpr));
mxSetIr(plhs[0], lirs);
mxSetPr(plhs[0], lpr);
mxSetNzmax(plhs[0], counter+1);
}
}
%% Simple Example %
f1(x,y,z)=x2+cos(y)∗(x+z)+ez
f2(x,y,z)=yz at (x,y,z)=(1,2,3)
%% Examples of Using Automatic Differentiation
% by SeHyoun Ahn, June 2016
%%
%%
% An html file properly marked up comments is avaiable at <http://www.princeton.edu/~sehyouna/EXAMPLE_AutoDiff_Syntax.html>
% Add folder containing <@XXX>. In this case, it is in the parent folder.
addpath('../');
%% Simple Example
% \$\$f_1(x,y,z) = x^2+cos(y)*(x+z)+e^z\$\$
% \$\$f_2(x,y,z) = yz\$\$
% at \$(x,y,z) = (1,2,3)\$
v = myAD([1;2;3]);
x=v(1); y=v(2); z=v(3);
f=[x^2+cos(y)*(x+z)+exp(z);
y*z];
disp('The function evaluated at (1,2,3) is');
disp(getvalues(f));
disp('the derivatives evaluated at (1,2,3) are');
disp(full(getderivs(f)));
%% Example of Matrix Vector Multiplication
% \$\$ f = \begin{bmatrix} x & y & 0 \\ y& y& z \\ 0 & z & z
% \end{bmatrix} \begin{bmatrix}x\\y\\z \end{bmatrix} =
% \begin{bmatrix} x^2+y^2\\ xy+y^2+z^2 \\ yz+z^2\end{bmatrix} \$\$
% evaluated at \$(x,y,z)=(1,2,3)\$
v=myAD([1:3]');
A=spdiags(v,0,3,3)+spdiags(v(2:3),-1,3,3)+spdiags(v,1,3,3);
f=A*v;
disp('f is');
disp(getvalues(f));
disp('The Jacobian of f evaluated at (1,2,3) is')
disp(full(getderivs(f)));
%%
% If you plan to use matrix multiplication in high dimensions,
% refer to the documentation to compile c-files for speed gains
%% Example of Using fsolve
% Given an implicitly defined variable \$z\$ from the relationship
% \$\$x^2+y^4+x\cdot (z-0.2)\cdot e^z=5 \$\$ solving for \$\frac{dz}{dx}\$ and \$\frac{dz}{dy}\$ evaluated at \$(x,y)=(1,1)\$
% Refer to README.pdf for syntactic requirement on definition of functions.
% x = v(2), y = v(3), z = v(1)
func = @(v) v(2).^2+v(3).^4+v(2)*(v(1)-0.2)*exp(v(1))-5;
v0 = myAD([1;1]); % Initialize x and y
z=fsolve(func, 0.5 ,v0); % Refer to documentation for syntax
disp('Solution of z is given by');
disp(getvalues(z));
disp('The derivatives at (x,y)=(1,1) are');
disp(getderivs(z));
compile_mex_files
Verbose mode is on.
... Looking for compiler 'MinGW64 Compiler (C)' ...
... Looking for environment variable 'MW_MINGW64_LOC' ...Yes ('C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset').
... Looking for file 'C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc.exe' ...Yes.
... Looking for folder 'C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset' ...Yes.
Found installed compiler 'MinGW64 Compiler (C)'.
Set PATH = C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin;D:\programinstalls\Polyspace\R2020a\extern\include\win64;D:\programinstalls\Polyspace\R2020a\extern\include;D:\programinstalls\Polyspace\R2020a\simulink\include;D:\programinstalls\Polyspace\R2020a\lib\win64;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\bin;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.2\libnvvp;D:\programinstalls\Java\JDK14\bin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath";";C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;D:\PSTools;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;D:\CTEX\UserData\miktex\bin;D:\CTEX\MiKTeX\miktex\bin;D:\CTEX\CTeX\ctex\bin;D:\CTEX\CTeX\cct\bin;D:\CTEX\CTeX\ty\bin;D:\CTEX\Ghostsc ript\gs9.05\bin;D:\CTEX\GSview\gsview;D:\CTEX\WinEdt";D:\programinstalls\Polyspace\R2020a\runtime\win64;D:\programinstalls\Polyspace\R2020a\bin;D:\programinstalls\MATLAB\R2018b\runtime\win64;D:\programinstalls\MATLAB\R2018b\bin;D:\programinstalls\Polyspace\R2020a\polyspace\bin;C:\Users\tulipsliu\.dnx\bin;C:\Program Files\Microsoft DNX\Dnvm\;C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\;C:\Program Files\NVIDIA Corporation\Nsight Compute 2019.5.0\;D:\programinstalls\Git\cmd;C:\Users\tulipsliu\anaconda3;C:\Users\tulipsliu\anaconda3\Library\mingw-w64\bin;C:\Users\tulipsliu\anaconda3\Library\usr\bin;C:\Users\tulipsliu\anaconda3\Library\bin;C:\Users\tulipsliu\anaconda3\sc ripts;C:\Users\tulipsliu\AppData\Local\Microsoft\WindowsApps;C:\Users\tulipsliu\AppData\Roaming\TinyTeX\bin\win32;
Set INCLUDE = C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\include;;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\include;;
Set LIB = C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\lib;;C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\lib;;
Set MW_TARGET_ARCH = win64;win64;
Set LIBPATH = D:\programinstalls\Polyspace\R2020a\extern\lib\win64;D:\programinstalls\Polyspace\R2020a\extern\lib\win64;
Options file details
-------------------------------------------------------------------
Compiler location: C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset
Options file: C:\Users\tulipsliu\AppData\Roaming\MathWorks\MATLAB\R2020a\mex_C_win64.xm l
CMDLINE2 : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc -m64 -Wl,--no-undefined -shared -static -s -Wl,"D:\programinstalls\Polyspace\R2020a/extern/lib/win64/mingw64/exportsmexfileversion.def" C:\Users\TULIPS~1\AppData\Local\Temp\mex_31013047926362_8484\valXder.obj C:\Users\TULIPS~1\AppData\Local\Temp\mex_31013047926362_8484\c_mexapi_version.obj -L"D:\programinstalls\Polyspace\R2020a\extern\lib\win64\mingw64" -llibmx -llibmex -llibmat -lm -llibmwlapack -llibmwblas -o valXder.mexw64
CC : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc
COMPILER : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc
DEFINES : -DMX_COMPAT_64 -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE
MATLABMEX : -DMATLAB_MEX_FILE
CFLAGS : -fexceptions -fno-omit-fr ame-pointer
INCLUDE : -I"D:\programinstalls\Polyspace\R2020a/extern/include" -I"D:\programinstalls\Polyspace\R2020a/simulink/include" -I"D:\programinstalls\Polyspace\R2020a/extern\lib\win64\mingw64"
COPTIMFLAGS : -O2 -fwrapv -DNDEBUG
CDEBUGFLAGS : -g
LD : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc
LINKER : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc
LDTYPE : -shared -static
LDFLAGS : -m64 -Wl,--no-undefined
LINKEXPORT : -Wl,"D:\programinstalls\Polyspace\R2020a/extern/lib/win64/mingw64/mexFunction.def"
LINKEXPORTVER : -Wl,"D:\programinstalls\Polyspace\R2020a/extern/lib/win64/mingw64/exportsmexfileversion.def"
LIBLOC : D:\programinstalls\Polyspace\R2020a\extern\lib\win64\mingw64
LINKLIBS : -L"D:\programinstalls\Polyspace\R2020a\extern\lib\win64\mingw64" -llibmx -llibmex -llibmat -lm -llibmwlapack -llibmwblas
LDOPTIMFLAGS : -s
LDDEBUGFLAGS : -g
OBJEXT : .obj
LDEXT : .mexw64
SETENV : set COMPILER=C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc
set CXXCOMPILER=C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++
set COMPFLAGS=-c -fexceptions -fno-omit-fr ame-pointer -DMX_COMPAT_64 -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -DMATLAB_MEX_FILE
set CXXCOMPFLAGS=-c -fexceptions -fno-omit-fr ame-pointer -std=c++11 -DMX_COMPAT_64 -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -DMATLAB_MEX_FILE
set OPTIMFLAGS=-O2 -fwrapv -DNDEBUG
set DEBUGFLAGS=-g
set LINKER=C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc
set CXXLINKER=C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\g++
set LINKFLAGS=-m64 -Wl,--no-undefined -shared -static -L"D:\programinstalls\Polyspace\R2020a\extern\lib\win64\mingw64" -llibmx -llibmex -llibmat -lm -llibmwlapack -llibmwblas -Wl,"D:\programinstalls\Polyspace\R2020a/extern/lib/win64/mingw64/mexFunction.def"
set LINKDEBUGFLAGS=-g
set NAME_OUTPUT=-o "%OUTDIR%%MEX_NAME%%MEX_EXT%"
MINGWROOT : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset
MATLABROOT : D:\programinstalls\Polyspace\R2020a
ARCH : win64
SRC : "E:\DSGEstudio\ReviewofEconomicDynamics\hadsge-master\MATLABAutoDiff-master\@myAD\private\valXder.c";"D:\programinstalls\Polyspace\R2020a\extern\version\c_mexapi_version.c"
OBJ : C:\Users\TULIPS~1\AppData\Local\Temp\mex_31013047926362_8484\valXder.obj;C:\Users\TULIPS~1\AppData\Local\Temp\mex_31013047926362_8484\c_mexapi_version.obj
OBJS : C:\Users\TULIPS~1\AppData\Local\Temp\mex_31013047926362_8484\valXder.obj C:\Users\TULIPS~1\AppData\Local\Temp\mex_31013047926362_8484\c_mexapi_version.obj
SRCROOT : E:\DSGEstudio\ReviewofEconomicDynamics\hadsge-master\MATLABAutoDiff-master\@myAD\private\valXder
DEF : C:\Users\TULIPS~1\AppData\Local\Temp\mex_31013047926362_8484\valXder.def
EXP : "valXder.exp"
LIB : "valXder.lib"
EXE : valXder.mexw64
ILK : "valXder.ilk"
MANIFEST : "valXder.mexw64.manifest"
TEMPNAME : valXder
EXEDIR :
EXENAME : valXder
COMPFLAGS : -O2 -ftree-vectorize -ftree-vectorize-verbose=7 -fopt-info-missed -Wall
OPTIM : -O2 -fwrapv -DNDEBUG
LINKOPTIM : -s
CMDLINE1_0 : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc -c -DMX_COMPAT_64 -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"D:\programinstalls\Polyspace\R2020a/extern/include" -I"D:\programinstalls\Polyspace\R2020a/simulink/include" -I"D:\programinstalls\Polyspace\R2020a/extern\lib\win64\mingw64" -fexceptions -fno-omit-fr ame-pointer -O2 -fwrapv -DNDEBUG "E:\DSGEstudio\ReviewofEconomicDynamics\hadsge-master\MATLABAutoDiff-master\@myAD\private\valXder.c" -o C:\Users\TULIPS~1\AppData\Local\Temp\mex_31013047926362_8484\valXder.obj
CMDLINE1_1 : C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc -c -DMX_COMPAT_64 -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"D:\programinstalls\Polyspace\R2020a/extern/include" -I"D:\programinstalls\Polyspace\R2020a/simulink/include" -I"D:\programinstalls\Polyspace\R2020a/extern\lib\win64\mingw64" -fexceptions -fno-omit-fr ame-pointer -O2 -fwrapv -DNDEBUG "D:\programinstalls\Polyspace\R2020a\extern\version\c_mexapi_version.c" -o C:\Users\TULIPS~1\AppData\Local\Temp\mex_31013047926362_8484\c_mexapi_version.obj
-------------------------------------------------------------------
Building with 'MinGW64 Compiler (C)'.
C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc -c -DMX_COMPAT_64 -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"D:\programinstalls\Polyspace\R2020a/extern/include" -I"D:\programinstalls\Polyspace\R2020a/simulink/include" -I"D:\programinstalls\Polyspace\R2020a/extern\lib\win64\mingw64" -fexceptions -fno-omit-fr ame-pointer -O2 -fwrapv -DNDEBUG "E:\DSGEstudio\ReviewofEconomicDynamics\hadsge-master\MATLABAutoDiff-master\@myAD\private\valXder.c" -o C:\Users\TULIPS~1\AppData\Local\Temp\mex_31013047926362_8484\valXder.obj
C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc -c -DMX_COMPAT_64 -DMATLAB_DEFAULT_RELEASE=R2017b -DUSE_MEX_CMD -m64 -DMATLAB_MEX_FILE -I"D:\programinstalls\Polyspace\R2020a/extern/include" -I"D:\programinstalls\Polyspace\R2020a/simulink/include" -I"D:\programinstalls\Polyspace\R2020a/extern\lib\win64\mingw64" -fexceptions -fno-omit-fr ame-pointer -O2 -fwrapv -DNDEBUG "D:\programinstalls\Polyspace\R2020a\extern\version\c_mexapi_version.c" -o C:\Users\TULIPS~1\AppData\Local\Temp\mex_31013047926362_8484\c_mexapi_version.obj
C:\ProgramData\MATLAB\SupportPackages\R2020a\3P.instrset\mingw_w64.instrset\bin\gcc -m64 -Wl,--no-undefined -shared -static -s -Wl,"D:\programinstalls\Polyspace\R2020a/extern/lib/win64/mingw64/exportsmexfileversion.def" C:\Users\TULIPS~1\AppData\Local\Temp\mex_31013047926362_8484\valXder.obj C:\Users\TULIPS~1\AppData\Local\Temp\mex_31013047926362_8484\c_mexapi_version.obj -L"D:\programinstalls\Polyspace\R2020a\extern\lib\win64\mingw64" -llibmx -llibmex -llibmat -lm -llibmwlapack -llibmwblas -o valXder.mexw64
Error using mex
C:/ProgramData/MATLAB/SupportPackages/R2020a/3P.instrset/mingw_w64.instrset/bin/../lib/gcc/x86_64-w64-mingw32/6.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe:
cannot open output file valXder.mexw64: Permission denied
collect2.exe: error: ld returned 1 exit status
Error in compile_mex_files (line 2)
mex -v -largeArrayDims COMPFLAGS='-O2 -ftree-vectorize -ftree-vectorize-verbose=7 -fopt-info-missed -Wall' valXder.c;
Daneil’s Computer ,the MATLAB set the MinGW 64-bit C++ compiler .
Download from MATHWORK company
>> mex -setup
MEX configured to use 'MinGW64 Compiler (C)' for C language compilation.
To choose a different language, select one from the following:
mex -setup C++
mex -setup FORTRAN
MEX configured to use 'MinGW64 Compiler (C++)' for C++ language compilation.
>>
*** Yours *** Daniel tulips liu.
2020/06/08
扫码加好友,拉您进群



收藏
