<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 06/27/2014 01:38 PM, Mark Maunder
      wrote:<br>
      <br>
      see the concept traits in the template book. It is the way to deal
      with this.<br>
    </div>
    <blockquote
      cite="mid:a047eabb-31d6-491e-a8bb-d7803ea30d0a@MAIL1.lajolla.iattc.org"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      <meta name="Generator" content="Microsoft Word 14 (filtered
        medium)">
      <!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]-->
      <style><!--
/* Font Definitions */
@font-face
        {font-family:Helvetica;
        panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.apple-converted-space
        {mso-style-name:apple-converted-space;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
span.EmailStyle20
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">But
            that would mean the user has to know how to call the
            function in this special way, which is probably asking too
            much.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Wouldn’t
            simply specifying the return type as being different from
            the argument work? And the compiler would work out t1 from
            the definition of len?<o:p></o:p></span></p>
        <p class="MsoNormal">len = vonB(age,linf,k,ro);<o:p></o:p></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal">template<typename t1, typename t2,
          typename t3><o:p></o:p></p>
        <p class="MsoNormal">t1 vonB(const t2 age, const t3 linf, const
          t3 k,const t3 to)<span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"><o:p> </o:p></span></p>
        <div>
          <div style="border:none;border-top:solid #B5C4DF
            1.0pt;padding:3.0pt 0in 0in 0in">
            <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">
                Steve Martell [<a class="moz-txt-link-freetext" href="mailto:SteveM@iphc.int">mailto:SteveM@iphc.int</a>]
                <br>
                <b>Sent:</b> Friday, June 27, 2014 1:31 PM<br>
                <b>To:</b> Mark Maunder<br>
                <b>Cc:</b> <a class="moz-txt-link-abbreviated" href="mailto:developers@admb-project.org">developers@admb-project.org</a>; Alexandre
                Aires-Da-Silva; Carolina Minte-Vera; Sean Patrick Cox<br>
                <b>Subject:</b> Re: [Developers] Template functions and
                documentation<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Sorry I pulled the send trigger to quickly,
          the baby woke up!
          <o:p></o:p></p>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <div>
          <p class="MsoNormal">What I was getting at is when you have
            function that returns a type that is not passed as one of
            the arguments.  You can still use a template function but
            when you call it, you have to specify what the return type
            is.  eg<o:p></o:p></p>
        </div>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <div>
          <p class="MsoNormal">len =
            vonB<dvar_vector>(age,linf,k,ro);<o:p></o:p></p>
        </div>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <div>
          <p class="MsoNormal">In this case you would write the template
            as:<o:p></o:p></p>
        </div>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <div>
          <p class="MsoNormal">template<typename t1, typename t2,
            typename t3><o:p></o:p></p>
        </div>
        <div>
          <p class="MsoNormal">t1 vonB(const t2 age, const t3 linf,
            const t3 k,const t3 to)<o:p></o:p></p>
        </div>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <div>
          <p class="MsoNormal">Steve<o:p></o:p></p>
        </div>
        <div>
          <p class="MsoNormal"><o:p> </o:p></p>
          <div>
            <div>
              <p class="MsoNormal">On Jun 27, 2014, at 12:19 PM, Mark
                Maunder <<a moz-do-not-send="true"
                  href="mailto:mmaunder@iattc.org">mmaunder@iattc.org</a>>
                wrote:<o:p></o:p></p>
            </div>
            <p class="MsoNormal"><br>
              <br>
              <o:p></o:p></p>
            <div>
              <div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D">Steve,</span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal">Re: In this case, the function
                    returns a dvector, but assigns it to a dvar_vector.
                     <o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"> <o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal">Yes, I recognize this. I think
                    this can be solved by overloading the template with
                    an explicit type for the return variable or making
                    the return variable a third type.<o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"> <o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal">Mark<o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"> <o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D"> </span><o:p></o:p></p>
                </div>
                <div>
                  <div style="border:none;border-top:solid #B5C4DF
                    1.0pt;padding:3.0pt 0in 0in 0in">
                    <div>
                      <p class="MsoNormal"><b><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span
                          class="apple-converted-space"><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> </span></span><span
style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">Steve

                          Martell [<a moz-do-not-send="true"
                            href="mailto:SteveM@iphc.int"><span
                              style="color:purple">mailto:SteveM@iphc.int</span></a>]<span
                            class="apple-converted-space"> </span><br>
                          <b>Sent:</b><span
                            class="apple-converted-space"> </span>Friday,
                          June 27, 2014 11:31 AM<br>
                          <b>To:</b><span class="apple-converted-space"> </span>Mark
                          Maunder<br>
                          <b>Cc:</b><span class="apple-converted-space"> </span><a
                            moz-do-not-send="true"
                            href="mailto:developers@admb-project.org"><span
                              style="color:purple">developers@admb-project.org</span></a>;
                          Alexandre Aires-Da-Silva; Carolina Minte-Vera;
                          Sean Patrick Cox<br>
                          <b>Subject:</b><span
                            class="apple-converted-space"> </span>Re:
                          [Developers] Template functions and
                          documentation</span><o:p></o:p></p>
                    </div>
                  </div>
                </div>
                <div>
                  <p class="MsoNormal"> <o:p></o:p></p>
                </div>
                <div>
                  <div>
                    <p class="MsoNormal">Hi Mark, Alex, Carolina<o:p></o:p></p>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal"> <o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">Attached is a pretty
                        comprehensive book on using template classes and
                        template functions in C++.  Its a great way to
                        fall asleep at night.<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal"> <o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">There is a lot of things you
                        can do with templates, but from my naive
                        perspective its a great way to reduce the need
                        for function overloading and only have a single
                        copy of the function to maintain.  The primary
                        thing to remember is that the compiler will
                        write the actual code that gets implemented;
                        therefore, the function templates are usually
                        found in the header file (.h or .htp, or .hpp).<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal"> <o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">One thing to be aware of is
                        return types that differ from the types passed
                        to the function arguments.  For example:<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal"> <o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">in the vonb.hpp file:<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal"> <o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">template<typename t1,
                        typename t2><o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">t1 vonB(const t1 age, const
                        t2 linf, const t2, vonbk)<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">{<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">return(linf*(1.-exp(-vonbk*age)));<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">}<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal"> <o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal"> <o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">in your tpl file:<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal"> <o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">dvector age(1,5);<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">age.fill_seqadd(1,1);<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">dvar_vector len(1,5);<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">len = vonB(age,linf,vbk);<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal"> <o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">In this case, the function
                        returns a dvector, but assigns it to a
                        dvar_vector.  And this will be problematic.<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal"> <o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">Steve<o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal"> <o:p></o:p></p>
                    </div>
                  </div>
                  <div>
                    <div>
                      <p class="MsoNormal">On Jun 27, 2014, at 11:05 A<o:p></o:p></p>
                    </div>
                  </div>
                </div>
                <div>
                  <div>
                    <div>
                      <div>
                        <p class="MsoNormal">M, Mark Maunder <<a
                            moz-do-not-send="true"
                            href="mailto:mmaunder@iattc.org"><span
                              style="color:purple">mmaunder@iattc.org</span></a>>
                          wrote:<o:p></o:p></p>
                      </div>
                    </div>
                    <div>
                      <p class="MsoNormal" style="margin-bottom:12.0pt"><o:p> </o:p></p>
                    </div>
                    <div>
                      <div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">Hi
                                developers,</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> </span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">I
                                am in the process or putting together a
                                model that will be used to evaluate
                                several growth equations so I thought I
                                better try to use the ADMB project
                                “approved” approach for writing the
                                functions. Below is a template function
                                and documentation for the von
                                Bertalanffy growth equation. I would
                                appreciate any advice on doing this
                                “correctly”.</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> </span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">Thanks,</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> </span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">Mark</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> </span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">/**</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">\defgroup
                                CONTRIB Contributed libraries</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">*/</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> </span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">/**</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">\ingroup
                                CONTRIB</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">\defgroup
                                CAPAM CAPAM created functions</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">*/</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> </span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">#include
                                <admodel.h></span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> </span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">/** 
                                von Bertalanffy growth equation;
                                constant objects.</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> 
                                \ingroup CAPAM</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> 
                                \brief Calculate the length from a given
                                age based on the von Bertalanffy
                                equation. Written by Mark Maunder.</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> 
                                \param age age of individual, \f$a\f$.</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> 
                                \param Linf asymptotic length,
                                \f$L_inf\f$.</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> 
                                \param K growth rate, \f$K\f$.</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> 
                                \param t0 age at zero length, \f$t_0\f$.</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> 
                                \return length predicted length of
                                individual.
                                \f$L_inf*(1-exp(-K*(a-t0)))\f$.</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> 
                                */</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">  </span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">template
                                <typename type1, typename type1></span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">//can
                                have multiple types so that they are
                                used below in variable definitions, they
                                can differ between function calls, but
                                remain the same within a function call</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">//type1
                                is probably a long</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">//type2
                                is probably a dvariable (either a model
                                parameter (Linf K t0) or a derived
                                variable (length))</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">//may
                                need a type3, which is a dvar_vector if
                                age and length are vectors, where type 1
                                will be a vector</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">type1
                                vonB(const type1 &age, const type2
                                &Linf, const type2 &K, const
                                type2 &t0)</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">{</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> 
                                type2 length =
                                Linf*(1.-mfexp(-K*(age-t0)));</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> 
                                return (length);</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">} </span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> </span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> </span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">//is
                                length a bad word to use</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">//do
                                we use ingroup for both groups and
                                subgroups in doxygen documentation</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">//should
                                we use mfexp?</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">//what
                                if age and length are vectors, but age
                                is a vector and length is a dvar_vector,
                                do we need to overload the type with one
                                with three variable types</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">//I
                                couldn't work out how to put in the
                                detailed description</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif"">//The
                                equations did not work on my computer</span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> </span><o:p></o:p></p>
                          </div>
                        </div>
                        <div>
                          <div>
                            <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri","sans-serif""> </span><o:p></o:p></p>
                          </div>
                        </div>
                      </div>
                      <div>
                        <p class="MsoNormal"><span
style="font-size:13.5pt;font-family:"Helvetica","sans-serif"">_______________________________________________<br>
                            Developers mailing list<br>
                            <a moz-do-not-send="true"
                              href="mailto:Developers@admb-project.org"><span
                                style="color:purple">Developers@admb-project.org</span></a><br>
                            <a moz-do-not-send="true"
                              href="http://lists.admb-project.org/mailman/listinfo/developers"><span
                                style="color:purple">http://lists.admb-project.org/mailman/listinfo/developers</span></a></span><o:p></o:p></p>
                      </div>
                    </div>
                  </div>
                  <div>
                    <p class="MsoNormal"> <o:p></o:p></p>
                  </div>
                </div>
                <div>
                  <p class="MsoNormal"> <o:p></o:p></p>
                </div>
                <div class="MsoNormal" style="text-align:center"
                  align="center">
                  <hr align="center" size="3" width="100%">
                </div>
                <div>
                  <p class="MsoNormal"><span
style="font-size:7.5pt;font-family:"Arial","sans-serif";color:gray"><br>
                      This internet e-mail message, and any files
                      transmitted with it, contains confidential,
                      privileged information that is intended only for
                      the addressee. If you have received this e-mail
                      message in error, please call us at (206) 634-1838
                      collect if necessary) and ask to speak to the
                      message sender. Nothing in this e-mail or the act
                      of transmitting it, is to be construed as a waiver
                      of any rights or privileges enjoyed by the sender
                      or the International Pacific Halibut Commission
                      pursuant to the International Organizations
                      Immunities Act, 22 U.S.C. Sec. 288 et seq.</span><o:p></o:p></p>
                </div>
              </div>
            </div>
          </div>
          <p class="MsoNormal"><o:p> </o:p></p>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <div class="MsoNormal" style="text-align:center" align="center">
          <hr align="center" size="3" width="100%">
        </div>
        <p class="MsoNormal"><span
style="font-size:7.5pt;font-family:"Arial","sans-serif";color:gray"><br>
            This internet e-mail message, and any files transmitted with
            it, contains confidential, privileged information that is
            intended only for the addressee. If you have received this
            e-mail message in error, please call us at (206) 634-1838
            collect if necessary) and ask to speak to the message
            sender. Nothing in this e-mail or the act of transmitting
            it, is to be construed as a waiver of any rights or
            privileges enjoyed by the sender or the International
            Pacific Halibut Commission pursuant to the International
            Organizations Immunities Act, 22 U.S.C. Sec. 288 et seq.</span><o:p></o:p></p>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Developers mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Developers@admb-project.org">Developers@admb-project.org</a>
<a class="moz-txt-link-freetext" href="http://lists.admb-project.org/mailman/listinfo/developers">http://lists.admb-project.org/mailman/listinfo/developers</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>