00001 /* 00002 * $Id$ 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 #if defined(_WIN32) 00041 elem(i) = u.elem(i); 00042 #else 00043 elem(i) = static_cast<double>(u.elem(i)); 00044 #endif 00045 } 00046 } 00047 00052 dvector dvector::operator ()(const ivector& u) 00053 { 00054 dvector tmp(u.indexmin(),u.indexmax()); 00055 00056 for ( int i=u.indexmin(); i<=u.indexmax(); i++) 00057 { 00058 tmp(i)=(*this)(u(i)); 00059 } 00060 return tmp; 00061 } 00062 00067 dvector dvector::operator ()(const lvector& u) 00068 { 00069 dvector tmp(u.indexmin(),u.indexmax()); 00070 00071 for ( int i=u.indexmin(); i<=u.indexmax(); i++) 00072 { 00073 #ifdef OPT_LIB 00074 tmp(i)=(*this)((int)u(i)); 00075 #else 00076 const long ui = u(i); 00077 assert(ui <= INT_MAX); 00078 tmp(i)=(*this)((int)ui); 00079 #endif 00080 } 00081 return tmp; 00082 }
Generated on Tue Mar 8 2016 19:51:32 for ADMB Documentation by 1.8.0 |