fn_shuffle.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 fn_shuffle
00020 //! @{
00021 
00022 //! \brief
00023 //! Shuffle the rows or the columns of a matrix or vector in random fashion.
00024 //! If dim = 0, shuffle the columns (default operation).
00025 //! If dim = 1, shuffle the rows.
00026 
00027 template<typename T1>
00028 inline
00029 const Op<T1, op_shuffle>
00030 shuffle(const Base<typename T1::elem_type,T1>& X, const u32 dim = 0)
00031   {
00032   arma_extra_debug_sigprint();
00033   
00034   arma_debug_check( (dim > 1), "shuffle(): dim must be 0 or 1");
00035   
00036   return Op<T1, op_shuffle>(X.get_ref(), dim, 0);
00037   }
00038 
00039 
00040 
00041 //! @}