op_flip_meat.hpp
Go to the documentation of this file.
1 // Copyright (C) 2010 NICTA (www.nicta.com.au)
2 // Copyright (C) 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 unwrap<T1> tmp(in.m);
29  const Mat<eT> X = tmp.M;
30 
31  if(&out != &X)
32  {
33  out.copy_size(X);
34 
35  for(uword i=0; i<X.n_rows; ++i)
36  {
37  out.row(i) = X.row(X.n_rows-1 - i);
38  }
39  }
40  else
41  {
42  const uword N = X.n_rows / 2;
43 
44  for(uword i=0; i<N; ++i)
45  {
46  out.swap_rows(i, X.n_rows-1 - i);
47  }
48  }
49  }
50 
51 
52 
53 template<typename T1>
54 inline
55 void
57  {
59 
60  typedef typename T1::elem_type eT;
61 
62  const unwrap<T1> tmp(in.m);
63  const Mat<eT> X = tmp.M;
64 
65  if(&out != &X)
66  {
67  out.copy_size(X);
68 
69  for(uword i=0; i<X.n_cols; ++i)
70  {
71  out.col(i) = X.col(X.n_cols-1 - i);
72  }
73  }
74  else
75  {
76  const uword N = X.n_cols / 2;
77 
78  for(uword i=0; i<N; ++i)
79  {
80  out.swap_cols(i, X.n_cols-1 - i);
81  }
82  }
83  }
84 
85 
86 
const uword n_cols
number of columns in the matrix (read-only)
Definition: Mat_bones.hpp:30
arma_inline subview_col< eT > col(const uword col_num)
creation of subview (column vector)
Definition: Mat_meat.hpp:1880
arma_inline subview_row< eT > row(const uword row_num)
creation of subview (row vector)
Definition: Mat_meat.hpp:1792
const uword n_rows
number of rows in the matrix (read-only)
Definition: Mat_bones.hpp:29
arma_aligned const T1 & m
storage of reference to the operand (eg. a matrix)
Definition: Op_bones.hpp:45
u32 uword
Definition: typedef.hpp:85
const Mat< eT > M
Definition: unwrap.hpp:32
void copy_size(const Mat< eT2 > &m)
change the matrix (without preserving data) to have the same dimensions as the given matrix ...
Definition: Mat_meat.hpp:4303
void swap_cols(const uword in_col1, const uword in_col2)
Definition: Mat_meat.hpp:2359
#define arma_extra_debug_sigprint
Definition: debug.hpp:1116
Dense matrix class.
static void apply(Mat< typename T1::elem_type > &out, const Op< T1, op_flipud > &in)
void swap_rows(const uword in_row1, const uword in_row2)
Definition: Mat_meat.hpp:2331
static void apply(Mat< typename T1::elem_type > &out, const Op< T1, op_fliplr > &in)


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