blob: 55dad9293055839ec1d12fde41aa90f7c3afc5da [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
Alexander Chemerise56bf3a2017-03-17 22:34:20 -070048signalVector signalVector::segment(size_t start, size_t span)
49{
50 return signalVector(mData, start, span);
51}
52
Thomas Tsou20eb6d62013-11-09 14:30:41 -050053size_t signalVector::getStart() const
54{
55 return mStart - mData;
56}
57
Tom Tsou28670fb2015-08-21 19:32:58 -070058size_t signalVector::updateHistory()
59{
60 size_t num = getStart();
61
62 memmove(mData, mStart + this->size() - num, num * sizeof(complex));
63
64 return num;
65}
66
Thomas Tsou20eb6d62013-11-09 14:30:41 -050067Symmetry signalVector::getSymmetry() const
68{
69 return symmetry;
70}
71
72void signalVector::setSymmetry(Symmetry symmetry)
73{
74 this->symmetry = symmetry;
75}
76
77bool signalVector::isReal() const
78{
79 return real;
80}
81
82void signalVector::isReal(bool wOnly)
83{
84 real = wOnly;
85}
86
87bool signalVector::isAligned() const
88{
89 return aligned;
90}
91
92void signalVector::setAligned(bool aligned)
93{
94 this->aligned = aligned;
95}