00001 // Copyright (C) 2009 NICTA 00002 // 00003 // Authors: 00004 // - Conrad Sanderson (conradsand at ieee dot org) 00005 // 00006 // This file is part of the Armadillo C++ library. 00007 // It is provided without any warranty of fitness 00008 // for any purpose. You can redistribute this file 00009 // and/or modify it under the terms of the GNU 00010 // Lesser General Public License (LGPL) as published 00011 // by the Free Software Foundation, either version 3 00012 // of the License or (at your option) any later version. 00013 // (see http://www.opensource.org/licenses for more info) 00014 00015 00016 //! \addtogroup fn_inv 00017 //! @{ 00018 00019 //! delayed matrix inverse 00020 template<typename T1> 00021 inline 00022 const Op<T1, op_inv> 00023 inv(const Base<typename T1::elem_type,T1>& X) 00024 { 00025 arma_extra_debug_sigprint(); 00026 00027 return Op<T1, op_inv>(X.get_ref()); 00028 } 00029 00030 00031 00032 //! remove the inverse operation if applied twice consecutively 00033 template<typename T1> 00034 inline 00035 const T1& 00036 inv(const Op<T1, op_inv>& X) 00037 { 00038 arma_extra_debug_sigprint(); 00039 00040 return X.m; 00041 } 00042 00043 //! @}