[J3] More Bessel functions

Van Snyder van.snyder at sbcglobal.net
Tue Jan 19 18:45:22 UTC 2021


On Tue, 2021-01-19 at 16:38 +0000, Nathan Sircombe via J3 wrote:
> They’re not implemented in libm as far as I can tell -
> 
> https://www.gnu.org/software/libc/manual/html_node/Special-Functions.html
> 
> …so you don’t get them ‘for free’, although GSL has an
> implementation.

There are more things in heaven and earth, Horatio, than are dreamt of
in your philosophy.
There are more sources of freely-available reliable mathematical
software than libm.
>  
> Cheers,
> Nathan.
>  
> 
> 
> From: J3 <j3-bounces at mailman.j3-fortran.org>
> 
> Date: Tuesday, 19 January 2021 at 15:44
> 
> To: General J3 interest list <j3 at mailman.j3-fortran.org>
> 
> Cc: Bill Long <longb at cray.com>
> 
> Subject: Re: [J3] More Bessel functions
> 
> 
> 
> 
> 
> 
> 
> > On Jan 18, 2021, at 4:29 PM, Van Snyder via J3 <
> j3 at mailman.j3-fortran.org> wrote:
> 
> > 
> 
> > Bessel functions of the first and second kind for integer orders
> were added in 2008.
> 
> 
> 
> Part of the motivation/justification  then was that these were in
> libm and (1) Fortran should not fall behind what is available to C
> programmers and (2) Implementation was simple since the libm versions
> of the functions could be called, and new functions would
>  not have to be written and tested.  Are the new ones being proposed
> also included in libm?   (I have a pretty fat book on special
> functions from my college days - the list of potential additions to
> the list of math functions is quite large.) 
> 
> 
> 
> 
> Cheers,
> 
> Bill
> 
> 
> 
> > 
> 
> > The need for modified Bessel functions is not as common, but still
> exists.
> 
> > 
> 
> > Ordinary Bessel functions' asymptotic behavior is ~1/sqrt(x).
> 
> > 
> 
> > Modified Bessel functions' asymptotic behaviors are ~exp(x)/sqrt(x)
> and ~exp(-x)/sqrt(x). Therefore, like the error function, scaled
> versions should be provided.
> 
> > 
> 
> > For 202y, I propose adding
> 
> > 
> 
> > Bessel_I0 (X)
> 
> > Bessel_I1(X)
> 
> > Bessel_IN(N,X)
> 
> > Bessel_IN(N1,N2,X)
> 
> > Bessel_K0 (X)
> 
> > Bessel_K1(X)
> 
> > Bessel_KN(N,X)
> 
> > Bessel_KN(N1,N2,X)
> 
> > 
> 
> > and versions with names ending with _Scaled.
> 
> > 
> 
> > The "scaled" versions for the modified Bessel function of the first
> kind would produce exp(-x) Bessel_I#, and for the second kind would
> produce exp(x) Bessel_K#. Those products behave asymptotically as
> 1/sqrt(x), so overflow and underflow are avoided for
>  much larger arguments than for the unscaled versions.
> 
> > 
> 
> 
> 
> Bill
> Long                                                                 
>       longb at hpe.com
> 
> Engineer/Master , Fortran Technical Support &   voice:  651-605-9024
> 
> Bioinformatics Software Development                      fax:  651-
> 605-9143
> 
> Hewlett Packard Enterprise/ 2131 Lindau Lane/  Suite 1000/ 
> Bloomington, MN  55425
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> IMPORTANT NOTICE: The contents of this email and any attachments are
> confidential and may also be privileged. If you are not the intended
> recipient, please notify the sender immediately and do not disclose
> the contents to any other person, use it for any purpose,
>  or store or copy the information in any medium. Thank you.
> 
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.j3-fortran.org/pipermail/j3/attachments/20210119/3968da42/attachment.htm>


More information about the J3 mailing list