Mercurial > hg > segmenter-vamp-plugin
annotate armadillo-3.900.4/include/armadillo_bits/unwrap_cube.hpp @ 84:55a047986812 tip
Update library URI so as not to be document-local
author | Chris Cannam |
---|---|
date | Wed, 22 Apr 2020 14:21:57 +0100 |
parents | 1ec0e2823891 |
children |
rev | line source |
---|---|
Chris@49 | 1 // Copyright (C) 2008-2010 NICTA (www.nicta.com.au) |
Chris@49 | 2 // Copyright (C) 2008-2010 Conrad Sanderson |
Chris@49 | 3 // |
Chris@49 | 4 // This Source Code Form is subject to the terms of the Mozilla Public |
Chris@49 | 5 // License, v. 2.0. If a copy of the MPL was not distributed with this |
Chris@49 | 6 // file, You can obtain one at http://mozilla.org/MPL/2.0/. |
Chris@49 | 7 |
Chris@49 | 8 |
Chris@49 | 9 //! \addtogroup unwrap_cube |
Chris@49 | 10 //! @{ |
Chris@49 | 11 |
Chris@49 | 12 |
Chris@49 | 13 |
Chris@49 | 14 template<typename T1> |
Chris@49 | 15 class unwrap_cube |
Chris@49 | 16 { |
Chris@49 | 17 public: |
Chris@49 | 18 |
Chris@49 | 19 typedef typename T1::elem_type eT; |
Chris@49 | 20 |
Chris@49 | 21 inline |
Chris@49 | 22 unwrap_cube(const T1& A) |
Chris@49 | 23 : M(A) |
Chris@49 | 24 { |
Chris@49 | 25 arma_extra_debug_sigprint(); |
Chris@49 | 26 } |
Chris@49 | 27 |
Chris@49 | 28 const Cube<eT> M; |
Chris@49 | 29 }; |
Chris@49 | 30 |
Chris@49 | 31 |
Chris@49 | 32 |
Chris@49 | 33 template<typename eT> |
Chris@49 | 34 class unwrap_cube< Cube<eT> > |
Chris@49 | 35 { |
Chris@49 | 36 public: |
Chris@49 | 37 |
Chris@49 | 38 inline |
Chris@49 | 39 unwrap_cube(const Cube<eT>& A) |
Chris@49 | 40 : M(A) |
Chris@49 | 41 { |
Chris@49 | 42 arma_extra_debug_sigprint(); |
Chris@49 | 43 } |
Chris@49 | 44 |
Chris@49 | 45 const Cube<eT>& M; |
Chris@49 | 46 }; |
Chris@49 | 47 |
Chris@49 | 48 |
Chris@49 | 49 |
Chris@49 | 50 // |
Chris@49 | 51 // |
Chris@49 | 52 // |
Chris@49 | 53 |
Chris@49 | 54 |
Chris@49 | 55 |
Chris@49 | 56 template<typename T1> |
Chris@49 | 57 class unwrap_cube_check |
Chris@49 | 58 { |
Chris@49 | 59 typedef typename T1::elem_type eT; |
Chris@49 | 60 |
Chris@49 | 61 inline |
Chris@49 | 62 unwrap_cube_check(const T1& A, const Cube<eT>&) |
Chris@49 | 63 : M(A) |
Chris@49 | 64 { |
Chris@49 | 65 arma_extra_debug_sigprint(); |
Chris@49 | 66 |
Chris@49 | 67 arma_type_check(( is_arma_cube_type<T1>::value == false )); |
Chris@49 | 68 } |
Chris@49 | 69 |
Chris@49 | 70 const Cube<eT> M; |
Chris@49 | 71 }; |
Chris@49 | 72 |
Chris@49 | 73 |
Chris@49 | 74 |
Chris@49 | 75 template<typename eT> |
Chris@49 | 76 class unwrap_cube_check< Cube<eT> > |
Chris@49 | 77 { |
Chris@49 | 78 public: |
Chris@49 | 79 |
Chris@49 | 80 inline |
Chris@49 | 81 unwrap_cube_check(const Cube<eT>& A, const Cube<eT>& B) |
Chris@49 | 82 : M_local( (&A == &B) ? new Cube<eT>(A) : 0 ) |
Chris@49 | 83 , M ( (&A == &B) ? (*M_local) : A ) |
Chris@49 | 84 { |
Chris@49 | 85 arma_extra_debug_sigprint(); |
Chris@49 | 86 } |
Chris@49 | 87 |
Chris@49 | 88 |
Chris@49 | 89 inline |
Chris@49 | 90 ~unwrap_cube_check() |
Chris@49 | 91 { |
Chris@49 | 92 arma_extra_debug_sigprint(); |
Chris@49 | 93 |
Chris@49 | 94 if(M_local) |
Chris@49 | 95 { |
Chris@49 | 96 delete M_local; |
Chris@49 | 97 } |
Chris@49 | 98 } |
Chris@49 | 99 |
Chris@49 | 100 |
Chris@49 | 101 // the order below is important |
Chris@49 | 102 const Cube<eT>* M_local; |
Chris@49 | 103 const Cube<eT>& M; |
Chris@49 | 104 |
Chris@49 | 105 }; |
Chris@49 | 106 |
Chris@49 | 107 |
Chris@49 | 108 |
Chris@49 | 109 //! @} |