Username Remember Me?
Password   forgot password?
   
   
qld / qp error
Posted: 19 February 2009 11:48 AM   [ Ignore ]  
Newbie
Rank
Total Posts:  2
Joined  2009-02-19

Hi,

First of all: I’m running PRTools 4.1.4 on Matlab R2008a, on a 64 bit Linux machine. I installed PRTools by simply extracting the archive in a directory, and adding that directory to my Matlab path.

Now, when trying to do something simple as:

>> A=gendath([50 50]);
>> 
w=svc(A);

I get:

??? Undefined function or method 'qp' for input arguments of type 'double'.

Error in ==> svo at 104
        v 
qp(DfAblbubp1verbosnegdefnormalize);

Error in ==> svc at 121
                [v
,J,C,nu] svo(+K,y,C,Options);

I guess this points at two issues:
- PRTools tries to use QLD if it is available. In my case, it apparently is not. However, the private subdirectory of the PRTools directory shows QLD mex-files for various platforms, but not for my 64 bit system. The extension that I get when creating my own mex-files on this system is mexa64. Is a version of QLD available for my system?
- If QLD is not available (and if quadprog, which is part of the optimization toolbox isn’t installed, as is the case on my system), PRTools falls back to qp. As it turns out, qp is part of the optimization toolbox as well. The documentation (svcinfo) seems to suggest that quadprog is part of the optimization toolbox, but qp is not.

The quadratic optimisation is controlled by routines SVO and NUSVO. They make use
of one of the following routines, if available:
- QLD.DLL (Windows) or QLD.MEXxxx under Linux
- QUADPROG.M in Matlab’s optimisation toolbox
- Matlab’s QP.M

Any advise on how to proceed?

Thanks!

Koen

[ Edited: 20 February 2009 11:41 AM by kavermeer]
Profile
 
 
Posted: 20 February 2009 03:19 PM   [ Ignore ]   [ # 1 ]  
Administrator
Avatar
RankRankRankRank
Total Posts:  240
Joined  2008-04-26

Hi Koen,

the easiest way is that you compile the QLD MEX yourself on your machine. Please download the source from:
http://prtools.org/files/qld_src.zip

and unzip it. In Matlab, switch to the created qld_src directory and run:

>> mex qld.c qldorg.c

Matlab should build the qld.mex library for your platform. Copy the binary file to your prtools/private directory.

We have decided that the sources will be available by default in the coming PRTools release.

Please let us know if it helps,

Pavel

Profile
 
 
Posted: 20 February 2009 03:48 PM   [ Ignore ]   [ # 2 ]  
Newbie
Rank
Total Posts:  2
Joined  2009-02-19

Hi Pavel,

pavel - 20 February 2009 03:19 PM

the easiest way is that you compile the QLD MEX yourself on your machine. Please download the source from:
http://prtools.org/files/qld_src.zip

and unzip it. In Matlab, switch to the created qld_src directory and run:

>> mex qld.c qldorg.c

OK, I downloaded and compiled it (albeit from the bash prompt, rather than from within Matlab) - seems to work fine.

Looking forward to experiment some more with PRTools!

Best,
Koen

Profile