Hi, folks,

I just want to throw in another vote for Rcpp.  I recently rewrote some old 
code that used the legacy interface to use Rcpp, and life with Rcpp is *much* 
better.  The code is clean and easy to read (and write), and memory protection 
is taken care of.  I don't know if it will fix Pierre's specific problem, but 
if you try it, I suspect you'll like it.

Many thanks to Dirk, Romain, and all.

Cheers,

 - Gord


From: R-package-devel 
<r-package-devel-boun...@r-project.org<mailto:r-package-devel-boun...@r-project.org>>
 on behalf of "Roebuck,Paul L" 
<proeb...@mdanderson.org<mailto:proeb...@mdanderson.org>>
Date: Friday, 13 November 2015 20:24
To: "r-package-devel@r-project.org<mailto:r-package-devel@r-project.org>" 
<r-package-devel@r-project.org<mailto:r-package-devel@r-project.org>>
Subject: Re: [R-pkg-devel] Problem (with complex.h?) under Microsoft Windows

Too bad you couldn't just use C++ std::complex, but that's a no-go if your 
function needs C linkage.

<http://stackoverflow.com/questions/1063406/c99-complex-support-with-visual-studio>
suggests MS-specific topic, but answers explain more.

Have you looked at RCpp package?

________________________________________
From: R-package-devel 
[r-package-devel-boun...@r-project.org<mailto:r-package-devel-boun...@r-project.org>]
 on behalf of Pierre Lafaye de Micheaux 
[laf...@dms.umontreal.ca<mailto:laf...@dms.umontreal.ca>]
Sent: Friday, November 13, 2015 10:24 AM
To: r-package-devel@r-project.org<mailto:r-package-devel@r-project.org>
Subject: [R-pkg-devel] Problem (with complex.h?) under Microsoft Windows

I created a new version of the package IndependenceTests where I call
some C and Fortran functions (using the .C() or .Fortran() interface).
It works perfectly under Linux, with gcc. No problem with R CMD check. I
would like to upload this package on the CRAN.

But when I first tried to use winbuilder, I got an error with the
following message:

* installing *source* package 'IndependenceTests' ...
** libs

*** arch - i386
g++  -I"D:/RCompile/recent/R/include" -DNDEBUG
-I"d:/RCompile/r-compiling/local/local320/include"     -O2 -Wall
-mtune=core2 -c Cnhat.cpp -o Cnhat.o
Cnhat.cpp:9:89: error: 'complex' has not been declared
Cnhat.cpp:9:105: error: two or more data types in declaration of 'res'
....
.....
etc.


I think I understand that there is a problem (only under Windows though)
with the complex type.
The beginning of my file Cnhat.cpp is as follows:

1. #include <R.h>
2. #include "Rmath.h"
3. #include <complex.h>
4. #include <iostream>
5. using namespace std;
6.
7. extern"C" {
8.
9.   void CnhatC(double *vecs, double *vect, double *X, int *n, int *q,
int *p, int *vecd, complex double *res) {
10.
11.    void phinhatReturn(double *vect1, double *vect2, double *vect3,
double *X, int *q, int *n, double _Complex *res1, double _Complex *res2,
double _Complex *res3);
12.    double _Complex tmp2, prod1 = 1.0 + 0.0*_Complex_I, prod2 = 1.0 +
0.0*_Complex_I, somme = 0.0 + 0.0*_Complex_I;
13.    int indbeginblocl, l, i, *vecdl, k, j;
14.    double *vecsl, *mvectl, *diffvecsvectl, *Xl;
15.    double _Complex *res1, *res2, *res3;
16.    vecdl = new int[1];
17.    res1 =  new _Complex double[1];
....
.....
etc.

As you can see, there seem to be some problem (on line 9.) with: complex
double *res

Could you please point me to something (e.g., another package) that
might help me solve the problem? If possible, I would like to avoid
invest too much time using the new .Call() interface because I am quite
familiar
with the old .C(). And also I am not even sure if it would help solving
the problem.

Best regards,

Pierre L.

--
Pierre Lafaye de Micheaux

Adresse courrier:
Universit� de Montr�al
Pavillon Andr�-Aisenstadt
D�partement de Math�matiques et Statistique
CP 6128 Succursale Centre-ville
Montr�al Qc H3C 3J7
CANADA

Adresse physique:
D�partement de Math�matiques et Statistique
Bureau 4249, Pavillon Andr�-Aisenstadt
2920, chemin de la Tour
Montr�al, Qu�bec H3T 1J4
CANADA

T�l.: (00-1) 514-343-6607 / Fax: (00-1) 514-343-5700
laf...@dms.umontreal.ca<mailto:laf...@dms.umontreal.ca>
http://www.biostatisticien.eu


        [[alternative HTML version deleted]]

______________________________________________
R-package-devel@r-project.org<mailto:R-package-devel@r-project.org> mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel
The information contained in this e-mail message may be privileged, 
confidential, and/or protected from disclosure. This e-mail message may contain 
protected health information (PHI); dissemination of PHI should comply with 
applicable federal and state laws. If you are not the intended recipient, or an 
authorized representative of the intended recipient, any further review, 
disclosure, use, dissemination, distribution, or copying of this message or any 
attachment (or the information contained therein) is strictly prohibited. If 
you think that you have received this e-mail message in error, please notify 
the sender by return e-mail and delete all references to it and its contents 
from your systems.

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


        [[alternative HTML version deleted]]

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

Reply via email to