Re: [eigen] Recursive Matrices in Eigen |

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]

*To*: eigen@xxxxxxxxxxxxxxxxxxx*Subject*: Re: [eigen] Recursive Matrices in Eigen*From*: Christoph Hertzberg <chtz@xxxxxxxxxxxxxxxxxxxxxxxx>*Date*: Wed, 29 May 2019 18:09:24 +0200*Dkim-signature*: v=1; a=rsa-sha256; c=simple/simple; d=uni-bremen.de; s=dkim; t=1559146164; i=@uni-bremen.de; bh=q5F/99d2py3k9B+fhoUU/HseI0GqT0Aby8TIOYt6bUA=; h=To:References:From:Date:In-Reply-To; b=Z5oYNuu8/OcTEUnW3IEHkjUxTLfUgHEmZMO3V7wUj3pMX8xduVNQdt6lpOdyFgjhR HnaL354YqUTcdq6xHuI+AAfznmGMalRGMKY4P286bi/HuRk2gFdEeohh2an0WW86nZ gA1+NnIhelN7njP3AnuKW0T7D74T44Y5A9Fh6YbI=

Hi! On 29/05/2019 10.21, Darius Rueckert wrote:

Hello everyone,for the past months we have been working on making recursive matriceswork in eigen. Here is an example:SparseMatrix<Matrix<double,4,3>> A; Matrix<Matrix<double,4,1>,-1,1> x,b; x = A * b;

We've had some more or less stable support for [Sparse]Matrix<Array<...> >

The obvious advantage is that we get support for block matrices on alleigen types for "free" ( DiagonalMatrix,TriangularView,LDLT,...). Aftersome testing, the performance appeared to be "better than expected" andwe have decided to write a paper on how to apply recursive matrices onnon-linear least squares problems. The paper is accepted and will bepublished at HPG in July. Here is the current version:https://cloud9.cs.fau.de/index.php/s/UINyrgAUtaAiWvR

That's nice! (Only glanced through your paper so far)

Unfortunately there are two limitations which I was not able to fix.1. All inner matrix types require an additional wrapper class, which Ihave called "MatrixScalar". The matrix A from above is then:SparseMatrix<MatrixScalar<Matrix<double,4,3>>> A;2. Some eigen kernels do not work directly. For example, some operationsuse the function scaleAndAddTo(..., Scalar(1)), which does not work if"Scalar" is a recursive matrix type. To fix this I had to specialize alot of eigen kernels, which creates redundancy with only minor changes.

So here are my questions to you: What do you think about this idea?Do you think a deep integration into eigen would be possible? (Withoutrecursive specializations and without "MatrixScalar" class)

The code can be found here: https://github.com/darglein/EigenRecursive Example for sparse block-matrices:https://github.com/darglein/EigenRecursive/blob/master/samples/sparseOperators/sparseOperators_main.cppWith best regards, Darius

-- Dr.-Ing. Christoph Hertzberg Besuchsadresse der Nebengeschäftsstelle: DFKI GmbH Robotics Innovation Center Robert-Hooke-Straße 5 28359 Bremen, Germany Postadresse der Hauptgeschäftsstelle Standort Bremen: DFKI GmbH Robotics Innovation Center Robert-Hooke-Straße 1 28359 Bremen, Germany Tel.: +49 421 178 45-4021 Zentrale: +49 421 178 45-0 E-Mail: christoph.hertzberg@xxxxxxx Weitere Informationen: http://www.dfki.de/robotik ------------------------------------------------------------- Deutsches Forschungszentrum für Künstliche Intelligenz GmbH Trippstadter Strasse 122, D-67663 Kaiserslautern, Germany Geschäftsführung: Prof. Dr. Jana Koehler (Vorsitzende) Dr. Walter Olthoff Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes Amtsgericht Kaiserslautern, HRB 2313 -------------------------------------------------------------

**References**:**[eigen] Recursive Matrices in Eigen***From:*Darius Rueckert

**Messages sorted by:**[ date | thread ]- Prev by Date:
**Re: [eigen] new project using Eigen** - Next by Date:
**[eigen] 3.3 branch state** - Previous by thread:
**[eigen] Recursive Matrices in Eigen** - Next by thread:
**[eigen] new project using Eigen**

Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |