21 #ifndef yap_DataPartition_h
22 #define yap_DataPartition_h
24 #include "fwd/DataPartition.h"
26 #include "fwd/DataPoint.h"
27 #include "fwd/DataSet.h"
39 class DataIterator :
public std::iterator<std::random_access_iterator_tag, DataPoint>
64 {
return (*
this += 1); }
72 {
return (*
this += -1); }
80 {
return (*
this += -n); }
95 {
return *(this->
Iterator_).operator->(); }
132 {
return (lhs += n); }
136 {
return (rhs + n); }
140 {
return (lhs + (-n)); }
144 {
return !(lhs > rhs); }
148 {
return !(lhs < rhs); }
152 {
return !(lhs == rhs); }
200 virtual const size_t size()
const
208 virtual const DataIterator::difference_type
difference(
const DataPointVector::iterator& lhs,
const DataPointVector::iterator& rhs)
const = 0;
249 static DataPointVector::iterator
end(
DataSet& ds);
280 static DataPartitionVector
create(
DataSet& dataSet,
unsigned n);
286 virtual const DataIterator::difference_type
difference(
const DataPointVector::iterator& lhs,
const DataPointVector::iterator& rhs)
const override
316 static DataPartitionVector
create(
DataSet& dataSet,
unsigned n);
const bool operator<=(const DataIterator &lhs, const DataIterator &rhs)
less-than-or-equal operator
Definition: DataPartition.h:143
virtual const DataIterator::difference_type difference(const DataPointVector::iterator &lhs, const DataPointVector::iterator &rhs) const override
Definition: DataPartition.h:286
const DataIterator & setBegin(DataPointVector::iterator it)
set begin
Definition: DataPartition.h:238
static DataPartitionVector create(DataSet &dataSet, unsigned n)
Definition: DataPartition.cxx:50
virtual const DataIterator & begin() const
Definition: DataPartition.h:192
virtual const DataIterator::difference_type difference(const DataPointVector::iterator &lhs, const DataPointVector::iterator &rhs) const =0
Definition: DataPartition.cxx:43
const DataIterator & setEnd(DataPointVector::iterator it)
set end
Definition: DataPartition.h:242
DataPartitionWeave(const StatusManager &sm, DataPointVector::iterator begin, DataPointVector::iterator end, unsigned spacing)
Definition: DataPartition.h:274
DataPartition(const DataAccessorSet &sDA)
Definition: DataPartition.h:171
static DataPartitionVector create(DataSet &dataSet, unsigned n)
Definition: DataPartition.cxx:65
DataPointVector::iterator Iterator_
iterator within vector<DataPoint>
Definition: DataPartition.h:126
bool operator!=(const CachedValue::Status &S, const CalculationStatus &s)
inequality operator for checking the CalculationStatus
Definition: CachedValue.h:157
friend DataIterator
grant friend status to DataIterator to call increment
Definition: DataPartition.h:211
Partition that iterates from begin to end jumping a specified spacing every increase.
Definition: DataPartition.h:265
DataPoint & operator*()
dereference operator
Definition: DataPartition.h:86
DataPartitionWeave(const DataAccessorSet &sDA, unsigned spacing)
Definition: DataPartition.h:294
friend const DataIterator::difference_type operator-(const DataIterator &lhs, const DataIterator &rhs)
subraction operator (between DataIterators)
Definition: DataPartition.cxx:16
unsigned Spacing_
spacing between data points for the weaving
Definition: DataPartition.h:302
DataIterator & operator++()
pre-increment operator
Definition: DataPartition.h:63
Class for holding data and cached values per data point for fast calculation.
Definition: DataPoint.h:35
const DataPoint & operator*() const
dereference operator (const)
Definition: DataPartition.h:90
virtual DataIterator & increment(DataIterator &it, DataIterator::difference_type n) const =0
DataIterator(const DataPartition &p)
Definition: DataPartition.h:45
const DataIterator operator-(const DataIterator &lhs, DataIterator::difference_type n)
subraction operator
Definition: DataPartition.h:139
friend DataPartition
grant friend status to DataPartition to access Iterator_
Definition: DataPartition.h:118
friend const bool operator>(const DataIterator &lhs, const DataIterator &rhs)
greater-than operator
Definition: DataPartition.h:106
DataPoint operator->()
pointer operator
Definition: DataPartition.h:94
Class holding a set of DataPoint objects.
Definition: DataSet.h:39
virtual ~DataPartition()=default
virtual destructor (defaulted)
const bool operator>=(const DataIterator &lhs, const DataIterator &rhs)
greater-than-or-equal operator
Definition: DataPartition.h:147
DataPartition & operator=(const DataPartition &)=default
copy assignment operator (defaulted)
friend const bool operator<(const DataIterator &lhs, const DataIterator &rhs)
less-than operator
Definition: DataPartition.h:102
Class defining a partition of the DataSet.
Definition: DataPartition.h:158
Definition: StatusManager.h:32
Class implementing a PWA model.
Definition: Model.h:56
virtual DataIterator & increment(DataIterator &it, DataIterator::difference_type n) const override
Definition: DataPartition.cxx:36
DataPartitionBlock(const StatusManager &sm, DataPointVector::iterator begin, DataPointVector::iterator end)
Definition: DataPartition.h:329
DataIterator & operator+=(DataIterator::difference_type n)
addition assignment operator
Definition: DataPartition.cxx:10
DataPointVector::iterator & rawIterator(DataIterator &it) const
Definition: DataPartition.h:224
const DataPointVector::iterator & rawIterator(const DataIterator &it) const
Definition: DataPartition.h:229
DataPoint operator[](DataIterator::difference_type n) const
access operator
Definition: DataPartition.h:114
DataPartitionBlock(const DataAccessorSet &sDA)
Definition: DataPartition.h:334
Class for iterating over a DataPartition.
Definition: DataPartition.h:39
DataPartition(const StatusManager &sm, DataPointVector::iterator begin, DataPointVector::iterator end)
Definition: DataPartition.h:166
const DataPartition * Partition_
owning DataPartition
Definition: DataPartition.h:123
static DataPartitionVector createBySize(DataSet &dataSet, size_t s)
Definition: DataPartition.cxx:91
DataIterator operator++(int)
post-increment operator
Definition: DataPartition.h:67
const DataIterator operator+(DataIterator lhs, DataIterator::difference_type n)
addition operator
Definition: DataPartition.h:131
DataIterator & operator--()
pre-decrement operator
Definition: DataPartition.h:71
virtual const DataIterator & end() const
Definition: DataPartition.h:196
DataIterator dataIterator(DataPointVector::iterator it, const DataPartition *part) const
Definition: DataPartition.h:234
DataIterator(const DataPartition &p, DataPointVector::iterator it)
Definition: DataPartition.h:51
const DataIterator operator--(int)
post-decrement operator
Definition: DataPartition.h:75
bool ownedBy(const DataPartition &dp) const
check ownership
Definition: DataPartition.h:98
virtual const size_t size() const
Definition: DataPartition.h:200
DataIterator End_
end DataIterator
Definition: DataPartition.h:257
friend const bool operator==(const DataIterator &lhs, const DataIterator &rhs)
equality operator
Definition: DataPartition.h:110
DataIterator & operator-=(DataIterator::difference_type n)
subtraction assignment operator
Definition: DataPartition.h:79
A contiguous block of data.
Definition: DataPartition.h:309
DataIterator Begin_
begin DataIterator
Definition: DataPartition.h:254