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
|
#ifndef jB1MwurMlfU1OJE1w1IE29RFf9I
#define jB1MwurMlfU1OJE1w1IE29RFf9I
#include "event.hpp"
#include "index.hpp"
#include "pointers.hpp"
#include "quant_types.hpp"
#include "rng.hpp"
#include "time.hpp"
namespace TrainerImpl {
struct TrainerT;
template <typename PC, typename MI, typename MQ>
struct Update;
struct TrainerT {
explicit TrainerT(RNG::seed_t seed = RNG::seed_t(0));
template<typename PC, typename MI, typename MQ>
TrainerT update(PC &pc, MI &indices, MQ &queues, Time t) const {
return Update<PC, MI, MQ>::eval(*this, pc, indices, queues, t);
}
RNG::seed_t rng;
Time::type delay;
double reward,
performance;
uint64_t generation,
input, output;
uint32_t state,
resetCounter;
};
} // NS
using TrainerImpl::TrainerT;
namespace std {
ostream& operator<< (ostream &os, TrainerT val) {
return os
<< "Trainer("
<< val.generation << ", "
<< val.state << ", "
<< val.input << ", "
<< val.output
<< ")";
}
}
#endif // jB1MwurMlfU1OJE1w1IE29RFf9I
|