op_diagvec_meat.hpp
Go to the documentation of this file.
1 // Copyright (C) 2008-2010 NICTA (www.nicta.com.au)
2 // Copyright (C) 2008-2010 Conrad Sanderson
3 //
4 // This file is part of the Armadillo C++ library.
5 // It is provided without any warranty of fitness
6 // for any purpose. You can redistribute this file
7 // and/or modify it under the terms of the GNU
8 // Lesser General Public License (LGPL) as published
9 // by the Free Software Foundation, either version 3
10 // of the License or (at your option) any later version.
11 // (see http://www.opensource.org/licenses for more info)
12 
13 
16 
17 
18 
19 template<typename T1>
20 inline
21 void
23  {
25 
26  typedef typename T1::elem_type eT;
27 
28  const sword id = (X.aux_uword_b > 0) ? -sword(X.aux_uword_a) : sword(X.aux_uword_a);
29 
30  const unwrap_check<T1> tmp(X.m, out);
31  const Mat<eT>& A = tmp.M;
32 
33  out = A.diag(id);
34  }
35 
36 
37 
arma_aligned uword aux_uword_b
storage of auxiliary data, uword format
Definition: Op_bones.hpp:48
arma_aligned const T1 & m
storage of reference to the operand (eg. a matrix)
Definition: Op_bones.hpp:45
static void apply(Mat< typename T1::elem_type > &out, const Op< T1, op_diagvec > &X)
arma_inline diagview< eT > diag(const sword in_id=0)
creation of diagview (diagonal)
Definition: Mat_meat.hpp:2284
#define arma_extra_debug_sigprint
Definition: debug.hpp:1116
Dense matrix class.
const Mat< eT > M
Definition: unwrap.hpp:142
arma_aligned uword aux_uword_a
storage of auxiliary data, uword format
Definition: Op_bones.hpp:47
s32 sword
Definition: typedef.hpp:86


armadillo_matrix
Author(s):
autogenerated on Fri Apr 16 2021 02:31:58