Mercurial > hg > segmenter-vamp-plugin
annotate armadillo-2.4.4/include/armadillo_bits/op_diagvec_meat.hpp @ 18:8d046a9d36aa slimline
Back out rev 13:ac07c60aa798. Like an idiot, I committed a whole pile of unrelated changes in the guise of a single typo fix. Will re-commit in stages
author | Chris Cannam |
---|---|
date | Thu, 10 May 2012 10:45:44 +0100 |
parents | 8b6102e2a9b0 |
children |
rev | line source |
---|---|
max@0 | 1 // Copyright (C) 2008-2010 NICTA (www.nicta.com.au) |
max@0 | 2 // Copyright (C) 2008-2010 Conrad Sanderson |
max@0 | 3 // |
max@0 | 4 // This file is part of the Armadillo C++ library. |
max@0 | 5 // It is provided without any warranty of fitness |
max@0 | 6 // for any purpose. You can redistribute this file |
max@0 | 7 // and/or modify it under the terms of the GNU |
max@0 | 8 // Lesser General Public License (LGPL) as published |
max@0 | 9 // by the Free Software Foundation, either version 3 |
max@0 | 10 // of the License or (at your option) any later version. |
max@0 | 11 // (see http://www.opensource.org/licenses for more info) |
max@0 | 12 |
max@0 | 13 |
max@0 | 14 //! \addtogroup op_diagvec |
max@0 | 15 //! @{ |
max@0 | 16 |
max@0 | 17 |
max@0 | 18 |
max@0 | 19 template<typename T1> |
max@0 | 20 inline |
max@0 | 21 void |
max@0 | 22 op_diagvec::apply(Mat<typename T1::elem_type>& out, const Op<T1, op_diagvec>& X) |
max@0 | 23 { |
max@0 | 24 arma_extra_debug_sigprint(); |
max@0 | 25 |
max@0 | 26 typedef typename T1::elem_type eT; |
max@0 | 27 |
max@0 | 28 const sword id = (X.aux_uword_b > 0) ? -sword(X.aux_uword_a) : sword(X.aux_uword_a); |
max@0 | 29 |
max@0 | 30 const unwrap_check<T1> tmp(X.m, out); |
max@0 | 31 const Mat<eT>& A = tmp.M; |
max@0 | 32 |
max@0 | 33 out = A.diag(id); |
max@0 | 34 } |
max@0 | 35 |
max@0 | 36 |
max@0 | 37 |
max@0 | 38 //! @} |