Changeset 2148
- Timestamp:
- Jan 17, 2010, 4:16:27 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/normalization_test.cc
r2147 r2148 335 335 gauss(vec.begin(), vec.end(), vec.begin()); 336 336 suite.add(suite.equal(vec.front(), -vec.back())); 337 337 // compile test should not be run 338 if (false) { 339 gauss(boost::random_access_iterator_archetype<double>(), 340 boost::random_access_iterator_archetype<double>(), 341 boost::mutable_random_access_iterator_archetype<double>()); 342 } 338 343 } 339 344 -
trunk/yat/normalizer/Gauss.h
r2119 r2148 27 27 #include "yat/utility/iterator_traits.h" 28 28 29 #include <boost/concept_check.hpp> 30 29 31 #include <gsl/gsl_cdf.h> 32 33 #include <iterator> 30 34 31 35 namespace theplu { … … 53 57 same. 54 58 59 Type requirements: 60 - ForwardIterator must be a \forward_iterator and a \ref 61 concept_data_iterator. 62 - RandomAccessIterator must be a mutable \random_access_iterator 63 and a \ref concept_data_iterator. 64 55 65 \see gsl_cdf_ugaussian_Pinv 56 66 */ 57 template<typename ForwardIterator, typename RandomAccessIterator>58 void operator()( ForwardIterator first, ForwardIteratorlast,59 RandomAccessIter atorresult) const67 template<typename RandomAccessIter1, typename RandomAccessIter2> 68 void operator()(RandomAccessIter1 first, RandomAccessIter1 last, 69 RandomAccessIter2 result) const 60 70 { 71 boost::function_requires<boost::RandomAccessIterator<RandomAccessIter1> >(); 72 boost::function_requires<boost::Mutable_RandomAccessIterator<RandomAccessIter2> >(); 61 73 Spearman spearman; 62 74 spearman(first, last, result); 63 RandomAccessIter ator end = result +distance(first, last);64 utility::iterator_traits<RandomAccessIter ator> trait;75 RandomAccessIter2 end = result + std::distance(first, last); 76 utility::iterator_traits<RandomAccessIter2> trait; 65 77 while (result != end) { 66 78 trait.data(result) = gsl_cdf_ugaussian_Pinv(trait.data(result)); -
trunk/yat/normalizer/Spearman.h
r2119 r2148 70 70 private: 71 71 // unweighted version 72 template<typename ForwardIterator, typename RandomAccessIterator>73 void normalize( ForwardIterator first, ForwardIteratorlast,74 RandomAccessIter atorresult,72 template<typename RandomAccessIter1, typename RandomAccessIter2> 73 void normalize(RandomAccessIter1 first, RandomAccessIter1 last, 74 RandomAccessIter2 result, 75 75 utility::unweighted_iterator_tag) const 76 76 { … … 91 91 92 92 // weighted version 93 template<typename ForwardIterator, typename RandomAccessIterator>94 void normalize( ForwardIterator first, ForwardIteratorlast,95 RandomAccessIter atorresult,93 template<typename RandomAccessIter1, typename RandomAccessIter2> 94 void normalize(RandomAccessIter1 first, RandomAccessIter1 last, 95 RandomAccessIter2 result, 96 96 utility::weighted_iterator_tag) const 97 97 { … … 100 100 utility::weight_iterator(result)); 101 101 // set values with w=0 to 0 to avoid problems with NaNs 102 utility::iterator_traits< ForwardIterator> trait;103 for ( ForwardIteratori=first; i!=last; ++i)102 utility::iterator_traits<RandomAccessIter1> trait; 103 for (RandomAccessIter1 i=first; i!=last; ++i) 104 104 if (trait.weight(i)==0) 105 105 trait.data(i)=0.0; … … 108 108 utility::sort_index(utility::data_iterator(first), 109 109 utility::data_iterator(last), perm); 110 utility::iterator_traits<RandomAccessIter ator> rtrait;110 utility::iterator_traits<RandomAccessIter2> rtrait; 111 111 112 112 double sum_w=0;
Note: See TracChangeset
for help on using the changeset viewer.