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()69TransposeSpec() { 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()85double 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