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 #include <cassert> 00013 00014 00020 bool dvector::is_valid_index(const int i) const 00021 { 00022 bool valid = index_min <= i && i <= index_max; 00023 if (!valid) 00024 { 00025 #if defined(USE_EXCEPTIONS) 00026 throw vector_range_exception(i, index_min, index_max); 00027 #else 00028 cerr << "Error: Used invalid i = " << i << " for dvector bounded by [" 00029 << index_min << ", " << index_max << "].\n"; 00030 #endif 00031 } 00032 return valid; 00033 } 00034 #if !defined(OPT_LIB) 00035 00040 double& dvector::operator[](int i) 00041 { 00042 assert((index_min <= i && i <= index_max) || is_valid_index(i)); 00043 00044 return *(v + i); 00045 } 00051 double& dvector::operator()(int i) 00052 { 00053 assert((index_min <= i && i <= index_max) || is_valid_index(i)); 00054 00055 return *(v + i); 00056 } 00062 const double& dvector::operator[](int i) const 00063 { 00064 assert((index_min <= i && i <= index_max) || is_valid_index(i)); 00065 00066 return *(v + i); 00067 } 00073 const double& dvector::operator()(int i) const 00074 { 00075 assert((index_min <= i && i <= index_max) || is_valid_index(i)); 00076 00077 return *(v + i); 00078 } 00079 #endif
Generated on Tue Mar 8 2016 19:51:32 for ADMB Documentation by 1.8.0 |