op_ones_meat.hpp

Go to the documentation of this file.
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 op_ones
00017 //! @{
00018 
00019 template<typename eT>
00020 inline
00021 void
00022 op_ones_full::apply(Mat<eT>& out, const Op<Mat<eT>,op_ones_full>& in)
00023   {
00024   arma_extra_debug_sigprint();
00025   
00026   out.set_size(in.aux_u32_a, in.aux_u32_b);
00027   out.fill(eT(1));
00028   }
00029 
00030 
00031 
00032 template<typename eT>
00033 inline
00034 void
00035 op_ones_full::apply(Mat<eT>& out, const Op<Col<eT>,op_ones_full>& in)
00036   {
00037   arma_extra_debug_sigprint();
00038   
00039   out.set_size(in.aux_u32_a, 1);
00040   out.fill(eT(1));
00041   }
00042 
00043 
00044 
00045 template<typename eT>
00046 inline
00047 void
00048 op_ones_full::apply(Mat<eT>& out, const Op<Row<eT>,op_ones_full>& in)
00049   {
00050   arma_extra_debug_sigprint();
00051   
00052   out.set_size(1, in.aux_u32_a);
00053   out.fill(eT(1));
00054   }
00055 
00056 
00057 
00058 template<typename eT>
00059 inline
00060 void
00061 op_ones_full::apply(Col<eT>& out, const Op<Col<eT>,op_ones_full>& in)
00062   {
00063   arma_extra_debug_sigprint();
00064   
00065   out.set_size(in.aux_u32_a);
00066   out.fill(eT(1));
00067   }
00068 
00069 
00070 
00071 template<typename eT>
00072 inline
00073 void
00074 op_ones_full::apply(Row<eT>& out, const Op<Row<eT>,op_ones_full>& in)
00075   {
00076   arma_extra_debug_sigprint();
00077   
00078   out.set_size(in.aux_u32_a);
00079   out.fill(eT(1));
00080   }
00081 
00082 
00083 
00084 template<typename eT>
00085 inline
00086 void
00087 op_ones_diag::apply(Mat<eT>& out, const Op<Mat<eT>,op_ones_diag>& in)
00088   {
00089   arma_extra_debug_sigprint();
00090   
00091   out.zeros(in.aux_u32_a, in.aux_u32_b);
00092   
00093   for(u32 i=0; i<out.n_rows; ++i)
00094     {
00095     out.at(i,i) = eT(1);
00096     }
00097   
00098   }
00099 
00100 
00101 //! @}