[Rcpp-devel] trying installing RcppCNPy with -std=c++11 (or c++0x) and failed due to incompatible number of arguments

Gong-Yi Liao gongyi.liao at gmail.com
Wed Feb 20 18:26:00 CET 2013


It seems that we have something to do with type detection, I put some 
console output code to see what type  of data are detected while being 
loaded.

In cnpy.h, I add:

===== cnpy.h ===============

+ #define RCPP_HAS_LONG_LONG_TYPES
#ifdef RCPP_HAS_LONG_LONG_TYPES
#include <cstdint>        // for std::int64_t, needs c++11 switch
#endif
============================

in cnpyMod.cpp: I sightly modified npyLoad function: (between line 61 to 71)

=== cnpyMod.cpp ===================

     if (shape.size() == 1) {
         if (type == "numeric") {
+           std::cout << "loading numeric (double) from .npy" << std::endl;
             double *p = reinterpret_cast<double*>(arr.data);
             ret = Rcpp::NumericVector(p, p + shape[0]);
#ifdef RCPP_HAS_LONG_LONG_TYPES
         } else if (type == "integer") {
+           std::cout << "loading int64 from .npy" << std::endl;
             int64_t *p = reinterpret_cast<int64_t*>(arr.data);
             ret = Rcpp::IntegerVector(p, p + shape[0]);
#endif
         } else {
             arr.destruct();
             Rf_error("Unsupported type in npyLoad");
         }
===================================

In python, I generated the data:

==== in IPython 0.13 ==============

In [3]: save('test.npy', poisson(100,10))

===================================

In R, loaded data and found:

===== In R 2.15.2 =================

R> library(RcppCNPy); npyLoad('test.npy');quit('yes')
Loading required package: Rcpp
loading numeric (double) from .npy
  [1] 5.088876152e-322 4.397184248e-322 5.632348363e-322 
6.027600879e-322 4.001931731e-322 4.841843329e-322 4.397184248e-322 
5.632348363e-322 4.347777683e-322
[10] 4.100744860e-322

=================================

It seems that problem is data type detection, could that be caused by R 
itself? I think Rcpp and RcppCNPy are constrained by R's limitation.

Gong.

On 02/20/2013 07:35 AM, Dirk Eddelbuettel wrote:
> Gong-Yi,
>
> On 19 February 2013 at 19:15, Dirk Eddelbuettel wrote:
> | I'll commit a fix in a bit.
>
> There is now a candidate package 0.2.0.1 at the R-Forge page (or in SVN)

>     https://r-forge.r-project.org/R/?group_id=155
>
> Could you test that against your integer data and report back?
>
> Thanks,  Dirk
>


-- 
Gong-Yi Liao
Department of Statistics
University of Connecticut



More information about the Rcpp-devel mailing list