Re: [eigen] fix double-promotion in 3.3 Core/SpecialFunctions.h |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
On 2016-05-05 15:04, Ilja Honkonen wrote:
Looks like boost has this covered:
http://www.boost.org/doc/libs/1_60_0/libs/math/doc/html/math_toolkit/powers/ct_pow.html
This overload would be nice for Eigen types also.
I'm really not sure how often this is needed and I guess this is very
hard to implement optimally, e.g. for big matrices it could be worth to
implementing pow<31>(A) as
A.colPivLu().solve(pow<32>(A));
in case A is invertible.
cf: https://en.wikipedia.org/wiki/Addition-chain_exponentiation
And it gets really complicated if powers are part of bigger expressions,
like for matrix A and vector x
pow<k>(A)*x
might be cheapest to compute by k Matrix-vector products (which is
O(k*n²) before doing any O(n³) matrix products.
Also, for Arrays the exponentiation should happen packet-by-packet if
possible, of course.
But if someone likes to implement that, I would not object integrating
it into Eigen.
Christoph
--
Dipl. Inf., Dipl. Math. Christoph Hertzberg
Universität Bremen
FB 3 - Mathematik und Informatik
AG Robotik
Robert-Hooke-Straße 1
28359 Bremen, Germany
Zentrale: +49 421 178 45-6611
Besuchsadresse der Nebengeschäftsstelle:
Robert-Hooke-Straße 5
28359 Bremen, Germany
Tel.: +49 421 178 45-4021
Empfang: +49 421 178 45-6600
Fax: +49 421 178 45-4150
E-Mail: chtz@xxxxxxxxxxxxxxxxxxxxxxxx
Weitere Informationen: http://www.informatik.uni-bremen.de/robotik