My Project
moveLogProbVector.cc
Go to the documentation of this file.
2#include <algorithm>
3#include <iostream>
4
5// 厳密な整列は特に必要ではない
6// #define RIGID_SORT_OF_MOVE
7
8#ifndef MINIMAL
9std::ostream& osl::container::operator<<(std::ostream& os,MoveLogProbVector const& mv)
10{
11 os<< "LogProbVector" << std::endl;
12 for (const MoveLogProb& move: mv)
13 {
14 os << move << std::endl;
15 }
16 return os << std::endl;
17}
18#endif
20{
21 return l.size() == r.size()
22 && std::equal(l.begin(), l.end(), r.begin());
23}
24
25namespace osl
26{
27 template <bool isLess>
29 {
30 bool operator()(const MoveLogProb& l, const MoveLogProb& r) const
31 {
32#ifdef RIGID_SORT_OF_MOVE
33 if (l.logProb() != r.logProb())
34 {
35#endif
36 if (isLess)
37 return l.logProb() < r.logProb();
38 else
39 return l.logProb() > r.logProb();
40#ifdef RIGID_SORT_OF_MOVE
41 }
42 return l.move() > r.move();
43#endif
44 }
45 };
46}
47
56
58{
59 for (const_iterator p=begin(); p!=end(); ++p)
60 if (p->move() == m)
61 return &*p;
62 return 0;
63}
64
65// ;;; Local Variables:
66// ;;; mode:c++
67// ;;; c-basic-offset:2
68// ;;; End:
size_t size() const
Definition container.h:243
array_t::const_iterator const_iterator
Definition container.h:157
int logProb() const
Definition moveLogProb.h:40
const Move move() const
Definition moveLogProb.h:39
圧縮していない moveの表現 .
void sortByProbabilityReverse()
確率が低い順にsort
const MoveLogProb * find(Move) const
void sortByProbability()
確率が高い順にsort
bool operator==(BitXmask l, BitXmask r)
Definition bitXmask.h:33
std::ostream & operator<<(std::ostream &, const BitXmask)
Definition bitXmask.cc:6
bool operator()(const MoveLogProb &l, const MoveLogProb &r) const