ADMB Documentation  -a65f1c97
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
model19.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 
10  const int& _ii)
11  {
12  dvector& d=(dvector&) _d;
13  int& ii=(int&) _ii;
14  d(ii)=0;
15  ii++;
16  }
17 
19  const int& _ii)
20 {
21  dvector& d=(dvector&) _d;
22  int& ii=(int&) _ii;
23  double pen=0;
24  d(ii)=nd2fboundp(x(ii),minb,maxb,pen);
25 
26  //d(ii)=(boundp(x(ii)+1.e-6,minb,maxb,pen)-
27  // 2.*boundp(x(ii),minb,maxb,pen)+
28  //boundp(x(ii)-1.e-6,minb,maxb,pen))/1.e-12;
29  ii++;
30 }
31 
33  const int& _ii)
34  {
35  int& ii=(int&) _ii;
36  dvector& v=(dvector&) _v;
37  int mmin=indexmin();
38  int mmax=indexmax();
39  for (int i=mmin;i<=mmax;i++)
40  {
41  v(ii++)=0.;
42  }
43  }
44 
46  const int& _ii)
47  {
48  int& ii=(int&) _ii;
49  dvector& v=(dvector&) _v;
50  int mmin=rowmin();
51  int mmax=rowmax();
52  for (int i=mmin;i<=mmax;i++)
53  {
54  int cmin=((*this)(i)).indexmin();
55  int cmax=((*this)(i)).indexmax();
56  for (int j=cmin;j<=cmax;j++)
57  {
58  v(ii++)=0.;
59  }
60  }
61  }
62 
64  const int& _ii)
65  {
66  int& ii=(int&) _ii;
67  dvector& v=(dvector&) _v;
68  int mmin=indexmin();
69  int mmax=indexmax();
70  double pen=0;
71  for (int i=mmin;i<=mmax;i++)
72  {
73  v(ii)=nd2fboundp(x(ii),minb,maxb,pen);
74  ii++;
75  }
76  }
77 
79  const int& _ii)
80  {
81  int& ii=(int&) _ii;
82  dvector& v=(dvector&) _v;
83  int rmin=rowmin();
84  int rmax=rowmax();
85  double pen=0;
86  for (int i=rmin;i<=rmax;i++)
87  {
88  int cmin=(*this)(i).indexmin();
89  int cmax=(*this)(i).indexmax();
90  for (int j=cmin;j<=cmax;j++)
91  {
92  v(ii)=nd2fboundp(x(ii),minb,maxb,pen);
93  ii++;
94  }
95  }
96  }
int rowmax(void) const
Definition: fvar.hpp:2564
virtual void curv_scale(const dvector &d, const dvector &x, const int &)
Definition: model19.cpp:78
#define x
Vector of double precision numbers.
Definition: dvector.h:50
virtual void curv_scale(const dvector &d, const dvector &x, const int &)
Definition: model19.cpp:9
virtual void curv_scale(const dvector &d, const dvector &x, const int &)
Definition: model19.cpp:63
double nd2fboundp(double x, double fmin, double fmax, const double &fpen)
Scale input variable between upper and lower bounds and compute a penalty for exceeding the bounds...
Definition: boundfun.cpp:282
Description not yet available.
int rowmin(void) const
Definition: fvar.hpp:2560
virtual void curv_scale(const dvector &d, const dvector &x, const int &)
Definition: model19.cpp:18
int indexmin() const
Definition: fvar.hpp:2287
int indexmax(void) const
Definition: fvar.hpp:2572
virtual void curv_scale(const dvector &d, const dvector &x, const int &)
Definition: model19.cpp:45
int indexmin(void) const
Definition: fvar.hpp:2568
virtual void curv_scale(const dvector &d, const dvector &x, const int &)
Definition: model19.cpp:32
int indexmax() const
Definition: fvar.hpp:2292