Changeset 1103 for XIOS/dev/branch_yushan/src/transformation/Functions
- Timestamp:
- 04/21/17 17:39:29 (7 years ago)
- Location:
- XIOS/dev/branch_yushan/src/transformation/Functions
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_yushan/src/transformation/Functions/reduction.cpp
r979 r1103 9 9 10 10 CReductionAlgorithm::CallBackMap* CReductionAlgorithm::reductionCreationCallBacks_ = 0; 11 std::map<StdString,EReductionType> CReductionAlgorithm::ReductionOperations = std::map<StdString,EReductionType>(); 12 bool CReductionAlgorithm::initReductionOperation(std::map<StdString,EReductionType>& m) 11 //std::map<StdString,EReductionType> CReductionAlgorithm::ReductionOperations = std::map<StdString,EReductionType>(); 12 std::map<StdString,EReductionType> *CReductionAlgorithm::ReductionOperations_ptr = 0; 13 14 // bool CReductionAlgorithm::initReductionOperation(std::map<StdString,EReductionType>& m) 15 // { 16 // // So so stupid way to intialize operation but it works ... 17 // m["sum"] = TRANS_REDUCE_SUM; 18 // CSumReductionAlgorithm::registerTrans(); 19 20 // m["min"] = TRANS_REDUCE_MIN; 21 // CMinReductionAlgorithm::registerTrans(); 22 23 // m["max"] = TRANS_REDUCE_MAX; 24 // CMaxReductionAlgorithm::registerTrans(); 25 26 // m["extract"] = TRANS_REDUCE_EXTRACT; 27 // CExtractReductionAlgorithm::registerTrans(); 28 29 // m["average"] = TRANS_REDUCE_AVERAGE; 30 // CAverageReductionAlgorithm::registerTrans(); 31 // } 32 33 bool CReductionAlgorithm::initReductionOperation(std::map<StdString,EReductionType>* m) 13 34 { 35 if(m==NULL) m=new std::map<StdString,EReductionType>(); 14 36 // So so stupid way to intialize operation but it works ... 15 m["sum"] = TRANS_REDUCE_SUM;37 (*m)["sum"] = TRANS_REDUCE_SUM; 16 38 CSumReductionAlgorithm::registerTrans(); 17 39 18 m["min"] = TRANS_REDUCE_MIN;40 (*m)["min"] = TRANS_REDUCE_MIN; 19 41 CMinReductionAlgorithm::registerTrans(); 20 42 21 m["max"] = TRANS_REDUCE_MAX;43 (*m)["max"] = TRANS_REDUCE_MAX; 22 44 CMaxReductionAlgorithm::registerTrans(); 23 45 24 m["extract"] = TRANS_REDUCE_EXTRACT;46 (*m)["extract"] = TRANS_REDUCE_EXTRACT; 25 47 CExtractReductionAlgorithm::registerTrans(); 26 48 27 m["average"] = TRANS_REDUCE_AVERAGE;49 (*m)["average"] = TRANS_REDUCE_AVERAGE; 28 50 CAverageReductionAlgorithm::registerTrans(); 29 51 } 30 52 31 bool CReductionAlgorithm::_dummyInit = CReductionAlgorithm::initReductionOperation(CReductionAlgorithm::ReductionOperations); 53 //bool CReductionAlgorithm::_dummyInit = CReductionAlgorithm::initReductionOperation(CReductionAlgorithm::ReductionOperations); 54 bool CReductionAlgorithm::_dummyInit = CReductionAlgorithm::initReductionOperation(CReductionAlgorithm::ReductionOperations_ptr); 32 55 33 56 CReductionAlgorithm* CReductionAlgorithm::createOperation(EReductionType reduceType) 34 57 { 35 58 int reduceTypeInt = reduceType; 59 if (0 == reductionCreationCallBacks_) 60 reductionCreationCallBacks_ = new CallBackMap(); 61 36 62 CallBackMap::const_iterator it = (*reductionCreationCallBacks_).find(reduceType); 37 63 if ((*reductionCreationCallBacks_).end() == it) -
XIOS/dev/branch_yushan/src/transformation/Functions/reduction.hpp
r1079 r1103 23 23 { 24 24 public: 25 static std::map<StdString,EReductionType> ReductionOperations; 25 //static std::map<StdString,EReductionType> ReductionOperations; 26 static std::map<StdString,EReductionType> *ReductionOperations_ptr; 27 #pragma omp threadprivate(ReductionOperations_ptr) 26 28 27 29 public: … … 59 61 typedef std::map<EReductionType, CreateOperationCallBack> CallBackMap; 60 62 static CallBackMap* reductionCreationCallBacks_; 61 //#pragma omp threadprivate(reductionCreationCallBacks_)63 #pragma omp threadprivate(reductionCreationCallBacks_) 62 64 63 65 static bool registerOperation(EReductionType reduceType, CreateOperationCallBack createFn); … … 65 67 66 68 protected: 67 static bool initReductionOperation(std::map<StdString,EReductionType>& m); 69 //static bool initReductionOperation(std::map<StdString,EReductionType>& m); 70 static bool initReductionOperation(std::map<StdString,EReductionType>* m); 68 71 static bool _dummyInit; 69 //#pragma omp threadprivate(_dummyInit)72 #pragma omp threadprivate(_dummyInit) 70 73 }; 71 74
Note: See TracChangeset
for help on using the changeset viewer.