00001 /*========================================================================== 00002 * Copyright (c) 2001 Carnegie Mellon University. All Rights Reserved. 00003 * 00004 * Use of the Lemur Toolkit for Language Modeling and Information Retrieval 00005 * is subject to the terms of the software license set forth in the LICENSE 00006 * file included with this software, and also available at 00007 * http://www.lemurproject.org/license.html 00008 * 00009 *========================================================================== 00010 */ 00011 00012 #ifndef _DISTMERGEMETHOD_HPP 00013 #define _DISTMERGEMETHOD_HPP 00014 00015 00016 #include "Param.hpp" 00017 #include "common_headers.hpp" 00018 #include "IndexedReal.hpp" 00019 #include "DocScore.hpp" 00020 00021 #define CORI_MERGE 0 00022 #define SINGLETYPEREGR_MERGE 1 00023 #define MULTITYPEREGR_MERGE 2 00024 00025 namespace DistMergeMethodParameter { 00026 00028 static int mergeMethod; 00029 00030 static void get() { 00031 mergeMethod=lemur::api::ParamGetInt("mergeMethod",0); 00032 } 00033 } 00034 00035 00036 namespace lemur 00037 { 00038 namespace distrib 00039 { 00041 00048 class DistMergeMethod { 00049 public: 00050 virtual ~DistMergeMethod() {}; 00051 00053 virtual void mergeScoreSet(const lemur::api::IndexedRealVector &indexset, 00054 const DocScoreVector* const* scoreset, 00055 DocScoreVector &results); 00056 00057 protected: 00059 virtual double score(double dbscore, double docscore) const =0; 00060 }; 00061 } 00062 } 00063 00064 #endif