- Timestamp:
- 05/02/17 16:20:47 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
XIOS/dev/branch_yushan/src/transformation/Functions/reduction.cpp
r1103 r1109 12 12 std::map<StdString,EReductionType> *CReductionAlgorithm::ReductionOperations_ptr = 0; 13 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) 14 bool CReductionAlgorithm::initReductionOperation(std::map<StdString,EReductionType>& m) 34 15 { 35 if(m==NULL) m=new std::map<StdString,EReductionType>();36 16 // So so stupid way to intialize operation but it works ... 37 (*m)["sum"] = TRANS_REDUCE_SUM;17 m["sum"] = TRANS_REDUCE_SUM; 38 18 CSumReductionAlgorithm::registerTrans(); 39 19 40 (*m)["min"] = TRANS_REDUCE_MIN;20 m["min"] = TRANS_REDUCE_MIN; 41 21 CMinReductionAlgorithm::registerTrans(); 42 22 43 (*m)["max"] = TRANS_REDUCE_MAX;23 m["max"] = TRANS_REDUCE_MAX; 44 24 CMaxReductionAlgorithm::registerTrans(); 45 25 46 (*m)["extract"] = TRANS_REDUCE_EXTRACT;26 m["extract"] = TRANS_REDUCE_EXTRACT; 47 27 CExtractReductionAlgorithm::registerTrans(); 48 28 49 (*m)["average"] = TRANS_REDUCE_AVERAGE; 29 m["average"] = TRANS_REDUCE_AVERAGE; 30 CAverageReductionAlgorithm::registerTrans(); 31 } 32 33 34 bool CReductionAlgorithm::initReductionOperation() 35 { 36 if(CReductionAlgorithm::ReductionOperations_ptr == NULL) CReductionAlgorithm::ReductionOperations_ptr = new std::map<StdString,EReductionType>(); 37 // So so stupid way to intialize operation but it works ... 38 (*CReductionAlgorithm::ReductionOperations_ptr)["sum"] = TRANS_REDUCE_SUM; 39 CSumReductionAlgorithm::registerTrans(); 40 41 (*CReductionAlgorithm::ReductionOperations_ptr)["min"] = TRANS_REDUCE_MIN; 42 CMinReductionAlgorithm::registerTrans(); 43 44 (*CReductionAlgorithm::ReductionOperations_ptr)["max"] = TRANS_REDUCE_MAX; 45 CMaxReductionAlgorithm::registerTrans(); 46 47 (*CReductionAlgorithm::ReductionOperations_ptr)["extract"] = TRANS_REDUCE_EXTRACT; 48 CExtractReductionAlgorithm::registerTrans(); 49 50 (*CReductionAlgorithm::ReductionOperations_ptr)["average"] = TRANS_REDUCE_AVERAGE; 50 51 CAverageReductionAlgorithm::registerTrans(); 51 52 } 52 53 53 54 //bool CReductionAlgorithm::_dummyInit = CReductionAlgorithm::initReductionOperation(CReductionAlgorithm::ReductionOperations); 54 bool CReductionAlgorithm::_dummyInit = CReductionAlgorithm::initReductionOperation( CReductionAlgorithm::ReductionOperations_ptr);55 bool CReductionAlgorithm::_dummyInit = CReductionAlgorithm::initReductionOperation(); 55 56 56 57 CReductionAlgorithm* CReductionAlgorithm::createOperation(EReductionType reduceType) 57 58 { 58 59 int reduceTypeInt = reduceType; 59 if (0 == reductionCreationCallBacks_)60 reductionCreationCallBacks_ = new CallBackMap();60 //if (0 == reductionCreationCallBacks_) 61 // reductionCreationCallBacks_ = new CallBackMap(); 61 62 62 63 CallBackMap::const_iterator it = (*reductionCreationCallBacks_).find(reduceType);
Note: See TracChangeset
for help on using the changeset viewer.