04/28/2013: Elemental 0.79



  • Added Businger/Golub pivoted QR and the ability to early-exit (qr::BusingerGolub)
  • Added thresholded SVD based upon the cross-product algorithm (svd::Thresholded)
  • Added RRQR preprocessing for faster SingularValueSoftThresholding (SVT)
  • Updated RPCA example to allow for use of RRQR-preprocessed SVT
  • Added implementation of Cannon’s algorithm (gemm::Cannon_NN)
  • Added Kahan, GKS, and Extended Kahan matrices
  • Added HermitianSign and UnitaryCoherence calculations
  • Added sequential version of HermitianEig
  • Added versions of a few routines (e.g., Gemm) which handle zero initialization
  • Added a MemSwap function to complement MemCopy and MemZero

Bug fixes

  • Fixed several zero initialization bugs
  • Fixed shared library linking for PMRRR on Macs
  • Fixed syntax error in DistMatrix driver


  • Beginning to maintain REFERENCES and PUBLICATIONS files
  • Switched to much simpler RAII-based call-stack manipulation
  • Added BASE(F) macro to avoid repeatedly using ‘typename Base<F>::type’
  • Removed Parallel Linear Congruential Generator in favor of simpler scheme
  • All special matrix function routines now take the output matrix as first argument
  • Began removing ‘internal’ namespaces in favor of routine-specific namespaces
  • Renamed ‘HouseholderSolve’ to ‘LeastSquares’