ADMB Documentation  11.1x.2711
 All Classes Files Functions Variables Typedefs Friends Defines
ivec3.cpp
Go to the documentation of this file.
00001 /*
00002  * $Id: ivec3.cpp 2559 2014-11-05 19:59:51Z 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 ivector ivector::operator()(const ivector& u)
00023  {
00024    ivector tmp(u.indexmin(),u.indexmax());
00025 
00026    for ( int i=u.indexmin(); i<=u.indexmax(); i++)
00027    {
00028      tmp(i)=(*this)(u(i));
00029    }
00030    return tmp;
00031  }
00032 
00037 lvector lvector::operator()(const lvector& u)
00038  {
00039    lvector tmp(u.indexmin(),u.indexmax());
00040 
00041    for ( int i=u.indexmin(); i<=u.indexmax(); i++)
00042    {
00043 #ifdef OPT_LIB
00044      tmp(i)=(*this)((int)u(i));
00045 #else
00046      const long ui = u(i);
00047      assert(ui <= INT_MAX);
00048      tmp(i)=(*this)((int)ui);
00049 #endif
00050    }
00051    return tmp;
00052  }