blob: 798a3c700ccf8e6efbf5ac69ad3c222aab7bd450 [file] [log] [blame]
Thomas Tsou20eb6d62013-11-09 14:30:41 -05001#include "signalVector.h"
2
3signalVector::signalVector(size_t size)
4 : Vector<complex>(size),
5 real(false), aligned(false), symmetry(NONE)
6{
7}
8
9signalVector::signalVector(size_t size, size_t start)
10 : Vector<complex>(size + start),
11 real(false), aligned(false), symmetry(NONE)
12{
13 mStart = mData + start;
14}
15
16signalVector::signalVector(complex *data, size_t start, size_t span)
17 : Vector<complex>(NULL, data + start, data + start + span),
18 real(false), aligned(false), symmetry(NONE)
19{
20}
21
22signalVector::signalVector(const signalVector &vector)
23 : Vector<complex>(vector.size() + vector.getStart()), aligned(false)
24{
25 mStart = mData + vector.getStart();
26 vector.copyTo(*this);
27 symmetry = vector.getSymmetry();
28 real = vector.isReal();
29};
30
31signalVector::signalVector(const signalVector &vector,
32 size_t start, size_t tail)
33 : Vector<complex>(start + vector.size() + tail), aligned(false)
34{
35 mStart = mData + start;
36 vector.copyTo(*this);
37 symmetry = vector.getSymmetry();
38 real = vector.isReal();
39};
40
41void signalVector::operator=(const signalVector& vector)
42{
43 resize(vector.size() + vector.getStart());
44 memcpy(mData, vector.mData, bytes());
45 mStart = mData + vector.getStart();
46}
47
48size_t signalVector::getStart() const
49{
50 return mStart - mData;
51}
52
Tom Tsou28670fb2015-08-21 19:32:58 -070053size_t signalVector::updateHistory()
54{
55 size_t num = getStart();
56
57 memmove(mData, mStart + this->size() - num, num * sizeof(complex));
58
59 return num;
60}
61
Thomas Tsou20eb6d62013-11-09 14:30:41 -050062Symmetry signalVector::getSymmetry() const
63{
64 return symmetry;
65}
66
67void signalVector::setSymmetry(Symmetry symmetry)
68{
69 this->symmetry = symmetry;
70}
71
72bool signalVector::isReal() const
73{
74 return real;
75}
76
77void signalVector::isReal(bool wOnly)
78{
79 real = wOnly;
80}
81
82bool signalVector::isAligned() const
83{
84 return aligned;
85}
86
87void signalVector::setAligned(bool aligned)
88{
89 this->aligned = aligned;
90}