My Project
std
osl
container
moveLogProbVector.cc
Go to the documentation of this file.
1
#include "
osl/container/moveLogProbVector.h
"
2
#include <algorithm>
3
#include <iostream>
4
5
// 厳密な整列は特に必要ではない
6
// #define RIGID_SORT_OF_MOVE
7
8
#ifndef MINIMAL
9
std::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
19
bool
osl::container::operator==
(
const
MoveLogProbVector
& l,
const
MoveLogProbVector
& r)
20
{
21
return
l.
size
() == r.
size
()
22
&& std::equal(l.
begin
(), l.
end
(), r.
begin
());
23
}
24
25
namespace
osl
26
{
27
template
<
bool
isLess>
28
struct
LogProbCompare
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
48
void
osl::container::MoveLogProbVector::sortByProbability
()
49
{
50
std::sort(
begin
(),
end
(),
LogProbCompare<true>
());
51
}
52
void
osl::container::MoveLogProbVector::sortByProbabilityReverse
()
53
{
54
std::sort(begin(), end(),
LogProbCompare<false>
());
55
}
56
57
const
osl::MoveLogProb
*
osl::container::MoveLogProbVector::find
(
Move
m)
const
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:
osl::LogProbCompare
Definition:
moveLogProbVector.cc:29
osl::FixedCapacityVector::size
size_t size() const
Definition:
container.h:243
osl::Move
圧縮していない moveの表現 .
Definition:
basic_type.h:1052
moveLogProbVector.h
osl::MoveLogProb
Definition:
moveLogProb.h:10
osl::FixedCapacityVector::const_iterator
array_t::const_iterator const_iterator
Definition:
container.h:157
osl::FixedCapacityVector::begin
iterator begin()
Definition:
container.h:198
osl::container::operator==
bool operator==(BitXmask l, BitXmask r)
Definition:
bitXmask.h:33
osl::container::MoveLogProbVector::sortByProbability
void sortByProbability()
確率が高い順にsort
Definition:
moveLogProbVector.cc:48
osl::container::MoveLogProbVector::find
const MoveLogProb * find(Move) const
Definition:
moveLogProbVector.cc:57
osl::FixedCapacityVector::end
iterator end()
Definition:
container.h:199
osl::container::MoveLogProbVector::sortByProbabilityReverse
void sortByProbabilityReverse()
確率が低い順にsort
Definition:
moveLogProbVector.cc:52
osl::container::MoveLogProbVector
Definition:
moveLogProbVector.h:14
osl::LogProbCompare::operator()
bool operator()(const MoveLogProb &l, const MoveLogProb &r) const
Definition:
moveLogProbVector.cc:30
osl::MoveLogProb::logProb
int logProb() const
Definition:
moveLogProb.h:40
osl::MoveLogProb::move
const Move move() const
Definition:
moveLogProb.h:39
osl::container::operator<<
std::ostream & operator<<(std::ostream &, const BitXmask)
Definition:
bitXmask.cc:6
osl
Definition:
additionalEffect.h:6
Generated by
1.8.20