op_find_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 // - Conrad Sanderson (conradsand at ieee dot org)
00006 // - Dimitrios Bouzas (dimitris dot mpouzas at gmail dot com)
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 
00019 //! \addtogroup op_find
00020 //! @{
00021 
00022 
00023 
00024 class op_find
00025   {
00026   public:
00027   
00028   template<typename T1>
00029   inline static u32
00030   helper
00031     (
00032     Mat<u32>& indices,
00033     const Base<typename T1::elem_type, T1>& X
00034     );
00035   
00036   template<typename T1, typename op_type>
00037   inline static u32
00038   helper
00039     (
00040     Mat<u32>& indices,
00041     const mtOp<u32, T1, op_type>& X,
00042     const typename arma_op_rel_only<op_type>::result junk1 = 0,
00043     const typename arma_not_cx<typename T1::elem_type>::result junk2 = 0
00044     );
00045   
00046   template<typename T1, typename op_type>
00047   inline static u32
00048   helper
00049     (
00050     Mat<u32>& indices,
00051     const mtOp<u32, T1, op_type>& X,
00052     const typename arma_op_rel_only<op_type>::result junk1 = 0,
00053     const typename arma_cx_only<typename T1::elem_type>::result junk2 = 0
00054     );
00055   
00056   template<typename T1, typename T2, typename glue_type>
00057   inline static u32
00058   helper
00059     (
00060     Mat<u32>& indices,
00061     const mtGlue<u32, T1, T2, glue_type>& X,
00062     const typename arma_glue_rel_only<glue_type>::result junk1 = 0,
00063     const typename arma_not_cx<typename T1::elem_type>::result junk2 = 0,
00064     const typename arma_not_cx<typename T2::elem_type>::result junk3 = 0
00065     );
00066   
00067   template<typename T1, typename T2, typename glue_type>
00068   inline static u32
00069   helper
00070     (
00071     Mat<u32>& indices,
00072     const mtGlue<u32, T1, T2, glue_type>& X,
00073     const typename arma_glue_rel_only<glue_type>::result junk1 = 0,
00074     const typename arma_cx_only<typename T1::elem_type>::result junk2 = 0,
00075     const typename arma_cx_only<typename T2::elem_type>::result junk3 = 0
00076     );
00077   
00078   template<typename T1>
00079   inline static void apply(Mat<u32>& out, const mtOp<u32, T1, op_find>& X);
00080   };
00081 
00082 
00083 
00084 //! @}