[eigen] Specialized QR |
[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]
I did some work on QR module to do some specialized version for small matrices. My idea is to introduce a class qr_compute, which does all the work (QR decomposition, matrixQ, matrixR, rank, solve,...) whit respect to the choosen algorithm (Householder, Gram-Schmidt or Givens). The QR class were only a front-end to this class. In this way, we don't need to specialize the QR, but only the backend qr_compute class. enum { Algorithm = rows < 3 ? 1 : ((rows < 15 && cols < 15) ? 2 : 3) }; };
The others public members (i.e.: dimensioOfKernel(), isInjective(), isSurjective(), isInvertible()) don't need to use the compute_ member. If you mean that this work is useful, I can begin to code the three specialized versions of qr_compute, i.e.: write a simply (hard-coded) givens rotation for 2x* matrices, re-code the householder orthogonalization by move the code from QR to qr_compute and write a Gram-Schmidt orthogonalization. |
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |