Hi Tamas,
sorry for the late reply.
1. Does Eigen (or an extension) have a built-in simplex solver, or any
linear programming-related functionality? Or, is any open source
implementation available? (I did some google searches, and found none)
Note really what you're looking for, but somewhat related, I've
quickly adapted a quadradic solver there:
https://dl.dropbox.com/u/260133/QuadProg/eiquadprog.hpp
2. Does Eigen have method for a single pivot operation? Like:
M.pivotOperation(2, 3); If not, then would row-level operations give the
best performance?
You can swap columns or rows:
M.row(i).swap(M.row(j));
M.col(i).swap(M.col(j));
Store the transpositions into a Transpositions<>
(http://eigen.tuxfamily.org/dox-devel/classEigen_1_1Transpositions.html)
that you apply to matrices or vectors, and also convert it into a
PermutationMatrix<>
(http://eigen.tuxfamily.org/dox-devel/classEigen_1_1PermutationMatrix.html).
The file Eigen/src/LU/PartialPivLU.cpp is a good example.
Please keep us informed on your progress, and feel free to ask questions.
Best,
Gael.
And I have to mention that I discovered Eigen some weeks ago, and I liked it
immediately :) It has a really nice API.
Thank you for your answers,
Tamas Bolner