On Fri, May 4, 2012 at 6:11 PM, Mikael Morin <mikael.mo...@sfr.fr> wrote: > On 02/05/2012 21:22, Janne Blomqvist wrote: >> PING #2 >> >> On Thu, Apr 26, 2012 at 12:20 AM, Janne Blomqvist >> <blomqvist.ja...@gmail.com> wrote: >>> PING! >>> >>> On Thu, Apr 19, 2012 at 00:46, Janne Blomqvist >>> <blomqvist.ja...@gmail.com> wrote: >>>> Hi, >>>> >>>> the attached patch implements a few fixes and cleanups for the MOD and >>>> MODULO intrinsics. >>>> >>>> - When the arguments are constant, use mpfr_fmod instead of the naive >>>> algorithms which are numerically unstable for large arguments. This >>>> extends the PR 24518 fix to constant arguments as well, and makes the >>>> compile-time evaluation match the runtime implementation which also >>>> uses fmod in the same manner. >>>> >>>> - Remove the old fallback path for the case builtin_fmod is not >>>> available, as the builtin is AFAICS always available. >>>> >>>> - Specify the behavior wrt. the sign and magnitude of the result, >>>> mention this in the documentation. This includes signed zeros which >>>> now behave similar to other finite values. I.e. for MOD(A, P) the >>>> result has the sign of A and a magnitude less than that of P, and for >>>> MODULO(A, P) the result has the sign of P and a magnitude less than >>>> that of P. As a (minor?) caveat, at runtime this depends on the >>>> implementation of the fmod function in the target C library. But, a >>>> fmod that follows C99 Annex F implements this behavior. >>>> >>>> Regtested on x86_64-unknown-linux-gnu, Ok for trunk? >>>> >>>> 2012-04-19 Janne Blomqvist <j...@gcc.gnu.org> >>>> >>>> PR fortran/49010 >>>> PR fortran/24518 >>>> * intrinsic.texi (MOD, MODULO): Mention sign and magnitude of >>>> result. >>>> * simplify.c (gfc_simplify_mod): Use mpfr_fmod. >>>> (gfc_simplify_modulo): Likewise, use copysign to fix the result if >>>> zero. >>>> * trans-intrinsic.c (gfc_conv_intrinsic_mod): Remove fallback as >>>> builtin_fmod is always available. For modulo, call copysign to fix >>>> the result when signed zeros are enabled. >>>> >>>> >>>> -- >>>> Janne Blomqvist >>> >>> >>> >>> -- >>> Janne Blomqvist >> >> >> > > Hello, > > this looks good. OK with a testcase.
Committed as r187191. Testcases I committed attached. > Thanks, and sorry for the delay. Thanks for the review! -- Janne Blomqvist
mod_large_1.f90
Description: Binary data
mod_sign0_1.f90
Description: Binary data