ADMB Documentation  -a65f1c97
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
model3.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  */
7 #include <admodel.h>
8 
9 void initial_params::copy_all_values(const dvector& x, const int& ii)
10  {
11  for (int i=0;i<num_initial_params;i++)
12  {
13  //if ((varsptr[i])->phase_start <= current_phase)
15  {
16  (varsptr[i])->copy_value_to_vector(x,ii);
17  }
18  }
19  }
20 
22  {
23  ::copy_value_to_vector(*this,x,ii);
24  }
26  const int& ii)
27  {
28  ::copy_value_to_vector(*this,x,ii);
29  }
30 
32  {
33  ::copy_value_to_vector(*this,x,ii);
34  }
35 
37  const int& ii)
38  {
39  ::copy_value_to_vector(*this,x,ii);
40  }
41 
43  {
44  ::copy_value_to_vector(*this,x,ii);
45  }
46 
47 void copy_value_to_vector(const prevariable& x, const dvector& _v,
48  const int& _ii)
49  {
50  dvector& v=(dvector&) _v;
51  int& ii=(int&) _ii;
52  v(ii++)=value(x);
53  }
54 
55 void copy_value_to_vector(const dvar_vector& x, const dvector& _v,
56  const int& _ii)
57  {
58  dvector& v=(dvector&) _v;
59  int& ii=(int&) _ii;
60  if (!(!(x)))
61  {
62  int mmin=x.indexmin();
63  int mmax=x.indexmax();
64  const double_and_int* pxi = x.va + mmin;
65  double* pvii = v.get_v() + ii;
66  for (int i=mmin;i<=mmax;i++)
67  {
68  *pvii = pxi->x;
69 
70  ++pxi;
71  ++pvii;
72  ++ii;
73  }
74  }
75  }
76 
77 void copy_value_to_vector(const dvar_matrix& x, const dvector& v, const int& ii)
78  {
79  if (!(!(x)))
80  {
81  int mmin=x.rowmin();
82  int mmax=x.rowmax();
83  const dvar_vector* pxi = &x(mmin);
84  for (int i=mmin;i<=mmax;i++)
85  {
86  copy_value_to_vector(*pxi,v,ii);
87  ++pxi;
88  }
89  }
90  }
91 void copy_value_to_vector(const dvar3_array& x, const dvector& v, const int& ii)
92  {
93  if (!(!(x)))
94  {
95  int mmin=x.slicemin();
96  int mmax=x.slicemax();
97  const dvar_matrix* pxi = &x(mmin);
98  for (int i=mmin;i<=mmax;i++)
99  {
100  copy_value_to_vector(*pxi,v,ii);
101  ++pxi;
102  }
103  }
104  }
105 void initial_params::restore_all_values(const dvector& x, const int& ii)
106  {
107  for (int i=0;i<num_initial_params;i++)
108  {
109  //if ((varsptr[i])->phase_start <= current_phase)
111  {
113  }
114  }
115  }
116 
118  const int& ii)
119  {
120  ::restore_value_from_vector(*this,x,ii);
121  }
122 
124  const int& ii)
125  {
126  ::restore_value_from_vector(*this,x,ii);
127  }
128 
130  const int& ii)
131  {
132  ::restore_value_from_vector(*this,x,ii);
133  }
134 
136  const int& ii)
137  {
138  ::restore_value_from_vector(*this,x,ii);
139  }
140 
142  const int& ii)
143  {
144  ::restore_value_from_vector(*this,x,ii);
145  }
146 
148  const int& _ii)
149  {
151  int& ii=(int&) _ii;
152  //v(ii++)=value(x);
153  x=v(ii++);
154  }
155 
157  const int& _ii)
158  {
160  int& ii=(int&) _ii;
161  if (!(!(x)))
162  {
163  int mmin=x.indexmin();
164  int mmax=x.indexmax();
165  double* pvii = v.get_v() + ii;
166  for (int i=mmin;i<=mmax;i++)
167  {
168  //v(ii++)=value(x(i));
169  x(i) = *pvii;
170 
171  ++pvii;
172  ++ii;
173  }
174  }
175  }
176 
178  const int& ii)
179  {
180  if (!(!(x)))
181  {
182  int mmin=x.rowmin();
183  int mmax=x.rowmax();
184  const dvar_vector* pxi = &x(mmin);
185  for (int i=mmin;i<=mmax;i++)
186  {
187  restore_value_from_vector(*pxi,v,ii);
188  ++pxi;
189  }
190  }
191  }
192 
193 void restore_value_from_vector(dvar3_array& x, const dvector& v, const int& ii)
194  {
195  if (!(!(x)))
196  {
197  int mmin=x.slicemin();
198  int mmax=x.slicemax();
199  const dvar_matrix* pxi = &x(mmin);
200  for (int i=mmin;i<=mmax;i++)
201  {
202  restore_value_from_vector(*pxi,v,ii);
203  ++pxi;
204  }
205  }
206  }
Base class for dvariable.
Definition: fvar.hpp:1315
static void restore_all_values(const dvector &x, const int &ii)
Definition: model3.cpp:105
void restore_value_from_vector(const prevariable &x, const dvector &v, const int &ii)
Definition: model3.cpp:147
int rowmax(void) const
Definition: fvar.hpp:2564
virtual void restore_value_from_vector(const dvector &, const int &)
Definition: model3.cpp:117
int slicemin() const
Definition: fvar.hpp:4274
virtual void restore_value_from_vector(const dvector &, const int &)
Definition: model3.cpp:123
int withinbound(int lb, int n, int ub)
Definition: model.cpp:45
void copy_value_to_vector(const prevariable &x, const dvector &v, const int &ii)
Definition: model3.cpp:47
#define x
#define ADUNCONST(type, obj)
Creates a shallow copy of obj that is not CONST.
Definition: fvar.hpp:140
Vector of double precision numbers.
Definition: dvector.h:50
int slicemax() const
Definition: fvar.hpp:4275
ADMB variable vector.
Definition: fvar.hpp:2172
Holds the data for the prevariable class.
Definition: fvar.hpp:191
static int current_phase
Definition: admodel.h:842
Description not yet available.
virtual void copy_value_to_vector(const dvector &x, const int &ii)
Definition: model3.cpp:42
int rowmin(void) const
Definition: fvar.hpp:2560
Description not yet available.
Definition: fvar.hpp:4197
virtual void copy_value_to_vector(const dvector &x, const int &ii)
Definition: model3.cpp:21
static int num_initial_params
Definition: admodel.h:836
static void copy_all_values(const dvector &x, const int &ii)
Definition: model3.cpp:9
int indexmin() const
Definition: fvar.hpp:2287
virtual void restore_value_from_vector(const dvector &, const int &)=0
virtual void restore_value_from_vector(const dvector &, const int &)
Definition: model3.cpp:135
virtual void copy_value_to_vector(const dvector &x, const int &ii)
Definition: model3.cpp:25
Class definition of matrix with derivitive information .
Definition: fvar.hpp:2480
int phase_start
Definition: admodel.h:848
virtual void copy_value_to_vector(const dvector &, const int &)=0
double_and_int * va
Definition: fvar.hpp:2175
virtual void restore_value_from_vector(const dvector &, const int &)
Definition: model3.cpp:141
dvector value(const df1_one_vector &v)
Definition: df11fun.cpp:69
virtual void copy_value_to_vector(const dvector &x, const int &ii)
Definition: model3.cpp:36
double *& get_v(void)
Definition: dvector.h:148
int indexmax() const
Definition: fvar.hpp:2292
virtual void copy_value_to_vector(const dvector &x, const int &ii)
Definition: model3.cpp:31
double x
&lt; value of the variable
Definition: fvar.hpp:195
static adlist_ptr varsptr
Definition: admodel.h:838
virtual void restore_value_from_vector(const dvector &, const int &)
Definition: model3.cpp:129