Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
lib
eval
ml
ml/pieceEval.cc
Go to the documentation of this file.
1
#include "
osl/eval/ml/pieceEval.h
"
2
#include "
osl/eval/pieceEval.h
"
3
4
osl::misc::CArray<int, osl::PTYPEO_SIZE>
osl::eval::ml::PieceEval::table
;
5
6
void
osl::eval::ml::
7
PieceEval::setUp
(
const
Weights
&weights)
8
{
9
table.fill(0);
10
// WHITE 0-15, BLACK 16-31
11
for
(
size_t
i = 0; i < weights.
dimension
(); ++i)
12
{
13
table[i - (size_t)
PTYPEO_MIN
] = weights.
value
(i);
14
table[i] = -weights.
value
(i);
15
}
16
table[
newPtypeO
(
BLACK
,
KING
)-
PTYPEO_MIN
] =
osl::eval::Ptype_Eval_Table
.
value
(
KING
);
17
table[
newPtypeO
(
WHITE
,
KING
)-
PTYPEO_MIN
] = -
osl::eval::Ptype_Eval_Table
.
value
(
KING
);
18
}
19
20
int
osl::eval::ml::
21
PieceEval::eval
(
const
NumEffectState &state)
22
{
23
int
value = 0;
24
for
(
int
i = 0; i < Piece::SIZE; ++i)
25
{
26
const
Piece
piece = state.pieceOf(i);
27
value += table[piece.
ptypeO
() -
PTYPEO_MIN
];
28
}
29
return
value;
30
}
31
32
int
osl::eval::ml::
33
PieceEval::value
(
PtypeO
ptypeO)
34
{
35
return
table[ptypeO -
PTYPEO_MIN
];
36
}
Generated on Sun Jul 21 2013 13:37:26 by
1.8.4