This is the mail archive of the fortran@gcc.gnu.org mailing list for the GNU Fortran project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [Patch,Fortran] PR36158 - Add transformational version of BESSEL_JN intrinsic


On 08/19/2010 05:34 AM, Steve Kargl wrote:
I read your patch and it appears to be correct,
except that 2.0 in mpfr_ui_div should probably
be an integer 2.

Fixed. I also added a link to DLMF for the recurrence algorithm.


I haven't had time to investigate your program and
findings, but I have no reason to suspect that your
results are flawed.  I am somewhat puzzled by them.
After all the work you did, I hesitate to suggest
that I would rather have gfortran produce correct
results slowly (ie, n2 - n1 + 1 calls to mpfr_{jn,yn})
than to get possibly wrong results fast via
recurrence algorithm.  If you want to change back
to your original algorithm that's fine with me;
otherwise, the current patch can be committed and
I'll see if I can find time to poke at it.

I have committed the version with the recurrence algorithm but added a note to intrinsics.texi that the transformational version uses a recurrence algorithm which might lead to different results than invoking the elemental function. From what I have heard from the J3/WG5 committee the transformational version has been added explicitly because it allows the implementation of the recurrence algorithm. Thus, it makes sense to use it.


The next step is to add an implementation for run-time evaluation, which will also use the recurrence algorithm - thus the mpfr and the run-time version will give the same result, which is useful by itself.

I think it were be useful if you could find time to poke at it. One could also consider using the algorithm for JN but not for YN - but first one should do more checks to make sure that I haven't just been lucky that JN worked so well.

Thanks for reviewing. Committed as Rev. 163364.

Tobias


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]