qse  0.5.4
qsecolumn.cpp
Go to the documentation of this file.
1 #include "qsecolumn.h"
2 #include "qsescan.h"
3 
4 #define _USE_MATH_DEFINES
5 
6 #include <math.h>
7 
8 QMutex QseColumn::m_Mutex(QMutex::Recursive);
9 
10 QseColumn::QseColumn(const QString nm)
11  : QObject(NULL),
12 // m_Role(UnspecifiedRole),
13  m_Name(nm)
14 {}
15 
17 {}
18 
19 // void QseColumn::setName(QString n)
20 // {
21 // QMutexLocker lock(&m_Mutex);
22 
23 // m_Name = n;
24 // }
25 
26 QString QseColumn::name() const
27 {
28  const QMutexLocker lock(&m_Mutex);
29 
30  return m_Name;
31 }
32 
34 {
35  QMutexLocker lock(&m_Mutex);
36 
37  m_Name="";
38  m_Data.clear();
39 }
40 
41 void QseColumn::appendData(double v)
42 {
43  QMutexLocker lock(&m_Mutex);
44 
45  m_Data.push_back(v);
46 }
47 
49 {
50  QMutexLocker lock(&m_Mutex);
51 
52  return m_Data.size();
53 }
54 
56 {
57  QMutexLocker lock(&m_Mutex);
58 
59  m_Data.resize(n);
60 }
61 
62 const double* QseColumn::data() const
63 {
64  QMutexLocker lock(&m_Mutex);
65 
66  return m_Data.begin();
67 }
68 
69 double QseColumn::data(int n) const
70 {
71  if ((0 <= n) && (n < rowCount())) {
72  QMutexLocker lock(&m_Mutex);
73  return m_Data.at(n);
74  } else {
75  return 0;
76  }
77 }
78 
79 void QseColumn::setData(int n, double v)
80 {
81  QMutexLocker lock(&m_Mutex);
82 
83  m_Data[n] = v;
84 }
85 
87 {
88  if (col) {
89  int nr0 = rowCount(), nr1 = col -> rowCount();
90  int nr = (nr0 < nr1 ? nr0 : nr1);
91 
92  QMutexLocker lock(&m_Mutex);
93 
94  for (int i = 0; i < nr; i++) {
95  m_Data[i] += col -> data(i);
96  }
97  }
98 }
99 
101 {
102  if (col) {
103  int nr0 = rowCount(), nr1 = col -> rowCount();
104  int nr = (nr0 < nr1 ? nr0 : nr1);
105 
106  QMutexLocker lock(&m_Mutex);
107 
108  for (int i = 0; i < nr; i++) {
109  m_Data[i] -= col -> data(i);
110  }
111  }
112 }
113 
115 {
116  if (col) {
117  int nr0 = rowCount(), nr1 = col -> rowCount();
118  int nr = (nr0 < nr1 ? nr0 : nr1);
119 
120  QMutexLocker lock(&m_Mutex);
121 
122  for (int i = 0; i < nr; i++) {
123  m_Data[i] *= col -> data(i);
124  }
125  }
126 }
127 
129 {
130  if (col) {
131  int nr0 = rowCount(), nr1 = col -> rowCount();
132  int nr = (nr0 < nr1 ? nr0 : nr1);
133 
134  QMutexLocker lock(&m_Mutex);
135 
136  for (int i = 0; i < nr; i++) {
137  m_Data[i] /= col -> data(i);
138  }
139  }
140 }
141 
143 {
144  if (col) {
145  int nr0 = rowCount(), nr1 = col -> rowCount();
146  int nr = (nr0 < nr1 ? nr0 : nr1);
147 
148  QMutexLocker lock(&m_Mutex);
149 
150  for (int i = 0; i < nr; i++) {
151  m_Data[i] = col -> data(i);
152  }
153  }
154 }
155 
156 void QseColumn::addition(const double val)
157 {
158  int nr = rowCount();
159 
160  QMutexLocker lock(&m_Mutex);
161 
162  for (int i = 0; i < nr; i++) {
163  m_Data[i] += val;
164  }
165 }
166 
167 void QseColumn::subtraction(const double val)
168 {
169  int nr = rowCount();
170 
171  QMutexLocker lock(&m_Mutex);
172 
173  for (int i = 0; i < nr; i++) {
174  m_Data[i] -= val;
175  }
176 }
177 
178 void QseColumn::multiplication(const double val)
179 {
180  int nr = rowCount();
181 
182  QMutexLocker lock(&m_Mutex);
183 
184  for (int i = 0; i < nr; i++) {
185  m_Data[i] *= val;
186  }
187 }
188 
189 void QseColumn::division(const double val)
190 {
191  int nr = rowCount();
192 
193  QMutexLocker lock(&m_Mutex);
194 
195  for (int i = 0; i < nr; i++) {
196  m_Data[i] /= val;
197  }
198 }
199 
200 void QseColumn::assignment(const double val)
201 {
202  int nr = rowCount();
203 
204  QMutexLocker lock(&m_Mutex);
205 
206  for (int i = 0; i < nr; i++) {
207  m_Data[i] = val;
208  }
209 }
const double * data() const
Definition: qsecolumn.cpp:62
void addition(const QseColumn *col)
Definition: qsecolumn.cpp:86
static QMutex m_Mutex
Definition: qsecolumn.h:47
QString m_Name
Definition: qsecolumn.h:45
void appendData(double v)
Definition: qsecolumn.cpp:41
void subtraction(const QseColumn *col)
Definition: qsecolumn.cpp:100
QseColumn(const QString nm)
Definition: qsecolumn.cpp:10
void multiplication(const QseColumn *col)
Definition: qsecolumn.cpp:114
int rowCount() const
Definition: qsecolumn.cpp:48
void division(const QseColumn *col)
Definition: qsecolumn.cpp:128
void clear()
Definition: qsecolumn.cpp:33
void setData(int n, double v)
Definition: qsecolumn.cpp:79
void setRowCount(int n)
Definition: qsecolumn.cpp:55
QString name() const
Definition: qsecolumn.cpp:26
QVector< double > m_Data
Definition: qsecolumn.h:46
void assignment(const QseColumn *col)
Definition: qsecolumn.cpp:142