diff options
Diffstat (limited to 'thirdparty/linux/include/coin/IpLapack.hpp')
-rw-r--r-- | thirdparty/linux/include/coin/IpLapack.hpp | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/thirdparty/linux/include/coin/IpLapack.hpp b/thirdparty/linux/include/coin/IpLapack.hpp new file mode 100644 index 0000000..ef8883c --- /dev/null +++ b/thirdparty/linux/include/coin/IpLapack.hpp @@ -0,0 +1,55 @@ +// Copyright (C) 2005, 2009 International Business Machines and others. +// All Rights Reserved. +// This code is published under the Eclipse Public License. +// +// $Id: IpLapack.hpp 2449 2013-12-16 00:25:42Z ghackebeil $ +// +// Authors: Andreas Waechter IBM 2005-12-25 + +#ifndef __IPLAPACK_HPP__ +#define __IPLAPACK_HPP__ + +#include "IpUtils.hpp" +#include "IpException.hpp" + +namespace Ipopt +{ + DECLARE_STD_EXCEPTION(LAPACK_NOT_INCLUDED); + + /** Wrapper for LAPACK subroutine DPOTRS. Solving a linear system + * given a Cholesky factorization. We assume that the Cholesky + * factor is lower traiangular. */ + void IpLapackDpotrs(Index ndim, Index nrhs, const Number *a, Index lda, + Number *b, Index ldb); + + /** Wrapper for LAPACK subroutine DPOTRF. Compute Cholesky + * factorization (lower triangular factor). info is the return + * value from the LAPACK routine. */ + void IpLapackDpotrf(Index ndim, Number *a, Index lda, Index& info); + + /** Wrapper for LAPACK subroutine DSYEV. Compute the Eigenvalue + * decomposition for a given matrix. If compute_eigenvectors is + * true, a will contain the eigenvectors in its columns on + * return. */ + void IpLapackDsyev(bool compute_eigenvectors, Index ndim, Number *a, + Index lda, Number *w, Index& info); + + /** Wrapper for LAPACK subroutine DGETRF. Compute LU factorization. + * info is the return value from the LAPACK routine. */ + void IpLapackDgetrf(Index ndim, Number *a, Index* pivot, Index lda, + Index& info); + + /** Wrapper for LAPACK subroutine DGETRS. Solving a linear system + * given a LU factorization. */ + void IpLapackDgetrs(Index ndim, Index nrhs, const Number *a, Index lda, + Index* ipiv, Number *b, Index ldb); + + /** Wrapper for LAPACK subroutine DPPSV. Solves a symmetric positive + * definite linear system in packed storage format (upper triangular). + * info is the return value from the LAPACK routine. */ + void IpLapackDppsv(Index ndim, Index nrhs, const Number *a, + Number *b, Index ldb, Index& info); + +} // namespace Ipopt + +#endif |