/usr/include/armadillo_bits/fn_size.hpp is in libarmadillo-dev 1:4.200.0+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | // Copyright (C) 2013-2014 Conrad Sanderson
// Copyright (C) 2013-2014 NICTA (www.nicta.com.au)
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.
//! \addtogroup fn_size
//! @{
inline
const SizeMat
size(const uword n_rows, const uword n_cols)
{
arma_extra_debug_sigprint();
return SizeMat(n_rows, n_cols);
}
template<typename T1>
inline
typename enable_if2< is_arma_type<T1>::value, const SizeMat >::result
size(const T1& X)
{
arma_extra_debug_sigprint();
const Proxy<T1> P(X);
return SizeMat( P.get_n_rows(), P.get_n_cols() );
}
template<typename T1>
inline
typename enable_if2< is_arma_type<T1>::value, const uword >::result
size(const T1& X, const uword dim)
{
arma_extra_debug_sigprint();
arma_debug_check( (dim >= 2), "size(): dimension out of bounds" );
const Proxy<T1> P(X);
return (dim == 0) ? P.get_n_rows() : P.get_n_cols();
}
inline
const SizeCube
size(const uword n_rows, const uword n_cols, const uword n_slices)
{
arma_extra_debug_sigprint();
return SizeCube(n_rows, n_cols, n_slices);
}
template<typename T1>
inline
typename enable_if2< is_arma_cube_type<T1>::value, const SizeCube >::result
size(const T1& X)
{
arma_extra_debug_sigprint();
const ProxyCube<T1> P(X);
return SizeCube( P.get_n_rows(), P.get_n_cols(), P.get_n_slices() );
}
template<typename T1>
inline
typename enable_if2< is_arma_cube_type<T1>::value, const uword >::result
size(const T1& X, const uword dim)
{
arma_extra_debug_sigprint();
arma_debug_check( (dim >= 3), "size(): dimension out of bounds" );
const ProxyCube<T1> P(X);
return (dim == 0) ? P.get_n_rows() : ( (dim == 1) ? P.get_n_cols() : P.get_n_slices() );
}
template<typename T1>
inline
typename enable_if2< is_arma_sparse_type<T1>::value, const SizeMat >::result
size(const T1& X)
{
arma_extra_debug_sigprint();
const SpProxy<T1> P(X);
return SizeMat( P.get_n_rows(), P.get_n_cols() );
}
template<typename T1>
inline
typename enable_if2< is_arma_sparse_type<T1>::value, const uword >::result
size(const T1& X, const uword dim)
{
arma_extra_debug_sigprint();
arma_debug_check( (dim >= 2), "size(): dimension out of bounds" );
const SpProxy<T1> P(X);
return (dim == 0) ? P.get_n_rows() : P.get_n_cols();
}
template<typename oT>
inline
const SizeCube
size(const field<oT>& X)
{
arma_extra_debug_sigprint();
return SizeCube( X.n_rows, X.n_cols, X.n_slices );
}
template<typename oT>
inline
const SizeCube
size(const subview_field<oT>& X)
{
arma_extra_debug_sigprint();
return SizeCube( X.n_rows, X.n_cols, X.n_slices );
}
//! @}
|