I am new to Eigen and was using blitz++ for matrix and vector classes until now. Since it is no longer being developed and I liked what I read about eigen, I decided to switch. To start I took one of my standard pieces of code which does an optimization, the cost function mainly involving projection of points. An average optimization of the code using blitz++ takes around 100-200 ms. I converted the code to use Eigen (without making use of any special functions which Eigen offers). I am only using Matrix/Vector storage, matrix products and addition and data access. The Eigen version for the same dataset which takes 120 ms with blitz takes >900secs using Eigen. The results are the same, so my code is correct.
I initially thought there was some step in my code which was especially slow, but on profiling, it looks like it is uniformly slow. For example a simple 4x4 * 4*1 multiplication takes around 0.5msec.
Any suggestions on what might be going wrong, or should I stick with blitz++ ?