My Project
weights.h
Go to the documentation of this file.
1/* weights.h
2 */
3#ifndef OSL_EVAL_WEIGHTS_H
4#define OSL_EVAL_WEIGHTS_H
5
6#include "osl/eval/midgame.h"
7#include <vector>
8#include <valarray>
9#include <cassert>
10
11namespace osl
12{
13 namespace eval
14 {
15 namespace ml
16 {
17 struct Weights
18 {
19 protected:
20 std::valarray<signed short> values;
21 size_t dim;
22 public:
23 explicit Weights(size_t dim=0);
24 virtual ~Weights();
25
26 void resetDimension(size_t new_dim);
27 int value(size_t index) const { assert(index < dim); return values[index]; }
28 void setRandom();
29 size_t dimension() const { return dim; }
30
31 void setValue(size_t index, int value)
32 {
33 assert(index < dim);
34 values[index] = value;
35 assert(values[index] == value);
36 }
37 };
38
40 {
41 protected:
42 std::vector<MultiInt> values;
43 size_t one_dim;
44 public:
45 explicit MultiWeights(size_t one_dim=0);
46 virtual ~MultiWeights();
47
48 void resetDimension(size_t one_dim);
49 const MultiInt& value(size_t index) const { assert(index < one_dim); return values[index]; }
50 void setRandom();
51 size_t oneDimension() const { return one_dim; }
52 void setValue(size_t index, MultiInt value)
53 {
54 assert(index < one_dim);
55 values[index] = value;
56 }
57 };
58 }
59 }
60}
61
62#endif /* OSL_EVAL_WEIGHTS_H */
63// ;;; Local Variables:
64// ;;; mode:c++
65// ;;; c-basic-offset:2
66// ;;; End:
void setValue(size_t index, MultiInt value)
Definition weights.h:52
size_t oneDimension() const
Definition weights.h:51
std::vector< MultiInt > values
Definition weights.h:42
const MultiInt & value(size_t index) const
Definition weights.h:49
void resetDimension(size_t one_dim)
Definition weights.cc:46
size_t dimension() const
Definition weights.h:29
void setValue(size_t index, int value)
Definition weights.h:31
int value(size_t index) const
Definition weights.h:27
void resetDimension(size_t new_dim)
Definition weights.cc:26
std::valarray< signed short > values
Definition weights.h:20