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 
11 namespace 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:
osl::eval::ml::Weights::dim
size_t dim
Definition: weights.h:21
osl::container::QuadInt
Definition: quadInt.h:43
eval
osl::eval::ml::MultiWeights::value
const MultiInt & value(size_t index) const
Definition: weights.h:49
osl::eval::ml::Weights
Definition: weights.h:18
osl::eval::ml::MultiWeights::oneDimension
size_t oneDimension() const
Definition: weights.h:51
osl::eval::ml::Weights::value
int value(size_t index) const
Definition: weights.h:27
osl::eval::ml::Weights::values
std::valarray< signed short > values
Definition: weights.h:20
osl::eval::ml::MultiWeights::resetDimension
void resetDimension(size_t one_dim)
Definition: weights.cc:46
osl::eval::ml::Weights::resetDimension
void resetDimension(size_t new_dim)
Definition: weights.cc:26
osl::eval::ml::Weights::~Weights
virtual ~Weights()
Definition: weights.cc:13
osl::eval::ml::Weights::Weights
Weights(size_t dim=0)
Definition: weights.cc:7
midgame.h
osl::eval::ml::Weights::setValue
void setValue(size_t index, int value)
Definition: weights.h:31
osl::eval::ml::MultiWeights::setValue
void setValue(size_t index, MultiInt value)
Definition: weights.h:52
osl::eval::ml::MultiWeights::MultiWeights
MultiWeights(size_t one_dim=0)
Definition: weights.cc:36
osl::eval::ml::MultiWeights::~MultiWeights
virtual ~MultiWeights()
Definition: weights.cc:41
osl::eval::ml::MultiWeights::one_dim
size_t one_dim
Definition: weights.h:43
osl::eval::ml::MultiWeights::setRandom
void setRandom()
Definition: weights.cc:54
osl::eval::ml::Weights::setRandom
void setRandom()
Definition: weights.cc:18
osl::eval::ml::MultiWeights
Definition: weights.h:40
osl::eval::ml::Weights::dimension
size_t dimension() const
Definition: weights.h:29
osl::eval::ml::MultiWeights::values
std::vector< MultiInt > values
Definition: weights.h:42
osl
Definition: additionalEffect.h:6