ADMB Documentation  -a65f1c97
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
model10.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 #ifdef ISZERO
10  #undef ISZERO
11 #endif
12 #define ISZERO(d) ((d)==0.0)
13 
14 //double ndfboundp(double x, double fmin, double fmax, const double& fpen);
15 
17  const int& _ii)
18  {
19  int& ii=(int&) _ii;
20  dvector& d=(dvector&) _d;
21  d(ii)=1;
22  if (!ISZERO(scalefactor)) d(ii)/=scalefactor;
23  ii++;
24  }
25 
27  const int& _ii)
28  {
29  int& ii=(int&) _ii;
30  dvector& d=(dvector&) _d;
31  double pen=0;
33  {
34  if (ISZERO(scalefactor))
35  d(ii)=ndfboundp(x(ii),minb,maxb,pen);
36  else
37  d(ii)=ndfboundp(x(ii)/scalefactor,minb,maxb,pen)/scalefactor;
38  }
39  else
40  {
41  if (ISZERO(scalefactor))
42  d(ii)=ndfboundp_mc(x(ii),minb,maxb,pen);
43  else
45  }
46  //d(ii)=(boundp(x(ii)+1.e-6,minb,maxb,pen)-
47  //boundp(x(ii)-1.e-6,minb,maxb,pen))/2.e-6;
48  ii++;
49  }
50 
52  const int& _ii)
53  {
54  if (allocated(*this))
55  {
56  int& ii=(int&) _ii;
57  dvector& v=(dvector&) _v;
58  int mmin=indexmin();
59  int mmax=indexmax();
60  for (int i=mmin;i<=mmax;i++)
61  {
62  v(ii)=1.;
63  if (!ISZERO(scalefactor)) v(ii)/=scalefactor;
64  ii++;
65  }
66  }
67  }
68 
70  const int& _ii)
71  {
72  if (allocated(*this))
73  {
74  int& ii=(int&) _ii;
75  dvector& v=(dvector&) _v;
76  int mmin=rowmin();
77  int mmax=rowmax();
78  for (int i=mmin;i<=mmax;i++)
79  {
80  if (allocated((*this)(i)))
81  {
82  int cmin=((*this)(i)).indexmin();
83  int cmax=((*this)(i)).indexmax();
84  for (int j=cmin;j<=cmax;j++)
85  {
86  v(ii)=1.;
87  if (!ISZERO(scalefactor)) v(ii)/=scalefactor;
88  ii++;
89  }
90  }
91  }
92  }
93  }
94 
96  const int& _ii)
97  {
98  if (allocated(*this))
99  {
100  int& ii=(int&) _ii;
101  dvector& v=(dvector&) _v;
102  int mmin=indexmin();
103  int mmax=indexmax();
104  double pen=0;
106  {
107  for (int i=mmin;i<=mmax;i++)
108  {
109  if (ISZERO(scalefactor))
110  v(ii)=ndfboundp(x(ii),minb,maxb,pen);
111  else
112  v(ii)=ndfboundp(x(ii)/scalefactor,minb,maxb,pen)/scalefactor;
113  ii++;
114  }
115  }
116  else
117  {
118  for (int i=mmin;i<=mmax;i++)
119  {
120  v(ii)=ndfboundp_mc(x(ii),minb,maxb,pen);
121  ii++;
122  }
123  }
124  }
125  }
126 
128  const int& _ii)
129  {
130  if (allocated(*this))
131  {
132  int& ii=(int&) _ii;
133  dvector& v=(dvector&) _v;
134  int rmin=rowmin();
135  int rmax=rowmax();
136  double pen=0;
137  for (int i=rmin;i<=rmax;i++)
138  {
139  if (allocated((*this)(i)))
140  {
141  int cmin=(*this)(i).indexmin();
142  int cmax=(*this)(i).indexmax();
143  for (int j=cmin;j<=cmax;j++)
144  {
145  if (ISZERO(scalefactor))
146  v(ii)=ndfboundp(x(ii),minb,maxb,pen);
147  else
148  v(ii)=ndfboundp(x(ii)/scalefactor,minb,maxb,pen)/
149  scalefactor;
150  ii++;
151  }
152  }
153  }
154  }
155  }
156 
158  {
159  minb=x;
160  }
161 
163  {
164  return minb;
165  }
166 
168  {
169  minb=x;
170  }
171 
173  {
174  return minb;
175  }
176 
178  {
179  minb=x;
180  }
181 
183  {
184  return minb;
185  }
void set_minb(double b)
Definition: model10.cpp:167
int rowmax(void) const
Definition: fvar.hpp:2564
virtual void sd_scale(const dvector &d, const dvector &x, const int &)
Definition: model10.cpp:51
#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
double scalefactor
Definition: admodel.h:824
virtual void sd_scale(const dvector &d, const dvector &x, const int &ii)
Definition: model10.cpp:69
void set_minb(double b)
Definition: model10.cpp:177
virtual void sd_scale(const dvector &d, const dvector &x, const int &ii)
Definition: model10.cpp:26
Description not yet available.
double ndfboundp(double x, double fmin, double fmax, const double &fpen)
Derivatative code for double nd2fboundp( double x, double fmin, double fmax,const double&amp; fpen) ...
Definition: boundfun.cpp:210
int rowmin(void) const
Definition: fvar.hpp:2560
int indexmin() const
Definition: fvar.hpp:2287
void set_minb(double b)
Definition: model10.cpp:157
int indexmax(void) const
Definition: fvar.hpp:2572
virtual void sd_scale(const dvector &d, const dvector &x, const int &ii)
Definition: model10.cpp:95
double ndfboundp_mc(double x, double fmin, double fmax, const double &fpen)
Description not yet available.
Definition: mc_scale.cpp:63
#define ISZERO(d)
Definition: model10.cpp:12
static int mc_phase
Definition: admodel.h:846
int indexmin(void) const
Definition: fvar.hpp:2568
int indexmax() const
Definition: fvar.hpp:2292
virtual void sd_scale(const dvector &d, const dvector &x, const int &ii)
Definition: model10.cpp:16
virtual void sd_scale(const dvector &d, const dvector &x, const int &ii)
Definition: model10.cpp:127