/usr/include/osl/moveLogProb.h is in libosl-dev 0.8.0-1.4.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #ifndef OSL_MOVELOGPROB_H
#define OSL_MOVELOGPROB_H
#include "osl/basic_type.h"
#include <iosfwd>
namespace osl
{
class MoveLogProb : private Move
{
int log_prob;
public:
MoveLogProb(Move m,int l) : Move(m),log_prob(l)
{
assert(m.isInvalid() || m.isValidOrPass());
}
MoveLogProb() : log_prob(0) {}
void setLogProb(int l) { log_prob=l; }
/**
* logProb を数字上最低 l にする.
* 確率としては,高すぎる確率の場合, l に補正する
*/
void setLogProbAtLeast(int l)
{
if (logProb() < l)
setLogProb(l);
}
/**
* logProb を数字上最高 l にする.
* 確率としては,低すぎる確率の場合, l に補正する
*/
void setLogProbAtMost(int l)
{
if (logProb() > l)
setLogProb(l);
}
const Move move()const{ return *this; }
int logProb()const{ return log_prob; }
bool validMove() const { return log_prob > 0; }
using Move::player;
using Move::isNormal;
using Move::isPass;
};
std::ostream& operator<<(std::ostream& os,MoveLogProb const& move);
inline bool operator==(MoveLogProb const& lhs,MoveLogProb const& rhs)
{
return lhs.move()==rhs.move() && lhs.logProb()==rhs.logProb();
}
inline bool operator<(MoveLogProb const& lhs,MoveLogProb const& rhs)
{
if (lhs.move() != rhs.move())
return lhs.move() < rhs.move();
return lhs.logProb() < rhs.logProb();
}
} // namespace ostream
#endif /* OSL_MOVELOGPROB_H */
// ;;; Local Variables:
// ;;; mode:c++
// ;;; c-basic-offset:2
// ;;; End:
|