ADMB Documentation  11.5.3197
 All Classes Files Functions Variables Typedefs Friends Defines
size.cpp
Go to the documentation of this file.
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 }