Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
NCTM or The Math Forum.


Yong
Posts:
1
Registered:
10/2/13


Re: 64bits and memory problem
Posted:
Oct 2, 2013 5:39 AM


"James " <hynese@cs.tcd.ie> wrote in message <hif89a$p3q$1@fred.mathworks.com>... > "Shiguo " <jiangshiguo@gmail.com> wrote in message <he4f39$c64$1@fred.mathworks.com>... > > When I was using svmtrain in libsvm. I got this same problem. I write the software author (ChihJen Lin), he said that we need to modify make.m, add largeArrayDims on 64bit machines. So we need: > > > > mex O largeArrayDims ... > > > > now the make file is like this: > > > > mex O largeArrayDims c svm.cpp > > mex O largeArrayDims c svm_model_matlab.c > > mex O largeArrayDims svmtrain.c svm.obj svm_model_matlab.obj > > mex O largeArrayDims svmpredict.c svm.obj svm_model_matlab.obj > > mex O largeArrayDims libsvmread.c > > mex O largeArrayDims libsvmwrite.c > > > > It fixed the problem. Enjoy~ > > > > P.S., the following FAQ says about the x64 compiler when installing visual studio c. > > > > Q: On 64bit Windows I compile the MATLAB interface without problem, but why errors occur while running it? > > > > If you use Microsoft Visual Studio, probabally it is not properly installed. See the explanation here. > > http://www.mathworks.com/support/compilers/R2009b/win64.html;jsessionid=Ls87LF1JH1RnLp18kQdqtzvQGvw29Q4w26dJJn9JpzwZxCGNN7T4!1681277526#n7 > > I was originally getting this error: > "Function "mxGetIr_700" is obsolete in file "compat32.cpp", line 246. > (64bit mex files using sparse matrices must be rebuilt with the "largeArrayDims" option. ...)" > > But I've still got this problem, even when I compile my GibbsSamplerAT.cpp file with the largeArrayDims flag. > > GibbsSamplerAT.cpp: In function ‘void mexFunction(int, mxArray**, int, const mxArray**)’: > GibbsSamplerAT.cpp:265: error: cannot convert ‘mwIndex*’ to ‘int*’ in assignment > GibbsSamplerAT.cpp:266: error: cannot convert ‘mwIndex*’ to ‘int*’ in assignment > GibbsSamplerAT.cpp:385: error: cannot convert ‘mwIndex*’ to ‘int*’ in assignment > GibbsSamplerAT.cpp:386: error: cannot convert ‘mwIndex*’ to ‘int*’ in assignment > GibbsSamplerAT.cpp:417: error: cannot convert ‘mwIndex*’ to ‘int*’ in assignment > GibbsSamplerAT.cpp:418: error: cannot convert ‘mwIndex*’ to ‘int*’ in assignment > > Here are lines 265 and 266: > irad = mxGetIr(prhs[2]); > jcad = mxGetJc(prhs[2]); > > , where 'irad' and 'jcad' are defined as *int. I tried casting them to mwIndex*, but got further errors. > > Someone at this link http://www.stanford.edu/~dgleich/programs/matlab_bgl/faq.html said to "update to Matlab BGL 2.1 which includes precompiled files for 64bit linux with support for largeArrayDims included". I have no idea how to do this. I downloaded the BGL, but I have no idea how to install it. > > I'm totally stumped. Any help much appreciated. If really works for the win64 + matlab 64bit platform, Thanks a lot.



