1 /*
2  * TransposeSpec.h
3  *
4  *  Created on: Jan 30, 2017
5  *      Author: arjun
6  */
7 
8 #ifndef TRANSPOSESPEC_H_
9 #define TRANSPOSESPEC_H_
10 
11 #include "ourproj.h"
12 
13 
14 class TransposeSpec {
15 	int ndim;
16 	 int* sizes;
17 	 int* permutation;
18 	TensorType dataType;
19 	 double beta = 0.0;
20 	 double alpha = 1.0;
21 
22 public:
getSizes()23 	int* getSizes() {
24 		return sizes;
25 	}
setSizes(int * sizes)26 	void setSizes(int* sizes) {
27 		this->sizes = sizes;
28 	}
getVolume()29 	unsigned long int getVolume()
30 	{
31 		unsigned long vol = 1;
32 		for(int i = 0; i < ndim; i++)
33 		{
34 			vol *= sizes[i];
35 		}
36 		return vol;
37 	}
38 
getPermutation()39 	int* getPermutation() {
40 		return permutation;
41 	}
setPermutation(int * permutation)42 	void setPermutation(int* permutation) {
43 		this->permutation = permutation;
44 	}
getDataType()45 	TensorType getDataType() {
46 		return dataType;
47 	}
setDataType(TensorType dataType)48 	void setDataType(TensorType dataType) {
49 		this->dataType = dataType;
50 	}
getBeta()51 	double getBeta() {
52 		return beta;
53 	}
setBeta(double beta)54 	void setBeta(double beta) {
55 		this->beta = beta;
56 	}
TransposeSpec(int ndim,int * sizes,int * perm,TensorType dataType)57 	TransposeSpec(int ndim, int *sizes, int *perm, TensorType dataType)
58 	{
59 		this->ndim = ndim;
60 		this->sizes = new int[ndim];
61 		this->permutation = new int[ndim];
62 		for(int i = 0; i < ndim; i++)
63 		{
64 			this->sizes[i] = sizes[i];
65 			this->permutation[i] = perm[i];
66 		}
67 		this->dataType = dataType;
68 	}
TransposeSpec()69 TransposeSpec() {
70 		// TODO Auto-generated constructor stub
71 
72 	}
73 
74 
75 	//virtual
~TransposeSpec()76 ~TransposeSpec(){};
77 
getNdim()78 	int getNdim() const {
79 		return ndim;
80 	}
81 
setNdim(int ndim)82 	void setNdim(int ndim) {
83 		this->ndim = ndim;
84 	}
getAlpha()85 double getAlpha() const
86 {
87     return alpha;
88 }
89 
90 void setAlpha(double alpha = 1.0)
91 {
92     this->alpha = alpha;
93 }
94 }
95 ;
96 
97 #endif /* TRANSPOSESPEC_H_ */
98