ADMB Documentation  11.1x.2711
 All Classes Files Functions Variables Typedefs Friends Defines
dvect8.cpp
Go to the documentation of this file.
00001 /*
00002  * $Id: dvect8.cpp 2555 2014-11-04 18:43:42Z johnoel $
00003  *
00004  * Author: David Fournier
00005  * Copyright (c) 2008-2012 Regents of the University of California
00006  */
00011 #include "fvar.hpp"
00012 
00013 #ifndef OPT_LIB
00014   #include <cassert>
00015   #include <climits>
00016 #endif
00017 
00022 dvector::dvector(const ivector& u)
00023  {
00024    allocate(u.indexmin(),u.indexmax());
00025    for ( int i=indexmin(); i<=indexmax(); i++)
00026    {
00027      elem(i)=u.elem(i);
00028    }
00029  }
00030 
00035 dvector::dvector(const lvector& u)
00036  {
00037    allocate(u.indexmin(),u.indexmax());
00038    for ( int i=indexmin(); i<=indexmax(); i++)
00039    {
00040      elem(i)=u.elem(i);
00041    }
00042  }
00043 
00048 dvector dvector::operator ()(const ivector& u)
00049  {
00050    dvector tmp(u.indexmin(),u.indexmax());
00051 
00052    for ( int i=u.indexmin(); i<=u.indexmax(); i++)
00053    {
00054      tmp(i)=(*this)(u(i));
00055    }
00056    return tmp;
00057  }
00058 
00063 dvector dvector::operator ()(const lvector& u)
00064  {
00065    dvector tmp(u.indexmin(),u.indexmax());
00066 
00067    for ( int i=u.indexmin(); i<=u.indexmax(); i++)
00068    {
00069 #ifdef OPT_LIB
00070      tmp(i)=(*this)((int)u(i));
00071 #else
00072      const long ui = u(i);
00073      assert(ui <= INT_MAX);
00074      tmp(i)=(*this)((int)ui);
00075 #endif
00076    }
00077    return tmp;
00078  }