ADMB Documentation  11.5.3197
 All Classes Files Functions Variables Typedefs Friends Defines
suballoc.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 sub_unallocated(const dvar_vector& m)
00018   {
00019     int iflag = 0;
00020     if (!allocated(m)) iflag=1;
00021     return iflag;
00022   }
00023 
00028   int sub_unallocated(const dvar_matrix& m)
00029   {
00030     int iflag=0;
00031     if (!allocated(m))
00032     {
00033       iflag=1;
00034       return iflag;
00035     }
00036     int mmin=m.indexmin();
00037     int mmax=m.indexmax();
00038     if (!allocated(m))
00039     {
00040       iflag=1;
00041       return iflag;
00042     }
00043     for (int i=mmin;i<=mmax;i++)
00044     {
00045       if (!allocated(m(i)))
00046       {
00047         iflag=1;
00048         break;
00049       }
00050     }
00051     return iflag;
00052   }
00053 
00058   int sub_unallocated(const dvar3_array& m)
00059   {
00060     int iflag=0;
00061     int mmin=m.indexmin();
00062     int mmax=m.indexmax();
00063     if (!allocated(m))
00064     {
00065       iflag=1;
00066       return iflag;
00067     }
00068     if (!allocated(m))
00069     {
00070       iflag=1;
00071       return iflag;
00072     }
00073     for (int i=mmin;i<=mmax;i++)
00074     {
00075       if (sub_unallocated(m(i)))
00076       {
00077         iflag=1;
00078         break;
00079       }
00080     }
00081     return iflag;
00082   }
00083 
00088   int sub_unallocated(const dvar4_array& m)
00089   {
00090     int iflag=0;
00091     int mmin=m.indexmin();
00092     int mmax=m.indexmax();
00093     if (!allocated(m))
00094     {
00095       iflag=1;
00096       return iflag;
00097     }
00098     if (!allocated(m))
00099     {
00100       iflag=1;
00101       return iflag;
00102     }
00103     for (int i=mmin;i<=mmax;i++)
00104     {
00105       if (sub_unallocated(m(i)))
00106       {
00107         iflag=1;
00108         break;
00109       }
00110     }
00111     return iflag;
00112   }
00113 
00118   int sub_unallocated(const dvar5_array& m)
00119   {
00120     int iflag=0;
00121     int mmin=m.indexmin();
00122     int mmax=m.indexmax();
00123     if (!allocated(m))
00124     {
00125       iflag=1;
00126       return iflag;
00127     }
00128     if (!allocated(m))
00129     {
00130       iflag=1;
00131       return iflag;
00132     }
00133     for (int i=mmin;i<=mmax;i++)
00134     {
00135       if (sub_unallocated(m(i)))
00136       {
00137         iflag=1;
00138         break;
00139       }
00140     }
00141     return iflag;
00142   }
00143 
00148   int sub_unallocated(const dvector& m)
00149   {
00150     int iflag = 0;
00151     if (!allocated(m)) iflag=1;
00152     return iflag;
00153   }
00154 
00159   int sub_unallocated(const dmatrix& m)
00160   {
00161     int iflag=0;
00162     int mmin=m.indexmin();
00163     int mmax=m.indexmax();
00164     if (!allocated(m))
00165     {
00166       iflag=1;
00167       return iflag;
00168     }
00169     for (int i=mmin;i<=mmax;i++)
00170     {
00171       if (!allocated(m(i)))
00172       {
00173         iflag=1;
00174         break;
00175       }
00176     }
00177     return iflag;
00178   }
00179 
00184   int sub_unallocated(const d3_array& m)
00185   {
00186     int iflag=0;
00187     int mmin=m.indexmin();
00188     int mmax=m.indexmax();
00189     if (!allocated(m))
00190     {
00191       iflag=1;
00192       return iflag;
00193     }
00194     for (int i=mmin;i<=mmax;i++)
00195     {
00196       if (sub_unallocated(m(i)))
00197       {
00198         iflag=1;
00199         break;
00200       }
00201     }
00202     return iflag;
00203   }
00204 
00209   int sub_unallocated(const d4_array& m)
00210   {
00211     int iflag=0;
00212     int mmin=m.indexmin();
00213     int mmax=m.indexmax();
00214     if (!allocated(m))
00215     {
00216       iflag=1;
00217       return iflag;
00218     }
00219     for (int i=mmin;i<=mmax;i++)
00220     {
00221       if (sub_unallocated(m(i)))
00222       {
00223         iflag=1;
00224         break;
00225       }
00226     }
00227     return iflag;
00228   }
00229 
00234   int sub_unallocated(const d5_array& m)
00235   {
00236     int iflag=0;
00237     int mmin=m.indexmin();
00238     int mmax=m.indexmax();
00239     if (!allocated(m))
00240     {
00241       iflag=1;
00242       return iflag;
00243     }
00244     for (int i=mmin;i<=mmax;i++)
00245     {
00246       if (sub_unallocated(m(i)))
00247       {
00248         iflag=1;
00249         break;
00250       }
00251     }
00252     return iflag;
00253   }
00254 
00259 int sub_unallocated(const ivector& m)
00260 {
00261   int iflag = 0;
00262   if (!allocated(m)) iflag=1;
00263   return iflag;
00264 }
00265 
00270   int sub_unallocated(const imatrix& m)
00271   {
00272     int iflag=0;
00273     int mmin=m.indexmin();
00274     int mmax=m.indexmax();
00275     if (!allocated(m))
00276     {
00277       iflag=1;
00278       return iflag;
00279     }
00280     for (int i=mmin;i<=mmax;i++)
00281     {
00282       if (!allocated(m(i)))
00283       {
00284         iflag=1;
00285         break;
00286       }
00287     }
00288     return iflag;
00289   }
00290 
00295   int sub_unallocated(const i3_array& m)
00296   {
00297     int iflag=0;
00298     int mmin=m.indexmin();
00299     int mmax=m.indexmax();
00300     if (!allocated(m))
00301     {
00302       iflag=1;
00303       return iflag;
00304     }
00305     for (int i=mmin;i<=mmax;i++)
00306     {
00307       if (sub_unallocated(m(i)))
00308       {
00309         iflag=1;
00310         break;
00311       }
00312     }
00313     return iflag;
00314   }
00315 
00320   int sub_unallocated(const i4_array& m)
00321   {
00322     int iflag=0;
00323     int mmin=m.indexmin();
00324     int mmax=m.indexmax();
00325     if (!allocated(m))
00326     {
00327       iflag=1;
00328       return iflag;
00329     }
00330     for (int i=mmin;i<=mmax;i++)
00331     {
00332       if (sub_unallocated(m(i)))
00333       {
00334         iflag=1;
00335         break;
00336       }
00337     }
00338     return iflag;
00339   }