/*---------------------------------------------------------------------------* * IT++ * *---------------------------------------------------------------------------* * Copyright (c) 1995-2002 by Tony Ottosson, Thomas Eriksson, Pål Frenger, * * Tobias Ringström, and Jonas Samuelsson. * * * * Permission to use, copy, modify, and distribute this software and its * * documentation under the terms of the GNU General Public License is hereby * * granted. No representations are made about the suitability of this * * software for any purpose. It is provided "as is" without expressed or * * implied warranty. See the GNU General Public License for more details. * *---------------------------------------------------------------------------*/ /*! \file \brief Inverse of square matrices \author Tony Ottosson 1.5 2003/12/10 05:27:11 */ #ifndef __inv_h #define __inv_h #include "base/mat.h" namespace itpp { /*! \defgroup inverse Inverse Matrix */ /*! \brief Inverse of real square matrix. \ingroup inverse Calculate the inverse of the real matrix \f$\mathbf{X}\f$ Solves the equation system \f$ \mathbf{Y} \mathbf{X} = \mathbf{I}\f$ using LU-factorization. IT++ needs to be compiled with the LAPACK for the inverse to be available. */ bool inv(const mat &X, mat &Y); /*! \brief Inverse of real square matrix. \ingroup inverse Calculate the inverse of the real matrix \f$\mathbf{X}\f$ Solves the equation system \f$ \mathbf{Y} \mathbf{X} = \mathbf{I}\f$ using LU-factorization. IT++ needs to be compiled with LAPACK support for the inverse to be available. */ mat inv(const mat &X); #ifndef NO_LAPACK /*! \brief Inverse of complex square matrix. \ingroup inverse Calculate the inverse of the complex matrix \f$\mathbf{X}\f$ Solves the equation system \f$ \mathbf{Y} \mathbf{X} = \mathbf{I}\f$ using LU-factorization. IT++ needs to be compiled with LAPACK support for the inverse to be available. */ bool inv(const cmat &X, cmat &Y); /*! \brief Inverse of real square matrix. \ingroup inverse Calculate the inverse of the complex matrix \f$\mathbf{X}\f$ Solves the equation system \f$ \mathbf{Y} \mathbf{X} = \mathbf{I}\f$ using LU-factorization. IT++ needs to be compiled with the LAPACK for the inverse to be available. */ cmat inv(const cmat &X); #endif // NO_LAPACK } //namespace itpp #endif // __inv_h