#7 algorithm for computation of Bessel function

open-accepted
algorithm (3)
5
2003-11-25
2003-11-03
No

This tarball gives :
1) the computer code for computation of Bessel
functions of complex arguments and integer order
"besselj_complex.cpp"
2) the test suite for the algorithm
"test_besselj_complex.cpp"
3) a MATLAB code for comparing bessel functions
generated by MATLAB and the algorithm "comp_bessel.m"

The Bessel functions algorithm is written with the help
of Blitz++, although this is not a requirement. The
user should read the commentaries inside the
"test_besselj_function.cpp" before trying the code.

The "makefile" should be modified as needed.

Discussion

  • Julian Cummings

    Julian Cummings - 2003-11-25
    • milestone: 243346 -->
    • status: open --> open-accepted
     
  • Julian Cummings

    Julian Cummings - 2003-11-25

    Logged In: YES
    user_id=623409

    I have converted the original Bessel function that was
    submitted into a functor, where operator() applies the
    function. This allows one to use simple syntax for applying
    the function to a blitz Array of complex numbers. In
    addition, I have templated the original code on the
    floating-point number type, so that both single- and
    double-precision complex numbers will be accepted. At the
    suggestion of the code author, I modified the original
    algorithm to ensure convergence when real(z) is negative. I
    have checked that the results and the speed of the algorithm
    did not change with these modifications. The
    besselj_complex function spends approximately 2.95 seconds
    computing in the test program test_besselj_complex, whereas
    MATLAB computes the function in about 1.62 seconds on my
    desktop machine.

     
  • Julian Cummings

    Julian Cummings - 2003-11-25

    templated functor version of besselj_complex

     
  • Julian Cummings

    Julian Cummings - 2003-11-25
    • labels: --> algorithm
    • assigned_to: nobody --> sedibald
     
  • van den Bosch

    van den Bosch - 2003-11-26

    Logged In: YES
    user_id=899144

    I have changed the algorithm of the functor in order to
    compute besselj_complex for the whole complex z plane. Next
    changes will concern the stability of the algorithm for very
    high values of n (the order), as well as its profiling for
    the sake of performance (MATLAB is still 2-3 times faster).
    The programs needed for the tests are bundled in the
    tarball. Of course, one can also write its own test routine
    or simply edit the z_points.ini file.

     
  • van den Bosch

    van den Bosch - 2003-11-26

    Logged In: YES
    user_id=899144

    I retry to submit a change, as the tarball has not been
    uploaded...

     
  • van den Bosch

    van den Bosch - 2003-11-26

    besselj_complex.h3 functor for all complex plane + test functions

     

Log in to post a comment.