Dear all,

the simple code in below, when send to the
win-builder returns the following (and no other)
warning:


* checking compiled code ... WARNING
File 'quicky/libs/i386/quicky.dll':
  Found '_ZSt4cerr', possibly from 'std::cerr' (C++)
    Object: 'quicky.o'
  Found 'abort', possibly from 'abort' (C), 'runtime' (Fortran)
    Object: 'quicky.o'
File 'quicky/libs/x64/quicky.dll':
  Found '_ZSt4cerr', possibly from 'std::cerr' (C++)
    Object: 'quicky.o'
  Found 'abort', possibly from 'abort' (C), 'runtime' (Fortran)
    Object: 'quicky.o'

Compiled code should not call entry points which might terminate R nor
write to stdout/stderr instead of to the console, nor the C RNG.

See 'Writing portable packages' in the 'Writing R Extensions' manual.


Here is the source:

#include <algorithm>
#include <cstdlib>
#include <ctime>
#include <functional>
#include <fstream>
#include <iostream>
#include <math.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <sstream>
#include <vector>
#include <random>

#include <boost/math/distributions/normal.hpp>
#include <boost/math/distributions/chi_squared.hpp>

#include <Eigen/Dense>

using namespace std;
using namespace Eigen;
using Eigen::MatrixXd;
using Eigen::VectorXd;
using Eigen::VectorXi;
using Eigen::RowVectorXd;


using boost::math::chi_squared;
using boost::math::quantile;
using boost::math::complement;
using boost::math::normal_distribution;
using namespace boost::math::policies;

typedef policy<
      promote_double<true>
      > my_policy_norm;
typedef policy<
      promote_double<true>
      > my_policy_chi2;

typedef boost::math::normal_distribution<double,my_policy_norm> my_norm;
typedef boost::math::chi_squared_distribution<double,my_policy_chi2> my_chi2;


VectorXd GetQs(const VectorXd& x){
    const int n=x.size();
    double mytol=1e-8;
    double the_max=x.maxCoeff();
    double the_min=x.minCoeff();
    double the_rag=(the_max-the_min);
    if(the_rag<mytol)    return(x);
    if(1.0-the_max<mytol)    return(x);
    if(the_min<mytol)    return(x);
    VectorXd y=x.array();
for(int i=0;i<n;i++) y(i)=sqrt(quantile(complement(my_chi2(1.0),x(i))));
    return(y);
}
extern "C"{
    void quicky(int* rn,double* xi,double* yi){
        const int n=*rn;
        VectorXd x=Map<VectorXd>(xi,n);
        Map<VectorXd>(yi,n)=GetQs(x);
    }
}


So I guess, I should fill a bug report with the
BH maintainer?

Best regards,


On 2014-11-04 23:52, Dirk Eddelbuettel wrote:
Gentlemen,

On 4 November 2014 at 23:36, kaveh wrote:
| Dear Hadley,
|
| Thank you for this information, maybe the CRAN gods
| will look favourably on this case too,

You seemed to have missed a point my earlier email tried to stress: Inclusion
of BH does not lead to the warning.

All this depends on WHICH headers are included, and the OP will need to sort
this out by modifying his code.

Dirk
| Best regards,
|
| On 2014-11-04 23:32, Hadley Wickham wrote:
| >>> | However, it seems some of the codes in the BH package
| >>> | might. At any rate, when I include some boost headers such as
| >>> | boost/math/distributions/ through BH, I get the following warnings
| >>> |   when  submitting to the win-builder page:
| >>> |
| >>> |
| >>> |    Found '_ZSt4cerr', possibly from 'std::cerr' (C++)
| >>> |
| >>> |    Found 'abort', possibly from 'abort' (C), 'runtime' (Fortran)
| >>> |
| >>> |    Found '_ZSt4cerr', possibly from 'std::cerr' (C++)
| >>> |
| >>> |    Found 'abort', possibly from 'abort' (C), 'runtime' (Fortran)
| >> You’re kind of out of luck. These functions are both:
| >>   - used by the boost headers
| >>   - forbidden by R, well at least forbidden by CRAN
| > Maaaaybe - I had this note in RSQLite, and CRAN seemed ok with my 
explanation:
| >
| > * checking compiled code ... NOTE
| >    File 
‘/Users/hadley/Documents/databases/RSQLite.Rcheck/RSQLite/libs/RSQLite.so’:
| >      Found ‘___stderrp’, possibly from ‘stderr’ (C)
| >        Object: ‘sqlite-all.o’
| >
| >    This is in C code from the embedded SQLite database.
| >
| >
| > Hadley
| >
|


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

Reply via email to