[Developers] libraries of functions

William Stockhausen - NOAA Federal william.stockhausen at noaa.gov
Tue Aug 12 12:39:18 PDT 2014


I don't think your suggestion will work, Steve (he said without having
tried it). If I understand things correctly (going out on a looong limb
here), "FUNCTION" is an identifier to the tpl2cpp translator that what
follows is a function that 1) whose signature should be added to the
model_parameters class declaration in tpl_name.htp and 2) whose
implementation should be added to tpl_name.cpp.

A nice (but probably tough to implement) feature in tpl2cpp would be the
ability to put the following:

FUNCTION dvariable model_parameters::Richards(const dvariable &age, const
dvariable &Linf, const dvariable &K, const dvariable &t0, const dvariable
&p)
    dvariable Length=Linf*pow((1+(1/p)*exp(-K*(age-t0))),-p);
    return(Length);

into a file (functions.cxx, say) and be able to "include" that text in the
tpl you're converting to cpp at a stage in the process before FUNCTIONs get
converted to cpp equivalents. If such a feature is currently available, I
haven't found it.

Buck
On Mon, Aug 11, 2014 at 3:59 PM, Steve Martell <martell.steve at gmail.com>
wrote:

> Try:
>
> FUNCTION dvariable model_parameters::Richards(const dvariable &age, const
> dvariable &Linf, const dvariable &K, const dvariable &t0, const dvariable
> &p)
> {
>   {
>     dvariable Length=Linf*pow((1+(1/p)*exp(-K*(age-t0))),-p);
>     return(Length);
>   }
> }
>
>
> On Aug 11, 2014, at 3:49 PM, Mark Maunder <mmaunder at iattc.org> wrote:
>
> Why do I get an error if I put the following function in the file
> CAPAM_Growth.hpp and include it using #include<CAPAM_Growth.hpp> but if I
> put it in the tpl using the FUNCTION section I do not? The translator
> appears to just put it in the cpp with no changes
>
> dvariable model_parameters::Richards(const dvariable &age, const dvariable
> &Linf, const dvariable &K, const dvariable &t0, const dvariable &p)
> {
>   {
>     dvariable Length=Linf*pow((1+(1/p)*exp(-K*(age-t0))),-p);
>     return(Length);
>   }
> }
>
> The errors I get are
>
> In file included from igm.cpp:3:0:
> ./CAPAM_Growth.hpp:130:142: error: invalid use of incomplete type 'struct
> model_parameters'
> c:/ADMB/admb101-gcc452-win32\include/admodel.h:107:9: error: forward
> declaration of 'struct model_parameters'
> igm.cpp: In member function 'virtual void
> model_parameters::userfunction()':
> igm.cpp:127:46: error: no matching function for call to
> 'Richards(prevariable, named_dvariable&, named_dvariable&,
> param_init_number&, named_dvariable&)'
> igm.cpp:128:58: error: no matching function for call to
> 'Richards(prevariable&, named_dvariable&, named_dvariable&,
> param_init_number&, named_dvariable&)'
> igm.cpp:139:49: error: no matching function for call to 'Richards(double&,
> named_dvariable&, named_dvariable&, param_init_number&, named_dvariable&)'
>
>
>
>
> The selectivity special issue of the journal Fisheries Research is now
> published
> http://www.sciencedirect.com/science/journal/01657836/158/supp/C
>
>
>
> The Stock Synthesis special issue of the journal Fisheries Research
>
> http://www.sciencedirect.com/science/journal/01657836/142
>
> Mark Maunder
> Head of the Stock Assessment
> Program
> Inter-American  Tropical Tuna
> Commission
> 8901 La Jolla Shores Dr.
> La Jolla, CA  92037-1508, USA
>
> Tel: (858) 546-7027
> Fax: (858) 546-7133
> mmaunder at iattc.org
>
> http://www.fisheriesstockassessment.com/TikiWiki/tiki-index.php?page=Mark+Maunder
>
> Visit the Center for the Advancement of Population Assessment Methodology
> at
> http://www.capamresearch.org/
>
> Visit the AD Model Builder project at
>  http://admb-project.org/
>
> See the following website for information on fisheries stock assessment
> http://www.fisheriesstockassessment.com/
>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "admb-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to admb-users+unsubscribe at googlegroups.com.
> To post to this group, send email to admb-users at googlegroups.com.
> Visit this group at http://groups.google.com/group/admb-users.
> For more options, visit https://groups.google.com/d/optout.
>
>
>
> _______________________________________________
> Developers mailing list
> Developers at admb-project.org
> http://lists.admb-project.org/mailman/listinfo/developers
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.admb-project.org/pipermail/developers/attachments/20140812/6d08d3d4/attachment.html>


More information about the Developers mailing list