source:trunk/Ipopt/src/LinAlg/IpLapack.hpp@1522

Last change on this file since 1522 was 1522, checked in by andreasw, 5 years ago

added a few features requested by Hans Pirnay so that he can use Ipopt for an NMPC method

• Property svn:eol-style set to `native`
• Property svn:keywords set to `Author Date Id Revision`
File size: 1.7 KB
Line
3// This code is published under the Common Public License.
4//
5// \$Id\$
6//
7// Authors:  Andreas Waechter              IBM    2005-12-25
8
9#ifndef __IPLAPACK_HPP__
10#define __IPLAPACK_HPP__
11
12#include "IpUtils.hpp"
13#include "IpException.hpp"
14
15namespace Ipopt
16{
17  DECLARE_STD_EXCEPTION(LAPACK_NOT_INCLUDED);
18
19  /** Wrapper for LAPACK subroutine DPOTRS.  Solving a linear system
20   *  given a Cholesky factorization.  We assume that the Cholesky
21   *  factor is lower traiangular. */
22  void IpLapackDpotrs(Index ndim, Index nrhs, const Number *a, Index lda,
23                      Number *b, Index ldb);
24
25  /** Wrapper for LAPACK subroutine DPOTRF.  Compute Cholesky
26   *  factorization (lower triangular factor).  info is the return
27   *  value from the LAPACK routine. */
28  void IpLapackDpotrf(Index ndim, Number *a, Index lda, Index& info);
29
30  /** Wrapper for LAPACK subroutine DSYEV.  Compute the Eigenvalue
31   *  decomposition for a given matrix.  If compute_eigenvectors is
32   *  true, a will contain the eigenvectors in its columns on
33   *  return.  */
34  void IpLapackDsyev(bool compute_eigenvectors, Index ndim, Number *a,
35                     Index lda, Number *w, Index& info);
36
37  /** Wrapper for LAPACK subroutine DGETRF.  Compute LU factorization.
38   *  info is the return value from the LAPACK routine. */
39  void IpLapackDgetrf(Index ndim, Number *a, Index* pivot, Index lda,
40                      Index& info);
41
42  /** Wrapper for LAPACK subroutine DGETRS.  Solving a linear system
43   *  given a LU factorization. */
44  void IpLapackDgetrs(Index ndim, Index nrhs, const Number *a, Index lda,
45                      Index* ipiv, Number *b, Index ldb);
46
47} // namespace Ipopt
48
49#endif
Note: See TracBrowser for help on using the repository browser.