Dear all,
1) A few routines were recently added for solving certain classes of
Sylvester, Lyapunov, and algebraic Ricatti equations:
https://github.com/poulson/Elemental/tree/master/include/elemental/control
and they are now both documented and activated in the Python interface.
They are quite simple implementations: the main complexity lies within
computing the matrix sign function of a general square matrix and the
algorithms are taken from Higham's "Functions of Matrices: Theory and
Computation". See
https://github.com/poulson/Elemental/blob/master/include/elemental/lapack-like/Sign.hpp
for the scaled Newton iterations. The beginnings of a Newton-based
spectral divide-and-conquer are here:
https://github.com/poulson/Elemental/blob/master/include/elemental/lapack-like/Schur.hpp#L70
and the algorithm is from Bai et al.'s "The spectral decomposition of
nonsymmetric matrices on distributed memory parallel computers".
2) Due to the complicated nature of the 'ApplyPackedReflectors' routine,
which is used for applying batches of packed Householder reflectors in a
high-performance manner, routines for applying the implicit unitary
matrices generated from LQ, QR, RQ, Bidiag, and HermitianTridiag are now
available within the corresponding namespace, e.g., lq::ApplyQ,
bidiag::ApplyU, bidiag::ApplyV, and hermitian_tridiag::ApplyQ. See the
following page for the Bidiag implementation:
https://github.com/poulson/Elemental/blob/master/include/elemental/lapack-like/Bidiag/Apply.hpp
3) The project website,
http://libelemental.org, has replaced the old
FEniCS featured images with a few snapshots from slides from my talk
during the ICS 13 [
http://www.stanford.edu/~poulson/ics13/] tutorial
given by Robert, Bryan, and myself (all of our slides are on the
tutorial site).
Please let me know if you have any questions or comments. Hopefully
version 0.81 will be released in about a week.
Jack