Changeset 1523
- Timestamp:
- Sep 23, 2008, 7:32:49 PM (14 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/normalization_test.cc
r1521 r1523 74 74 for (size_t i=0; i<vec.size(); ++i) 75 75 suite.add(suite.equal(vec[i], static_cast<double>(i)-1.0)); 76 77 std::vector<utility::DataWeight> vec2; 78 vec2.push_back(utility::DataWeight(1,1)); 79 vec2.push_back(utility::DataWeight(2,0.5)); 80 vec2.push_back(utility::DataWeight(2,0.5)); 81 std::vector<utility::DataWeight> vec3(vec2.size()); 82 c(vec2.begin(), vec2.end(), vec3.begin()); 83 for (size_t i=0; i<vec2.size(); ++i) 84 suite.add(suite.equal(vec3[i].weight(), vec2[i].weight())); 85 suite.add(suite.equal(vec3[0].data(), -0.5)); 86 suite.add(suite.equal(vec3[1].data(), 0.5)); 87 suite.add(suite.equal(vec3[2].data(), 0.5)); 88 76 89 } 77 90 -
trunk/yat/normalizer/Centralizer.h
r1497 r1523 22 22 23 23 #include "yat/statistics/Average.h" 24 #include "yat/utility/DataIterator.h" 25 #include "yat/utility/iterator_traits.h" 26 #include "yat/utility/WeightIterator.h" 24 27 25 28 #include <algorithm> … … 73 76 OutputIterator result) const 74 77 { 78 typename utility::weighted_iterator_traits<InputIterator>::type tag; 79 return normalize(first, last, result, tag); 80 81 } 82 83 private: 84 UnaryFunction func_; 85 86 // unweighted version 87 template<class InputIterator, class OutputIterator> 88 OutputIterator normalize(InputIterator first, InputIterator last, 89 OutputIterator result, 90 utility::unweighted_iterator_tag tag) const 91 { 75 92 return std::transform(first, last, 76 93 result, std::bind2nd(std::minus<double>(), … … 78 95 } 79 96 80 private: 81 UnaryFunction func_; 97 98 // weighted version 99 template<class InputIterator, class OutputIterator> 100 OutputIterator normalize(InputIterator first, InputIterator last, 101 OutputIterator result, 102 utility::weighted_iterator_tag tag) const 103 { 104 std::copy(utility::weight_iterator(first), 105 utility::weight_iterator(last), 106 utility::weight_iterator(result)); 107 std::transform(utility::data_iterator(first), 108 utility::data_iterator(last), 109 utility::data_iterator(result), 110 std::bind2nd(std::minus<double>(), 111 func_(first, last))); 112 return result + std::distance(first, last); 113 } 114 82 115 }; 83 116
Note: See TracChangeset
for help on using the changeset viewer.