source: s10k/XmlTools/multidimvar.cpp@ 1088

Last change on this file since 1088 was 1073, checked in by s10k, 7 years ago

added XML Tools latest version (2.0d) and s10k's common libs

File size: 2.1 KB
Line 
1#include "multidimvar.h"
2
3// Receives a string with a value with multiple dimensions separated by space
4// Example of input "5 4 6". Variable with dim1=5, dim2=4, dim3=6.
5MultiDimVar::MultiDimVar(QString multiDimValue)
6{
7 this->multiDimValue=UtilXmlTools::qListDoubleFromSpacedString(multiDimValue);
8}
9
10// Inicializes a new MultiDimVar with the dimensions specified with all zero values
11MultiDimVar::MultiDimVar(int dim){
12
13 for(int i=0; i<dim; i++){
14 this->multiDimValue.append(0);
15 }
16
17}
18
19// Sums 2 MultiDimVar values
20MultiDimVar MultiDimVar::sum(const MultiDimVar &val1, const MultiDimVar &val2){
21 MultiDimVar result(val1.multiDimValue.size());
22
23 if(val1.multiDimValue.size()!=val2.multiDimValue.size()){
24 UtilXmlTools::displayErrorMessage("MultiDimVar sum","Error summing MultiDimVar, variables don't have the same dimensions.");
25 }
26
27 for(int i=0; i<result.multiDimValue.size(); i++){
28 result.multiDimValue[i]=val1.multiDimValue[i]+val2.multiDimValue[i];
29 }
30
31 return result;
32}
33
34// Subtract 2 MultiDimVar values
35MultiDimVar MultiDimVar::sub(const MultiDimVar &val1, const MultiDimVar &val2){
36 MultiDimVar result(val1.multiDimValue.size());
37
38 if(val1.multiDimValue.size()!=val2.multiDimValue.size()){
39 UtilXmlTools::displayErrorMessage("MultiDimVar subtraction","Error subtracting MultiDimVar, variables don't have the same dimensions.");
40 }
41
42 for(int i=0; i<result.multiDimValue.size(); i++){
43 result.multiDimValue[i]=val1.multiDimValue[i]-val2.multiDimValue[i];
44 }
45
46 return result;
47}
48
49// Returns a string representation of this multidimensional value as string.
50// Each dimension is separated by a space.
51QString MultiDimVar::toString(){
52
53 QString result;
54
55 for(int i=0; i<this->multiDimValue.size()-1; i++){
56 result += QString::number(this->multiDimValue[i],'G',9) + " "; // G is the option used by onisplit
57 }
58
59 result += QString::number(this->multiDimValue[this->multiDimValue.size()-1],'G',9); // last one does not have a space at the end
60
61 return result;
62
63}
Note: See TracBrowser for help on using the repository browser.