Changeset 1524 for trunk/yat


Ignore:
Timestamp:
Sep 23, 2008, 7:49:15 PM (13 years ago)
Author:
Peter
Message:

fixes #443

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/yat/normalizer/Zscore.h

    r1521 r1524  
    2222
    2323#include "yat/statistics/Averager.h"
     24#include "yat/statistics/AveragerWeighted.h"
     25
     26#include "yat/utility/iterator_traits.h"
    2427
    2528namespace theplu {
     
    5356                              OutputIterator result) const
    5457    {
     58      typename utility::weighted_iterator_traits<InputIterator>::type tag;
     59      return normalize(first, last, result, tag);
     60    }
     61
     62  private:
     63    template<class InputIterator, class OutputIterator>
     64    OutputIterator normalize(InputIterator first, InputIterator last,
     65                             OutputIterator result,
     66                             utility::unweighted_iterator_tag tag) const
     67    {
    5568      statistics::Averager a;
    5669      add(a, first, last);
     
    6578    }
    6679
     80    template<class InputIterator, class OutputIterator>
     81    OutputIterator normalize(InputIterator first, InputIterator last,
     82                             OutputIterator result,
     83                             utility::weighted_iterator_tag tag) const
     84    {
     85      std::copy(utility::weight_iterator(first),
     86                utility::weight_iterator(last),
     87                utility::weight_iterator(result));
     88      statistics::AveragerWeighted a;
     89      add(a, first, last);
     90      double m = a.mean();
     91      double std = a.std();
     92      utility::iterator_traits<InputIterator> trait;
     93      while (first!=last) {
     94        trait.data(result) = (trait.data(first) - m) / std;
     95        ++first;
     96        ++result;
     97      }
     98      return result;
     99    }
     100
    67101  };
    68102
Note: See TracChangeset for help on using the changeset viewer.