[Rcpp-devel] Rcpp function results are different on different systems
Sokol Serguei
serguei.sokol at gmail.com
Thu Aug 19 09:59:21 CEST 2021
HI,
I cannot help with your bug. However...
Le 19/08/2021 à 04:17, Naeem Khoshnevis a écrit :
>
> Dear all,
>
>
> I wrote a function using Rcpp; it is a simple function; however, it
> significantly improves the performance.
>
Compared to what? The same algorithm with plenty for-loop re-written in
R? Then sure, it will improve the performance.
But what your algorithm does can be expressed as one-liner in R:
out=apply(abs(outer(a,b,"-"))*sc+cd, 2, which.min)
It should be also much more performant then R code with for-loop
everywhere (though not so performant as C++ code).
Oh, and it will not require a whole package to do the job.
Best,
Serguei.
> I realized that on some systems, the result of the function is
> different from others.
>
>
> For example, on the following systems (on rhub), the results are
> identical and are correct:
>
> * Fedora Linux, R-devel, clang, gfortran (fedora-clang-devel)
> * macOS 10.13.6 High Sierra, R-release, brew (macos-highsierra-release)
> * Windows Server 2008 R2 SP1, R-devel, 32/64 bit (windows-x86_64-devel)
>
> However, on the following systems (on rhub), the results are different:
>
> * Ubuntu Linux 20.04.1 LTS, R-devel, GCC (ubuntu-gcc-devel)
>
>
> Here is the error:
>
>
> Running the tests in ‘tests/testthat.R’ failed.
>
> Last 13 lines of output:
>
> val[1] not equal to 4.
>
> 1/1 mismatches
>
> [1] 2 - 4 == -2
>
> ── Failure (test-compute_closest_wgps_helper.R:12:3):
> compute_closest_wgps_helper works as expected. ──
>
> val[3] not equal to 3.
>
> 1/1 mismatches
>
> [1] 1 - 3 == -2
>
> ── Failure (test-compute_closest_wgps_helper.R:13:3):
> compute_closest_wgps_helper works as expected. ──
>
> val[4] not equal to 1.
>
> 1/1 mismatches
>
> [1] 2 - 1 == 1
>
> [ FAIL 3 | WARN 0 | SKIP 0 | PASS 69 ]
>
>
> As much as I can check the code, it looks correct. But I am not sure
> what else I can check. Some package users claimed that different R
> versions provide different results; however, I checked it on
> r-base=3.6, 4.0, 4.1 and received the same correct results (macOS 11.2).
>
> I would be grateful if you could let me know your thoughts about this
> issue.
>
>
> Here is the source code:
>
> https://github.com/fasrc/CausalGPS/blob/97342ecc90fd20f2c7c4458a70aefe471b09510c/src/compute_closest_wgps_helper.cpp
> <https://github.com/fasrc/CausalGPS/blob/97342ecc90fd20f2c7c4458a70aefe471b09510c/src/compute_closest_wgps_helper.cpp>
>
>
> Here is the related test:
>
> https://github.com/fasrc/CausalGPS/blob/97342ecc90fd20f2c7c4458a70aefe471b09510c/tests/testthat/test-compute_closest_wgps_helper.R
> <https://github.com/fasrc/CausalGPS/blob/97342ecc90fd20f2c7c4458a70aefe471b09510c/tests/testthat/test-compute_closest_wgps_helper.R>
>
>
>
> Best regards,
>
> Naeem Khoshnevis
>
>
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20210819/645c0343/attachment.html>
More information about the Rcpp-devel
mailing list