op_princomp_cov_proto.hpp

Go to the documentation of this file.
00001 // Copyright (C) 2010 NICTA and the authors listed below
00002 // http://nicta.com.au
00003 // 
00004 // Authors:
00005 // - Dimitrios Bouzas (dimitris dot mpouzas at gmail dot com)
00006 // - Conrad Sanderson (conradsand at ieee dot org)
00007 // 
00008 // This file is part of the Armadillo C++ library.
00009 // It is provided without any warranty of fitness
00010 // for any purpose. You can redistribute this file
00011 // and/or modify it under the terms of the GNU
00012 // Lesser General Public License (LGPL) as published
00013 // by the Free Software Foundation, either version 3
00014 // of the License or (at your option) any later version.
00015 // (see http://www.opensource.org/licenses for more info)
00016 
00017 
00018 //! \addtogroup op_princomp_cov
00019 //! @{
00020 
00021 
00022 
00023 class op_princomp_cov
00024   {
00025   public:
00026   
00027   // real element versions
00028   
00029   template<typename eT>
00030   inline static void
00031   direct_princomp_cov
00032     (      
00033           Mat<eT>& coeff_out,                                                     
00034     const Mat<eT>& in
00035     );
00036                                                            
00037   template<typename eT>
00038   inline static void
00039   direct_princomp_cov
00040     (      
00041           Mat<eT>& coeff_out, 
00042           Col<eT>& latent_out,
00043     const Mat<eT>& in
00044     );
00045                                                            
00046   template<typename eT>
00047   inline static void
00048   direct_princomp_cov
00049     (
00050           Mat<eT>& coeff_out, 
00051           Col<eT>& latent_out,
00052           Col<eT>& explained_out,                    
00053     const Mat<eT>& in
00054     );
00055   
00056   // complex element versions
00057   
00058   template<typename T>
00059   inline static void
00060   direct_princomp_cov
00061     (
00062           Mat< std::complex<T> >& coeff_out,
00063     const Mat< std::complex<T> >& in
00064     );
00065     
00066   template<typename T>
00067   inline static void
00068   direct_princomp_cov
00069     (
00070           Mat< std::complex<T> >& coeff_out, 
00071                           Col<T>& latent_out,                                                
00072     const Mat< std::complex<T> >& in
00073     );
00074     
00075   template<typename T>
00076   inline static void
00077   direct_princomp_cov
00078     (
00079           Mat< std::complex<T> >& coeff_out, 
00080                           Col<T>& latent_out,
00081                           Col<T>& explained_out,                                   
00082     const Mat< std::complex<T> >& in
00083     );
00084   
00085   template<typename T1>
00086   inline static void
00087   apply(Mat<typename T1::elem_type>& out, const Op<T1,op_princomp_cov>& in);
00088   
00089   };
00090 
00091 
00092 
00093 //! @}