source: trunk/yat/classifier/KNN_ReciprocalRank.cc @ 2881

Last change on this file since 2881 was 2881, checked in by Peter, 10 years ago

Define PP variables in config.h rather than in CPPFLAGS. Include
config.h into all source files. Only ammend CXXFLAGS with '-Wall
-pedantic' when --enable-debug. In default mode we respect CXXFLAGS
value set by user, or set to default value '-O3'.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 1.4 KB
Line 
1// $Id: KNN_ReciprocalRank.cc 2881 2012-11-18 01:28:05Z peter $
2
3/*
4  Copyright (C) 2008 Jari Häkkinen, Peter Johansson, Markus Ringnér
5
6  This file is part of the yat library, http://dev.thep.lu.se/yat
7
8  The yat library is free software; you can redistribute it and/or
9  modify it under the terms of the GNU General Public License as
10  published by the Free Software Foundation; either version 3 of the
11  License, or (at your option) any later version.
12
13  The yat library is distributed in the hope that it will be useful,
14  but WITHOUT ANY WARRANTY; without even the implied warranty of
15  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  General Public License for more details.
17
18  You should have received a copy of the GNU General Public License
19  along with yat. If not, see <http://www.gnu.org/licenses/>.
20*/
21
22#include <config.h>
23
24#include "KNN_ReciprocalRank.h"
25#include "Target.h"
26
27#include "yat/utility/VectorBase.h"
28#include "yat/utility/VectorMutable.h"
29
30#include <cmath>
31#include <vector>
32
33namespace theplu {
34namespace yat {
35namespace classifier {
36
37  void KNN_ReciprocalRank::operator()(const utility::VectorBase& distance,
38                                      const std::vector<size_t>& k_sorted, 
39                                      const Target& target, 
40                                      utility::VectorMutable& prediction) const
41  {           
42    for(size_t j=0;j<k_sorted.size();j++) 
43      if(!std::isinf(distance(k_sorted[j])))
44         prediction(target(k_sorted[j]))+=1.0/(j+1);               
45  }
46
47}}}
Note: See TracBrowser for help on using the repository browser.