11/08/2014: Elemental 0.85


Documentation: [HTML] [PDF]

The significant changes since release 0.84 are listed below.

Added functionality

  • Sparse-direct Cholesky and Bunch-Kaufman due to merging Clique into Elemental
  • Sparse-direct least squares, ridge regression, and Tikhonov regularization
  • Sparse Herk and various other BLAS1-like routines
  • A (nearly full) manually-constructed C interface
  • A (nearly full) manually-constructed Python interface, including extensions of Display functionality to matplotlib (for matrices) and networkx (for graphs)
  • Support for Read, Write, and ReadWrite matrix proxies so that routines implemented for specific datatypes and/or data distributions can be extended to more general datatypes and arbitrary distribution choices
  • Essentially all distributed routines in the library were generalized to AbstractDistMatrix for convenience (using proxies)
  • Single-precision Hermitian eigensolvers are now supported (via proxies which convert to double-precision for PMRRR)
  • Added Three-valued and Bernoulli, GEPPGrowth and Druinsky-Toledo, Fourier-Identity (“spikes and sines”) and Walsh-Identity (“spikes and Hadamard”) matrices
  • Added ability to compute coherence
  • Added ability to use operator() to extract contiguous submatrices (and converted library)
  • Extended control of SVD and LDL via new SVDCtrl and LDLCtrl structures
  • Improved performance of IO routines when ColStride() and/or RowStride() are 1

Bug fixes

  • Fixed a variety of compilation errors which did not appear with g++
  • Fixed an (uncommon) bug in distributed HermitianFrobeniusNorm
  • Added missing shrink of the phase vector in qr::BusingerGolub
  • Added missing scalar argument to Matrix::UpdateDiagonal
  • Fixed Ehrenfest matrix generation
  • Fixed indexing of Householder phases in sequential Bidiag
  • Fixed offset used by rq::ExplicitTriang
  • Fixed BlockDistMatrix version of MATRIX_MARKET Read
  • Fixed BLAS wrappers for complex herk, her2k, her, and her2
  • Fixed PURE/HYBRID CMake detection (thanks to Richard Boyd)
  • Fixed Mac vecLib/Accelerate detection


  • Removed MakeTriangular (due to the more general MakeTrapezoidal)
  • Replaced AxpyTriangle with AxpyTrapezoid
  • Added a control structure for Bisect
  • Significantly refactored/simplified Trr2k
  • Removed spurious integer argument to TriW
  • Removed Riemann matrix due to vague definition (and overlap with Redheffer)
  • Removed hyphens in directory names to avoid python conflict

Name changes

  • Renamed namespace “elem” to “El”, and “elem.hpp” to “El.hpp”
  • Moved auxiliary PMRRR headers into pmrrr/ subfolder
  • “Pseudospectra” -> {“SpectralPortrait”,”SpectralWindow”,”SpectralCloud”}
  • Better organization/naming for explicit QR/RQ/LQ factorizations


  • Richard Boyd (of GTRI) for reporting the PURE/HYBRID configuration detection problem
  • Field van Zee (of UT Austin) for clarifying the {c,z}her2 and {c,z}her2k scalar argument conventions
  • Rodrigo Canales for noticing and fixing several missing static instantiations
  • Yingzhou (Ryan) Li for reporting the vecLib/Accelerate issue

Relevant unmerged forks