ADMB Documentation  -a65f1c97
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
setin.cpp
Go to the documentation of this file.
1 /*
2  * $Id$
3  *
4  * Author: David Fournier
5  * Copyright (c) 2008-2012 Regents of the University of California
6  */
11 #include "fvar.hpp"
12 
17 void set_value_inv(const double x,const dvector& _v, const int& _ii)
18 {
19  dvector& v=(dvector&) _v;
20  int& ii=(int&) _ii;
21  v(ii++)=x;
22 }
23 
28 void set_value_inv(const double u, const dvector& _x, const int& _ii,
29  const double fmin, const double fmax)
30 {
31  int& ii=(int&) _ii;
32  dvector& x=(dvector&) _x;
33  x(ii++)=boundpin(u,fmin,fmax);
34 }
35 
40 void set_value_inv(const prevariable& u, const dvector& _x, const int& _ii,
41  const double fmin, const double fmax)
42 {
43  dvector& x=(dvector&) _x;
44  int& ii=(int&) _ii;
45  x(ii++)=boundpin(u,fmin,fmax);
46 }
47 
52 void set_value_inv(const dvector& x,const dvector& _v, const int& _ii)
53 {
54  int& ii=(int&) _ii;
55  dvector& v=(dvector&) _v;
56  int min=x.indexmin();
57  int max=x.indexmax();
58  for (int i=min;i<=max;i++)
59  {
60  v(ii++)=x(i);
61  }
62 }
63 
68 void set_value_inv(const dvector& x,const dvector& _v, const int& _ii,double s)
69 {
70  int& ii=(int&) _ii;
71  dvector& v=(dvector&) _v;
72  int min=x.indexmin();
73  int max=x.indexmax();
74  for (int i=min;i<=max;i++)
75  {
76  v(ii++)=x(i)*s;
77  }
78 }
79 
84 void set_value_inv(const dvector& x, const dvector& _v, const int& _ii,
85  const double fmin, const double fmax)
86 {
87  int& ii=(int&) _ii;
88  dvector& v=(dvector&) _v;
89  int min=x.indexmin();
90  int max=x.indexmax();
91  for (int i=min;i<=max;i++)
92  {
93  v(ii++)=boundpin(x(i),fmin,fmax);
94  }
95 }
96 
101 void set_value_inv(const dvar_vector& x,const dvector& _v, const int& _ii,
102  const double fmin, const double fmax)
103 {
104  int& ii=(int&) _ii;
105  dvector& v=(dvector&) _v;
106  int min=x.indexmin();
107  int max=x.indexmax();
108  for (int i=min;i<=max;i++)
109  {
110  v(ii++)=boundpin(x(i),fmin,fmax);
111  }
112 }
113 
118 void set_value_inv(const dmatrix& x, const dvector& v, const int& ii)
119 {
120  int min=x.rowmin();
121  int max=x.rowmax();
122  if (allocated(x))
123  {
124  for (int i=min;i<=max;i++)
125  {
126  if (allocated(x(i)))
127  set_value_inv(x(i),v,ii);
128  }
129  }
130 }
131 
136 void set_value_inv(const dmatrix& x,const dvector& v, const int& ii,
137  const double fmin, const double fmax)
138 {
139  int min=x.rowmin();
140  int max=x.rowmax();
141  if (allocated(x))
142  {
143  for (int i=min;i<=max;i++)
144  {
145  if (allocated(x(i)))
146  set_value_inv(x(i),v,ii,fmin,fmax);
147  }
148  }
149 }
150 
155 void set_value_inv(const d3_array& x, const dvector& v, const int& ii)
156 {
157  int min=x.slicemin();
158  int max=x.slicemax();
159  if (allocated(x))
160  {
161  for (int i=min;i<=max;i++)
162  {
163  if (allocated(x(i)))
164  set_value_inv(x(i),v,ii);
165  }
166  }
167 }
168 
173 void set_value_inv(const d3_array& x,const dvector& v, const int& ii,
174  const double fmin, const double fmax)
175 {
176  int min=x.slicemin();
177  int max=x.slicemax();
178  if (allocated(x))
179  {
180  for (int i=min;i<=max;i++)
181  {
182  if (allocated(x(i)))
183  set_value_inv(x(i),v,ii,fmin,fmax);
184  }
185  }
186 }
187 
192 void set_value_inv_partial(const dvector& x, const dvector& _v, const int& _ii,
193  int n)
194 {
195  int& ii=(int&) _ii;
196  dvector& v=(dvector&) _v;
197  int min=x.indexmin();
198  int max=min+n-1;
199  if (max >x.indexmax())
200  {
201  cerr << "index out of range in set_value_patial(const dvar_vector&, ... "
202  << endl;
203  }
204  for (int i=min;i<=max;i++)
205  {
206  v(ii++)=x(i);
207  }
208 }
209 
214 void set_value_inv_partial(const dvector& x,const dvector& _v, const int& _ii,
215  int n, const double fmin, const double fmax)
216 {
217  int& ii=(int&) _ii;
218  dvector& v=(dvector&) _v;
219  int min=x.indexmin();
220  int max=min+n-1;
221  if (max >x.indexmax())
222  {
223  cerr << "index out of range in set_value_patial(const dvar_vector&, ... "
224  << endl;
225  }
226  for (int i=min;i<=max;i++)
227  {
228  v(ii++)=boundpin(x(i),fmin,fmax);
229  }
230 }
231 
237  const int& _ii, int n)
238 {
239  int mmin=x.indexmin();
240  int mmax=x.indexmax();
241  for (int i=mmin;i<=mmax;i++)
242  {
243  set_value_inv_partial(x(i),_v,_ii,n);
244  }
245 }
246 
252  const int& _ii, int n)
253 {
254  int& ii=(int&) _ii;
255  dvector& v=(dvector&) _v;
256  int min=x.indexmin();
257  int max=min+n-1;
258  if (max >x.indexmax())
259  {
260  cerr << "index out of range in set_value_patial(const dvar_vector&, ... "
261  << endl;
262  }
263  for (int i=min;i<=max;i++)
264  {
265  v(ii++)=value(x(i));
266  }
267 }
268 
274  const int& _ii, int n, const double fmin, const double fmax)
275 {
276  int& ii=(int&) _ii;
277  int min=x.indexmin();
278  int max=min+n-1;
279  dvector& v=(dvector&) _v;
280  if (max >x.indexmax())
281  {
282  cerr << "index out of range in set_value_patial(const dvar_vector&, ... "
283  << endl;
284  }
285  for (int i=min;i<=max;i++)
286  {
287  v(ii++)=boundpin(x(i),fmin,fmax);
288  }
289 }
290 
295 void set_value_inv(const prevariable& x, const dvector& _v, const int& _ii)
296 {
297  int& ii=(int&) _ii;
298  dvector& v=(dvector&) _v;
299  v(ii++)=value(x);
300 }
301 
306 void set_value_inv(const dvariable& u, const dvector& _x, const int& _ii,
307  const double fmin, const double fmax)
308 {
309  int& ii=(int&) _ii;
310  dvector& x=(dvector&) _x;
311  x(ii++)=boundpin(value(u),fmin,fmax);
312 }
313 
318 void set_value_inv(const dvar_vector& x, const dvector& _v, const int& _ii)
319 {
320  int& ii=(int&) _ii;
321  dvector& v=(dvector&) _v;
322  if (!(!(x)))
323  {
324  int min=x.indexmin();
325  int max=x.indexmax();
326  for (int i=min;i<=max;i++)
327  {
328  v(ii++)=value(x(i));
329  }
330  }
331 }
332 
337 void set_value_inv(const dvar_vector& x,const dvector& _v,const int& _ii,
338  double fmin,double fmax,double s)
339 {
340  int& ii=(int&) _ii;
341  dvector& v=(dvector&) _v;
342  int min=x.indexmin();
343  int max=x.indexmax();
344  for (int i=min;i<=max;i++)
345  {
346  v(ii++)=boundpin(x(i),fmin,fmax)*s;
347  }
348 }
349 
354 void set_value_inv(const dvar_vector& x,const dvector& _v,const int& _ii,
355  double fmin,double fmax,double s,const ivector& flags)
356 {
357  int& ii=(int&) _ii;
358  dvector& v=(dvector&) _v;
359  int min=x.indexmin();
360  int max=x.indexmax();
361  for (int i=min;i<=max;i++)
362  {
363  if (flags(i))
364  {
365  v(ii++)=boundpin(x(i),fmin,fmax)*s;
366  }
367  }
368 }
369 
374 void set_value_inv(const dvar_vector& x,const dvector& _v,const int& _ii,
375  double s)
376 {
377  int& ii=(int&) _ii;
378  dvector& v=(dvector&) _v;
379  if (!(!(x)))
380  {
381  int min=x.indexmin();
382  int max=x.indexmax();
383  for (int i=min;i<=max;i++)
384  {
385  v(ii++)=value(x(i))*s;
386  }
387  }
388 }
389 
394 void set_value_inv(const dvar_matrix& x, const dvector& v, const int& ii)
395 {
396  if (!(!(x)))
397  {
398  int min=x.rowmin();
399  int max=x.rowmax();
400  for (int i=min;i<=max;i++)
401  {
402  if (allocated(x(i)))
403  set_value_inv(x(i),v,ii);
404  }
405  }
406 }
407 
412 void set_value_inv(const dvar_matrix& x,const dvector& v, const int& ii,
413  double s)
414 {
415  if (!(!(x)))
416  {
417  int min=x.rowmin();
418  int max=x.rowmax();
419  for (int i=min;i<=max;i++)
420  {
421  if (allocated(x(i)))
422  set_value_inv(x(i),v,ii,s);
423  }
424  }
425 }
426 
431 void set_value_inv(const dvar_matrix& x, const dvector& v, const int& ii,
432  const double fmin, const double fmax)
433 {
434  if (allocated(x))
435  {
436  int min=x.rowmin();
437  int max=x.rowmax();
438  for (int i=min;i<=max;i++)
439  {
440  if (allocated(x(i)))
441  set_value_inv(x(i),v,ii,fmin,fmax);
442  }
443  }
444 }
445 
450 void set_value_inv(const dvar_matrix& x,const dvector& v, const int& ii,
451  double fmin,double fmax,double s)
452 {
453  if (allocated(x))
454  {
455  int min=x.rowmin();
456  int max=x.rowmax();
457  for (int i=min;i<=max;i++)
458  {
459  if (allocated(x(i)))
460  set_value_inv(x(i),v,ii,fmin,fmax,s);
461  }
462  }
463 }
464 
469 void set_value_inv(const dvar3_array& x, const dvector& v, const int& ii)
470 {
471  if (!(!(x)))
472  {
473  int min=x.slicemin();
474  int max=x.slicemax();
475  for (int i=min;i<=max;i++)
476  {
477  if (allocated(x(i)))
478  set_value_inv(x(i),v,ii);
479  }
480  }
481 }
482 
487 void set_value_inv(const dvar3_array& x, const dvector& v, const int& ii,
488  const double fmin, const double fmax)
489 {
490  if (!(!(x)))
491  {
492  int min=x.slicemin();
493  int max=x.slicemax();
494  for (int i=min;i<=max;i++)
495  {
496  if (allocated(x(i)))
497  set_value_inv(x(i),v,ii,fmin,fmax);
498  }
499  }
500 }
Base class for dvariable.
Definition: fvar.hpp:1315
int rowmax(void) const
Definition: fvar.hpp:2564
int slicemin() const
Definition: fvar.hpp:4274
#define x
int allocated(const ivector &v)
Author: David Fournier Copyright (c) 2008-2012 Regents of the University of California.
Definition: fvar_a59.cpp:13
Vector of double precision numbers.
Definition: dvector.h:50
int indexmin() const
Get minimum valid index.
Definition: dvector.h:199
void fmin(double f, const independent_variables &x, const dvector &g, const int &n, const dvector &w, const dvector &h, const fmm_control &fmc)
int slicemax() const
Definition: fvar.hpp:4275
ADMB variable vector.
Definition: fvar.hpp:2172
int slicemax() const
Definition: fvar.hpp:3830
void set_value_inv_partial(const dvector &x, const dvector &v, const int &ii, int n)
Description not yet available.
Definition: setin.cpp:192
prnstream & endl(prnstream &)
double boundpin(double x, double fmin, double fmax, double s)
Scale model variable over [-1,1]; constant objects.
Definition: boundfun.cpp:378
Array of integers(int) with indexes from index_min to indexmax.
Definition: ivector.h:50
int rowmax() const
Definition: fvar.hpp:2929
#define min(a, b)
Definition: cbivnorm.cpp:188
int indexmax() const
Get maximum valid index.
Definition: dvector.h:204
Author: David Fournier Copyright (c) 2008-2012 Regents of the University of California.
int slicemin() const
Definition: fvar.hpp:3826
int rowmin(void) const
Definition: fvar.hpp:2560
Description not yet available.
Definition: fvar.hpp:2819
Description not yet available.
Definition: fvar.hpp:4197
void set_value_inv(const dvar_matrix &x, const dvector &v, const int &ii, double s)
Description not yet available.
Definition: setin.cpp:412
int indexmin() const
Definition: fvar.hpp:2287
int indexmax(void) const
Definition: fvar.hpp:2572
Class definition of matrix with derivitive information .
Definition: fvar.hpp:2480
dvector value(const df1_one_vector &v)
Definition: df11fun.cpp:69
#define max(a, b)
Definition: cbivnorm.cpp:189
Description not yet available.
Definition: fvar.hpp:3727
int indexmin(void) const
Definition: fvar.hpp:2568
int indexmax() const
Definition: fvar.hpp:2292
int rowmin() const
Definition: fvar.hpp:2925
Fundamental data type for reverse mode automatic differentiation.
Definition: fvar.hpp:1518