[J3] More Bessel functions

Van Snyder van.snyder at sbcglobal.net
Tue Jan 19 18:35:09 UTC 2021

On Tue, 2021-01-19 at 15:43 +0000, Bill Long via J3 wrote:
> > 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.)  

libm isn't the only collection of freely-available reliable
mathematical software.
Fortran was designed for applied mathematics, not to write operating
systems, games, or web pages.
The reason to add Bessel functions was because they appear frequently
in mathematical problems, not in operating systems, games or web pages.
It has nothing to do with Keeping Up With the Joneses.
WG5/N1688 proposed an optional part of 1539 to specify interfaces to
software to evaluate most of the functions described in ISO/IEC 31-11
Clause 14, not libm.
> 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-
> 9024Bioinformatics Software
> Development                      fax:  651-605-9143Hewlett Packard
> Enterprise/ 2131 Lindau Lane/  Suite 1000/  Bloomington, MN  55425
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.j3-fortran.org/pipermail/j3/attachments/20210119/6d1bf0f8/attachment.htm>

More information about the J3 mailing list