how packages work

*To*: mathgroup at smc.vnet.net*Subject*: [mg116664] how packages work*From*: "Ted Sariyski" <tsariysk at craft-tech.com>*Date*: Wed, 23 Feb 2011 05:24:23 -0500 (EST)*References*: <201102210920.EAA20640@smc.vnet.net>

Hi, I am confused how packages work. I have a simple function which I can plot and evaluate without any messages or warnings, e.g. # f[3000, lam1, lam2]/.{lam1-> 4.*10^-7, lam2->5.*10^-7} Out: -411.32 When I try FindRoot I get an obscure message followed by a correct result: # FindRoot[f[x, lam1, lam2] == 0, {x, 3000}] (*lam1=4.*10^-7; lam2=5.*10^-7*) Out: NIntegrate::inumr: The integrand 3.74177*10^-16/((-1+E^(<<21>>/(x z$36620))) z$36620^5) has evaluated to non-numerical values for all sampling points in the region with boundaries {{4.*10^-7,5.*10^-7}}. >> {x -> 4969.42} Function f is defined through two modules in myUtils` package: f[x_, lam1_, lam2_] := inbInt[x, lam1, lam2] - 420.; (*myUtils`*) inbInt[t_,l1_,l2_] := Module[ {z,bbint}, bbint = NIntegrate[pFun[t, z],{z,l1,l2}]; Return[bbint]; ]; pFun[t_, x_] := Module[ {bbint}, bbint = (3.74*10^-16/ x^5)/(Exp[0.014/(x*t)]-1); Return[bbint]; ]; How is that Plot doesn't complain for non-numerical values but FindRoot does? Thanks in advance, --Ted

**References**:**Re: DeveloperContextFreeForm and local symbols in packages (more)***From:*"E. Martin-Serrano" <eMartinSerrano@telefonica.net>