text: /*
     Copyright (c) 2009-2016, Jack Poulson
     All rights reserved.
  
     This file is part of Elemental and is under the BSD 2-Clause License, 
     which can be found in the LICENSE file in the root directory, or at 
     http://opensource.org/licenses/BSD-2-Clause
  */
  #include <El.hpp>
  
  namespace El {
  namespace lp {
  namespace direct {
  
  template<typename Real>
  void Mehrotra
  ( const Matrix<Real>& A,
    const Matrix<Real>& b,
    const Matrix<Real>& c,
          Matrix<Real>& x,
          Matrix<Real>& y, 
          Matrix<Real>& z,
    const MehrotraCtrl<Real>& ctrl=MehrotraCtrl<Real>(false) );
  template<typename Real>
  void Mehrotra
  ( const ElementalMatrix<Real>& A,
    const ElementalMatrix<Real>& b,
    const ElementalMatrix<Real>& c,
          ElementalMatrix<Real>& x,
          ElementalMatrix<Real>& y,
          ElementalMatrix<Real>& z,
    const MehrotraCtrl<Real>& ctrl=MehrotraCtrl<Real>(false) );
  template<typename Real>
  void Mehrotra
  ( const SparseMatrix<Real>& A,
    const Matrix<Real>& b,
    const Matrix<Real>& c,
          Matrix<Real>& x,
          Matrix<Real>& y, 
          Matrix<Real>& z,
    const MehrotraCtrl<Real>& ctrl=MehrotraCtrl<Real>(true) );
  template<typename Real>
  void Mehrotra
  ( const DistSparseMatrix<Real>& A,
    const DistMultiVec<Real>& b,
    const DistMultiVec<Real>& c,
          DistMultiVec<Real>& x,
          DistMultiVec<Real>& y, 
          DistMultiVec<Real>& z,
    const MehrotraCtrl<Real>& ctrl=MehrotraCtrl<Real>(true) );
  
  // NOTE: This should be in a different header
  template<typename Real>
  Int ADMM
  ( const Matrix<Real>& A, 
    const Matrix<Real>& b,
    const Matrix<Real>& c,
          Matrix<Real>& z,
    const ADMMCtrl<Real>& ctrl=ADMMCtrl<Real>() );
  template<typename Real>
  Int ADMM
  ( const ElementalMatrix<Real>& A,
    const ElementalMatrix<Real>& b,
    const ElementalMatrix<Real>& c,
          ElementalMatrix<Real>& z,
    const ADMMCtrl<Real>& ctrl=ADMMCtrl<Real>() );
  
  } // namespace direct
  } // namespace lp
  } // namespace El
  