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 00017 int size_count(const dvar_vector& x) 00018 { 00019 if (!(x)) 00020 return 0; 00021 else 00022 return x.size(); 00023 } 00024 00029 int size_count_partial(const dvar_vector& x,int n) 00030 { 00031 if (!(x)) 00032 return 0; 00033 else 00034 return max(0, n); 00035 } 00036 00041 int size_count(const dvar_matrix& x) 00042 { 00043 if (!(x)) 00044 return 0; 00045 else 00046 { 00047 int tmp=0; 00048 int min=x.rowmin(); 00049 int max=x.rowmax(); 00050 for (int i=min;i<=max;i++) 00051 { 00052 tmp+=size_count(x(i)); 00053 } 00054 return tmp; 00055 } 00056 } 00057 00062 int size_count_partial(const dvar_matrix& x, int n) 00063 { 00064 if (!(x)) 00065 return 0; 00066 else 00067 { 00068 int tmp=0; 00069 int min=x.rowmin(); 00070 int max=x.rowmax(); 00071 for (int i=min;i<=max;i++) 00072 { 00073 tmp+=size_count_partial(x(i),n); 00074 } 00075 return tmp; 00076 } 00077 } 00078 00083 int size_count(const dvar3_array& x) 00084 { 00085 if (!(x)) 00086 return 0; 00087 else 00088 { 00089 int tmp=0; 00090 int min=x.slicemin(); 00091 int max=x.slicemax(); 00092 for (int i=min;i<=max;i++) 00093 { 00094 tmp+=size_count(x(i)); 00095 } 00096 return tmp; 00097 } 00098 } 00099 00104 int size_count(const dvar4_array& x) 00105 { 00106 if (!(x)) 00107 return 0; 00108 else 00109 { 00110 int tmp=0; 00111 int min=x.indexmin(); 00112 int max=x.indexmax(); 00113 for (int i=min;i<=max;i++) 00114 { 00115 tmp+=size_count(x(i)); 00116 } 00117 return tmp; 00118 } 00119 } 00120 00125 int size_count(const d4_array& x) 00126 { 00127 if (!(x)) 00128 return 0; 00129 else 00130 { 00131 int tmp=0; 00132 int min=x.indexmin(); 00133 int max=x.indexmax(); 00134 for (int i=min;i<=max;i++) 00135 { 00136 tmp+=size_count(x(i)); 00137 } 00138 return tmp; 00139 } 00140 } 00141 00146 int size_count_partial(const dvar3_array& x, int n) 00147 { 00148 if (!(x)) 00149 return 0; 00150 else 00151 { 00152 int tmp=0; 00153 int min=x.slicemin(); 00154 int max=x.slicemax(); 00155 for (int i=min;i<=max;i++) 00156 { 00157 tmp+=size_count_partial(x(i),n); 00158 } 00159 return tmp; 00160 } 00161 }
Generated on Tue Mar 8 2016 19:51:35 for ADMB Documentation by 1.8.0 |