source:
git/factory/cf_reval.cc
@
c4682e0
Last change on this file since c4682e0 was c4682e0, checked in by , 11 years ago | |
---|---|
|
|
File size: 1.1 KB |
Rev | Line | |
---|---|---|
[493c477] | 1 | /* emacs edit mode for this file is -*- C++ -*- */ |
[341696] | 2 | /* $Id$ */ |
[afd067] | 3 | |
4 | #define MORE_ZEROES | |
[2dd068] | 5 | |
[e4fe2b] | 6 | #include "config.h" |
[b973c0] | 7 | |
[650f2d8] | 8 | #include "cf_assert.h" |
[b973c0] | 9 | |
[2dd068] | 10 | #include "cf_defs.h" |
11 | #include "cf_reval.h" | |
12 | ||
13 | ||
[c4682e0] | 14 | REvaluation::REvaluation( const REvaluation & e ):Evaluation() |
[2dd068] | 15 | { |
16 | if ( e.gen == 0 ) | |
[806c18] | 17 | gen = 0; |
[2dd068] | 18 | else |
[806c18] | 19 | gen = e.gen->clone(); |
[2dd068] | 20 | values = e.values; |
21 | } | |
22 | ||
23 | REvaluation::~REvaluation() | |
24 | { | |
25 | if ( gen != 0 ) | |
[806c18] | 26 | delete gen; |
[2dd068] | 27 | } |
28 | ||
29 | REvaluation& | |
30 | REvaluation::operator= ( const REvaluation & e ) | |
31 | { | |
32 | if ( this != &e ) { | |
[157108] | 33 | if (gen!=0) |
[806c18] | 34 | delete gen; |
35 | values = e.values; | |
36 | if ( e.gen == 0 ) | |
37 | gen = 0; | |
38 | else | |
39 | gen = e.gen->clone(); | |
[2dd068] | 40 | } |
41 | return *this; | |
42 | } | |
43 | ||
44 | void | |
45 | REvaluation::nextpoint() | |
46 | { | |
47 | int n = values.max(); | |
48 | for ( int i = values.min(); i <= n; i++ ) | |
[806c18] | 49 | values[i] = gen->generate(); |
[2dd068] | 50 | } |
[38ac8c] | 51 | |
52 | void | |
53 | REvaluation::nextpoint (int n) | |
54 | { | |
55 | int m= values.max(); | |
56 | int t= values.min(); | |
57 | for (int i= t; i <= m; i++) | |
58 | values [i]= 0; | |
59 | ||
60 | if (m == t) | |
61 | { | |
62 | values [t]= gen->generate(); | |
63 | return; | |
64 | } | |
65 | for (int i= 0; i < n; i++) | |
66 | { | |
67 | int l= factoryrandom (m - t + 1) + t; | |
68 | values [l]= gen->generate(); | |
69 | } | |
70 | } |
Note: See TracBrowser
for help on using the repository browser.