Hi all, I am not sure the best way to describe the question, but here goes: I am implementing a method that derives transition matrices using quadratic optimization and population data that are input as vectors [1]. For the first implementation, I use Octave's qp() routine to do the optimization, but it isn't able to handle large data inputs or more complex objectives. I think I want to code my optimizations in IPOPT, but all the examples I found have are written indexing matrices and vectors as if they are simple C arrays. I would like to use IPOPT C++ code, but using BLAS and LAPACK to hide some of the details of matrix multiplication etc. (I want to be able to formulated callback functions for IPOPT that form the objective etc to be optimized, and these rely on a lot of matrix multiplication of large sparse matrices.) I would also like to use sparse matrix libraries to deal with some of the data size issues. Writing models in AMPL has the same problem  there is no natural way to express matrix multiplication (or other operations), at least that I know of, especially incorporating sparsity. Has anyone done this (interfaced IPOPT and BLAS) or something similar? Any examples anywhere? asked 03 Jan '14, 13:38 forkandwait 
The following is only applicable if you solve convex QPs. At MOSEK we have a tool called Fusion that is aimed at building conic optimization problems. It is vector and matrix orientated and not scalar orientated as traditional modelling languages such as AMPL. Fusion is currently available for Java, MATLAB, .NET and Python. See the manuals at http://mosek.com/resources/doc/ for details. It easy to state state convex quadratic optimization problem as a conic quadratic problem. And many cases it also lead to the best performance compared to solving the problem on the QP form. PS. Normally you feed data into an optimizer. For that you do not need BLAS but the optimizer such as MOSEK might use BLAS internally. So I am not sure why you mention BLAS/LAPACK. At least in BLAS also matrices a simple arrays. answered 03 Jan '14, 16:09 Erling_MOSEK 1
Re needing BLAS: I want to be able to formulated callback functions for IPOPT that form the objective etc to be optimized, and these rely on a lot of matrix multiplication of large sparse matrices. Re MOSEK: I will look at the tool you mentioned  thanks for the link.
(03 Jan '14, 16:14)
forkandwait

Julia has both an IPOPT binding (Ipopt.jl) and has BLAS/LAPLACK baked into the core (so A*B calls BLAS matrix multiply, for example, if A and B are matrices). answered 08 Jan '14, 23:09 Iain Dunning
(09 Jan '14, 04:28)
fbahr ♦
1
Hah embarrassing! That is testing an edge case, used to work though, looking at it now...
(09 Jan '14, 07:39)
Iain Dunning

You might want to ask this in the Ipopt making list as well.
...which is to be found here: http://list.coinor.org/mailman/listinfo/ipopt <ipopt@list.coinor.org>
I hate to subscribe to a mailing list for a single oneoff question, and was hoping someone here knew. All good. I might be able to use Semidefinite programming might suit my shorter term needs, and be consistent with the matrix formulation of the problem.