00001 #ifndef theplu_yat_statistics_pearson_distance_h 00002 #define theplu_yat_statistics_pearson_distance_h 00003 00004 // $Id: PearsonDistance.h 1797 2009-02-12 18:07:10Z peter $ 00005 00006 /* 00007 Copyright (C) 2007, 2008 Jari Häkkinen, Peter Johansson, Markus Ringnér 00008 00009 This file is part of the yat library, http://dev.thep.lu.se/yat 00010 00011 The yat library is free software; you can redistribute it and/or 00012 modify it under the terms of the GNU General Public License as 00013 published by the Free Software Foundation; either version 3 of the 00014 License, or (at your option) any later version. 00015 00016 The yat library is distributed in the hope that it will be useful, 00017 but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00019 General Public License for more details. 00020 00021 You should have received a copy of the GNU General Public License 00022 along with yat. If not, see <http://www.gnu.org/licenses/>. 00023 */ 00024 00025 #include "averager_traits.h" 00026 #include "yat/utility/iterator_traits.h" 00027 00028 namespace theplu { 00029 namespace yat { 00030 namespace statistics { 00031 00037 struct PearsonDistance 00038 { 00057 template <typename Iter1, typename Iter2> 00058 double operator() 00059 (Iter1 beg1,Iter1 end1, Iter2 beg2) const 00060 { 00061 typename averager_pair<Iter1, Iter2>::type ap; 00062 add(ap,beg1,end1,beg2); 00063 return 1-ap.correlation(); 00064 } 00065 }; 00066 00067 }}} // of namespace statistics, yat, and theplu 00068 00069 #endif