On Wed, Nov 29, 2017 at 4:37 PM, Waleed Almutiry <walmu...@uoguelph.ca> wrote:
> Hi all,
>
> I tried to upload my package to CRAN and did not pass the the incoming 
> checks. This was because the use of ieee_arithmetic module in a fortran 
> subroutine in the src folder. I built and checked the package using (R CMD 
> build) and (R CMD check) under IOS system and it is working fine without 
> errors. The gcc version in my system is (GNU Fortran (GCC) 5.2.0) while the 
> gcc version in the CRAN system is 4.9.3. This is the message that I have got 
> from the CRAN:
[snip]
>
> I used the ieee_arithmetic in some subroutines to read and write results of 
> Infinity values. I used it inside the subroutine as
>
> IF (ieee_support_inf(Inf)) THEN Inf = ieee_value(Inf, ieee_positive_inf) END 
> IF
>

Hello, Waleed.

I handled Inf and NaN by writing a C function that passes the magic
code words R_NaN and INFINITY and called them as external functions in
Fortran. See the source code of 'utils_and_wrappers.c' and
'delaporte.f95' at [1] for a working example of "set_nan" and
"set_inf"ideas. Originally, I used the actual bitpatterns to make the
functions pure, if not elemental, but Soldaris SPARC through a fit
since it was the opposite endian from the rest of the known universe.
Using the magic R words will ensure that the proper values will be
passed regardless of platform.

Hope that helps,

Avi

[1] https://bitbucket.org/aadler/delaporte

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to