annotate armadillo-2.4.4/include/armadillo_bits/span.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) 2010-2011 NICTA (www.nicta.com.au)
|
max@0
|
2 // Copyright (C) 2010-2011 Conrad Sanderson
|
max@0
|
3 // Copyright (C) 2011 Stanislav Funiak
|
max@0
|
4 //
|
max@0
|
5 // This file is part of the Armadillo C++ library.
|
max@0
|
6 // It is provided without any warranty of fitness
|
max@0
|
7 // for any purpose. You can redistribute this file
|
max@0
|
8 // and/or modify it under the terms of the GNU
|
max@0
|
9 // Lesser General Public License (LGPL) as published
|
max@0
|
10 // by the Free Software Foundation, either version 3
|
max@0
|
11 // of the License or (at your option) any later version.
|
max@0
|
12 // (see http://www.opensource.org/licenses for more info)
|
max@0
|
13
|
max@0
|
14
|
max@0
|
15
|
max@0
|
16 //! \addtogroup span
|
max@0
|
17 //! @{
|
max@0
|
18
|
max@0
|
19
|
max@0
|
20 struct span_alt {};
|
max@0
|
21
|
max@0
|
22
|
max@0
|
23 template<typename Dummy = int>
|
max@0
|
24 class span_base
|
max@0
|
25 {
|
max@0
|
26 public:
|
max@0
|
27 static const span_alt all;
|
max@0
|
28 };
|
max@0
|
29
|
max@0
|
30
|
max@0
|
31 template<typename Dummy>
|
max@0
|
32 const span_alt span_base<Dummy>::all = span_alt();
|
max@0
|
33
|
max@0
|
34
|
max@0
|
35 class span : public span_base<>
|
max@0
|
36 {
|
max@0
|
37 public:
|
max@0
|
38
|
max@0
|
39 uword a;
|
max@0
|
40 uword b;
|
max@0
|
41 bool whole;
|
max@0
|
42
|
max@0
|
43 inline
|
max@0
|
44 span()
|
max@0
|
45 : whole(true)
|
max@0
|
46 {
|
max@0
|
47 }
|
max@0
|
48
|
max@0
|
49
|
max@0
|
50 inline
|
max@0
|
51 span(const span_alt&)
|
max@0
|
52 : whole(true)
|
max@0
|
53 {
|
max@0
|
54 }
|
max@0
|
55
|
max@0
|
56 // TODO:
|
max@0
|
57 // if the "explicit" keyword is removed or commented out,
|
max@0
|
58 // the compiler will be able to automatically convert integers to an instance of the span class.
|
max@0
|
59 // this is useful for Cube::operator()(span&, span&, span&),
|
max@0
|
60 // but it might have unintended consequences or interactions elsewhere.
|
max@0
|
61 // as such, removal of "explicit" needs thorough testing.
|
max@0
|
62 inline
|
max@0
|
63 explicit
|
max@0
|
64 span(const uword in_a)
|
max@0
|
65 : a(in_a)
|
max@0
|
66 , b(in_a)
|
max@0
|
67 , whole(false)
|
max@0
|
68 {
|
max@0
|
69 }
|
max@0
|
70
|
max@0
|
71 inline
|
max@0
|
72 span(const uword in_a, const uword in_b)
|
max@0
|
73 : a(in_a)
|
max@0
|
74 , b(in_b)
|
max@0
|
75 , whole(false)
|
max@0
|
76 {
|
max@0
|
77 }
|
max@0
|
78
|
max@0
|
79 };
|
max@0
|
80
|
max@0
|
81
|
max@0
|
82
|
max@0
|
83 //! @}
|