Cheetah - SKA - PSS - Prototype Time Domain Search Pipeline
SeriesSlice.cpp
1 #include "cheetah/data/SeriesSlice.h"
2 #include <iterator>
3 
4 namespace ska {
5 namespace cheetah {
6 namespace data {
7 
8 template <typename SeriesType>
9 SeriesSlice<SeriesType>::SeriesSlice(Iterator start_it, Iterator end_it)
10  : _start_it(std::move(start_it))
11  , _end_it(std::move(end_it))
12 {
13 }
14 
15 template <typename SeriesType>
17 {
18 }
19 
20 template <typename SeriesType>
21 typename SeriesSlice<SeriesType>::Iterator SeriesSlice<SeriesType>::begin()
22 {
23  return _start_it;
24 }
25 
26 template <typename SeriesType>
27 typename SeriesSlice<SeriesType>::ConstIterator SeriesSlice<SeriesType>::begin() const
28 {
29  return _start_it;
30 }
31 
32 template <typename SeriesType>
33 typename SeriesSlice<SeriesType>::ConstIterator SeriesSlice<SeriesType>::cbegin() const
34 {
35  return _start_it;
36 }
37 
38 template <typename SeriesType>
39 typename SeriesSlice<SeriesType>::Iterator SeriesSlice<SeriesType>::end()
40 {
41  return _end_it;
42 }
43 
44 template <typename SeriesType>
45 typename SeriesSlice<SeriesType>::ConstIterator SeriesSlice<SeriesType>::end() const
46 {
47  return _end_it;
48 }
49 
50 template <typename SeriesType>
51 typename SeriesSlice<SeriesType>::ConstIterator SeriesSlice<SeriesType>::cend() const
52 {
53  return _end_it;
54 }
55 
56 template <typename SeriesType>
57 typename SeriesSlice<SeriesType>::Reference SeriesSlice<SeriesType>::operator[](std::size_t n)
58 {
59  return *(_start_it + n);
60 }
61 
62 template <typename SeriesType>
63 typename SeriesSlice<SeriesType>::ConstReference SeriesSlice<SeriesType>::operator[](std::size_t n) const
64 {
65  return *(_start_it + n);
66 }
67 
68 template <typename SeriesType>
69 std::size_t SeriesSlice<SeriesType>::size() const
70 {
71  return std::distance(_start_it,_end_it);
72 }
73 
74 template <typename SeriesType>
75 typename SeriesSlice<SeriesType>::Pointer SeriesSlice<SeriesType>::data()
76 {
77  return &(*(_start_it));
78 }
79 
80 template <typename SeriesType>
81 typename SeriesSlice<SeriesType>::ConstPointer SeriesSlice<SeriesType>::data() const
82 {
83  return &(*(_start_it));
84 }
85 
86 } // namespace data
87 } // namespace cheetah
88 } // namespace ska
SeriesSlice(Iterator start_it, Iterator end_it)
Construct a new instance.
Definition: SeriesSlice.cpp:9
Reference operator[](std::size_t n)
Return a reference to the nth element of the slice.
Definition: SeriesSlice.cpp:57
Iterator end()
Return an iterator pointing to the end of the slice.
Definition: SeriesSlice.cpp:39
std::size_t size() const
Return the number of elements in the slice.
Definition: SeriesSlice.cpp:69
Iterator begin()
Return an iterator pointing to the start of the slice.
Definition: SeriesSlice.cpp:21
Some limits and constants for FLDO.
Definition: Brdz.h:35
A view into a series-like container.
Definition: SeriesSlice.h:17
Pointer data()
Return a pointer to the first element of the slice.
Definition: SeriesSlice.cpp:75