bradleyTerry.h
Go to the documentation of this file.
00001 /* bradleyTerry.h
00002  */
00003 #ifndef _BRADLEYTERRY_H
00004 #define _BRADLEYTERRY_H
00005 
00006 #include "osl/rating/featureSet.h"
00007 #include <valarray>
00008 
00009 namespace osl
00010 {
00011   namespace rating
00012   {
00013     class BradleyTerry
00014     {
00015       typedef std::valarray<double> valarray_t;
00016       FeatureSet& features;
00017       
00018       std::string kisen_filename, output_directory;
00019       int kisen_start;
00020       size_t num_cpus, num_records;
00021       int verbose;
00022       int fix_group;
00023       size_t min_rating;
00024     public:
00025       BradleyTerry(FeatureSet& features, const std::string& kisen_file, int kisen_start=0);
00026       ~BradleyTerry();
00027       
00028       void setNumCpus(int new_num_cpus) { num_cpus = new_num_cpus; };
00029       void setNumRecords(size_t new_num_records) { num_records = new_num_records; };
00030       void setOutputDirectory(const std::string& new_output) { output_directory = new_output; };
00031       void setFixGroup(int new_fix_group) { fix_group = new_fix_group; };
00032       void setVerbose(int new_verbose) { verbose = new_verbose; };
00033       void setMinRating(int new_min) { min_rating = new_min; };
00034       
00035       void iterate();
00036     private:
00037       void update(size_t g);
00038       bool addSquare(size_t g, const NumEffectState& state, 
00039                        const RatingEnv& env, Move selected,
00040                        valarray_t& wins, std::valarray<long double>& denominator) const;  
00041 
00042       class Thread;
00043       friend class Thread;
00044       size_t accumulate(size_t g, size_t first, size_t last, valarray_t& wins, std::valarray<long double>& denominator) const;
00045     };
00046   }
00047 }
00048 
00049 #endif /* _BRADLEYTERRY_H */
00050 // ;;; Local Variables:
00051 // ;;; mode:c++
00052 // ;;; c-basic-offset:2
00053 // ;;; End:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines