That was it. Thanks guys! On Fri, May 10, 2013 at 5:24 PM, Craig DeForest <[email protected]> wrote: > Your Amat [2,3] should be [3,2] (m and q are swapped). Also, I don't think > your bvec is quite right -- the (active) q dim has size 1 and there's a > thread dim of size 2. > > On May 10, 2013, at 3:16 PM, Mark Grimes <[email protected]> wrote: > >> I am attempting to create an PDL interface to a Fortran function that >> solves quadratic programming problems. I've made a fair bit of >> progress getting up the PDL::PP, Fortran and XS learning curve, but I >> am currently stumped by follow error message: >> >> Error in qpgen2:Wrong dims >> at .../PDL-QP/blib/lib/PDL/Opt/QP.pm line 148. >> PDL::Opt::QP::qp('PDL=SCALAR(0x10082e280)', >> 'PDL=SCALAR(0x1008362e0)', 'PDL=SCALAR(0x100891188)', >> 'PDL=SCALAR(0x1008360e8)', 'PDL=SCALAR(0x10082e3b8)') >> >> I was able to trace it to a line in the .xs file, but I'm still at a >> loss. I assume it is telling me that I'm calling the pp_def'd function >> qpgen2 with the wrong arguments. I think the relevant code is: >> >> pp_def("qpgen2", >> Pars => 'dmat(m,m); dvec(m); int fddmat(); int n(); >> [o]sol(m); [o]lagr(q); [o]crval(); >> amat(m,q); bvec(q); int fdamat(); int q(); int meq(); >> int [o]iact(q); int [o]nact(); >> int [o]iter(s=2); [t]work(z); int [io]ierr(); >> ', .... >> >> and the call: >> >> my $res = qpgen2( >> $Dmat, # isPDL: Double D [3,3] >> $dvec, # isPDL: Double D [3] >> $n, # isPDL: Double D [] >> $n, # isPDL: Double D [] >> $sol, # isPDL: Double D [3] >> $lagr, # isPDL: Double D [2] >> $crval, # isPDL: Double D [] >> $Amat, # isPDL: Double D [2,3] >> $bvec, # isPDL: Double D [1,2] >> $n, # isPDL: Double D [] >> $q, # isPDL: Double D [] >> $meq, # isPDL: Double D [] >> $iact, # isPDL: Double D [] >> $nact, # isPDL: Double D [] >> $iter, # isPDL: Double D [2] >> $work, # isPDL: Double D [18] >> $ierr, # isPDL: Double D [] >> ); >> >> I've uploaded the project to github, if anyone would like dig deeper: >> >> https://github.com/mvgrimes/pdl-opt-qp >> >> Thanks, >> Mark >> >> _______________________________________________ >> Perldl mailing list >> [email protected] >> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl >> >
_______________________________________________ Perldl mailing list [email protected] http://mailman.jach.hawaii.edu/mailman/listinfo/perldl
