
1 
/*


2 
* $Id$


3 
*


4 
* Author: David Fournier


5 
* Copyright (c) 20082012 Regents of the University of California


6 
*


7 
* ADModelbuilder and associated libraries and documentations are


8 
* provided under the general terms of the "New BSD" license


9 
*


10 
* License:


11 
*


12 
* Redistribution and use in source and binary forms, with or without


13 
* modification, are permitted provided that the following conditions are


14 
* met:


15 
*


16 
* 1. Redistributions of source code must retain the above copyright


17 
* notice, this list of conditions and the following disclaimer.


18 
*


19 
* 2. Redistributions in binary form must reproduce the above copyright


20 
* notice, this list of conditions and the following disclaimer in the


21 
* documentation and/or other materials provided with the distribution.


22 
*


23 
* 3. Neither the name of the University of California, Otter Research,


24 
* nor the ADMB Foundation nor the names of its contributors may be used


25 
* to endorse or promote products derived from this software without


26 
* specific prior written permission.


27 
*


28 
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS


29 
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT


30 
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR


31 
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT


32 
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,


33 
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT


34 
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,


35 
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY


36 
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT


37 
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE


38 
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


39 
*/


40 


41 
#ifndef __ADMB_DVAR_VECTOR_H__


42 
#define __ADMB_DVAR_VECTOR_H__


43 


44 
#include <double_and_int.h>


45 
#include <prevariable.h>


46 


47 
class double_and_int;


48 
class arr_link;


49 


50 
class predvar_vector


51 
{


52 
dvar_vector *p;


53 
int lb;


54 
int ub;


55 
inline predvar_vector(dvar_vector * _p, int _lb, int _ub)


56 
{


57 
p = _p;


58 
lb = _lb, ub = _ub;


59 
}


60 
friend class dvar_vector;


61 
};


62 


63 


64 
class dvar_vector


65 
{


66 
public:


67 
double_and_int * va;


68 
int index_min;


69 
int index_max;


70 
arr_link *link_ptr;


71 
vector_shapex *shape;


72 
public:


73 
dvar_vector operator ();


74 


75 
dvar_vector & operator (void)


76 
{


77 
index_min;


78 
index_max;


79 
va++;


80 
return *this;


81 
}


82 
dvar_vector & operator ++(void)


83 
{


84 
index_min++;


85 
index_max++;
