121 for (i = 0; i <
n; i++) {
124 if (r < percentLowerOnly) {
126 xlow [i] = (
Drand(ix)-0.5)*3.0;
130 else if (r < percentLowerOnly+percentUpperOnly) {
134 xupp [i] = (
Drand(ix)-0.5)*3.0;
136 else if (r < percentLowerOnly+percentUpperOnly+percentBound) {
138 xlow [i] = (
Drand(ix)-0.5)*3.0;
140 xupp [i] = xlow[i]+
Drand(ix)*10.0;
151 for (i = 0; i <
n; i++) {
152 if (ixlow[i] == 0.0 && ixupp[i] == 0.0 ) {
154 x [i] = 20.0*
Drand(ix)-10.0;
157 else if (ixlow[i] != 0.0 && ixupp[i] != 0.0) {
163 dualx[i] = 10.0*
Drand(ix);
165 else if ( r > .66 ) {
168 dualx[i] = -10.0*
Drand(ix);
173 x [i] = (1-theta)*xlow[i]+theta*xupp[i];
177 else if (ixlow[i] != 0.0) {
179 if (
Drand(ix) < .33 ) {
182 dualx[i] = 10.0*
Drand(ix);
186 x [i] = xlow[i]+0.005+10.0*
Drand(ix);
191 if (
Drand(ix) > .66 ) {
194 dualx[i] = -10.0*
Drand(ix);
198 x [i] = xupp[i]-0.005-10.0*
Drand(ix);
211 if (
this != &source) {
TVectorT< Element > & ResizeTo(Int_t lwb, Int_t upb)
Resize the vector to [lwb:upb] .
TQpDataBase & operator=(const TQpDataBase &source)
Assignment operator.
TObject & operator=(const TObject &rhs)
TObject assignment operator.
TQpDataBase()
Default constructor.
static void RandomlyChooseBoundedVariables(TVectorD &x, TVectorD &dualx, TVectorD &blx, TVectorD &ixlow, TVectorD &bux, TVectorD &ixupp, Double_t &ix, Double_t percentLowerOnly, Double_t percentUpperOnly, Double_t percentBound)
Randomly choose x and its boundaries.
Mother of all ROOT objects.
Double_t Drand(Double_t &ix)
Random number generator [0....1] with seed ix.