Re: [R] Using functions in LAPACK in a C program

2007-03-30 Thread Prof Brian Ripley
I think all these points are answered in the README.packages for R 2.5.0 
alpha (and probably for 2.4.1 too).


You can use pexports to create Rlapack.exp, for example.

On Fri, 30 Mar 2007, [EMAIL PROTECTED] wrote:

Many thanks to Brian for his very useful information and help. A quick 
look at mgcv package already gives me some directions to try. I remember 
that I tried to use Rlapack.dll instead of R.dll without success, 
perhaps because I don't know how to build an import library for 
Rlapack.dll and link against it (README.packages shows how to do this 
for R.dll using R.exp, but I could not find Rlapack.exp). I will try to 
see if I can figure out this part using VC++6.0.


Yes, I am still using R-2.2.1. I did try to upgrade it to R-2.4.1. 
However, the newer versions cause some troubles for my C programs. They 
produce error messages when my DLL are loaded into R. The problem 
relates to function calls such as isfinite. I haven't figured out why my 
C programs have this problem with newer versions of R but not with 
version 2.2.1. I remember there was a post on this issue in this list, 
but I did not see any solution. I hope to find a clue about it too so 
that I can keep the pace of R development.






Paul.








- Original Message -


From: Prof Brian Ripley <[EMAIL PROTECTED]>


Date: Friday, March 30, 2007 1:56 am


Subject: Re: [R] Using functions in LAPACK in a C program


To: Paul August <[EMAIL PROTECTED]>


Cc: r-help@stat.math.ethz.ch






On Thu, 29 Mar 2007, Paul August wrote:









Hi,









I wonder where I can find an example of using a function in




LAPACK




library in a user's own C code.









In about 20 R packages, e.g. the recommended package mgcv.









I wrote a C program which will be




compiled and linked to produce a DLL file and then loaded into




R. I hope




to use a function from LAPACK library, for example, dgesdd, in




the




program. Following R manual, I call the function by




F77_CALL(dgesdd) in




the program. The program can be compiled without problems.




However, when




it is linked to produce a DLL file, I get an error message









  Test.obj : error LNK2001: unresolved external symbol _dgesdd_




  Test.dll : fatal error LNK1120: 1 unresolved externals









I use VC++6.0 and the command of linking is something like this









  link.exe Rdll.lib /nologo /dll /out:Test.dll




/libpath:C:\R\R-2.2.1\src\gnuwin32 Test.obj









Apparently, the linker cannot resolve dgesdd from Rdll.lib. If




anyone




knows what I missed here or any example that shows how this




can be done




properly, please let me know. Thanks a lot.









It is in Rlapack.dll not R.dll.









The linking information is in 'Writing R Extensions' for those




using the




recommended compilation system (search for LAPACK_LIBS).









You will need to build an import library for Rlapack.dll and




link against




that.









And BTW you seem to be using R 2.2.1: please update as we can




only offer




accurate advice on recent systems.









--




Brian D.




Ripley,  [EMAIL PROTECTED]




Professor of Applied Statistics, 




http://www.stats.ox.ac.uk/~ripley/University of




Oxford, Tel:  +44 1865 272861 (self)




1 South Parks




Road, +44 1865 272866 (PA)




Oxford OX1 3TG,




UK    Fax:  +44 1865 272595









__




R-help@stat.math.ethz.ch mailing list




https://stat.ethz.ch/mailman/listinfo/r-help




PLEASE do read the posting guide http://www.R-




project.org/posting-guide.html




and provide commented, minimal, self-contained, reproducible code.







---
Dr. Paul Y. Peng
Associate Professor of Biostatistics
Department of Community Health and Epidemiology
  and Department of Mathematics and Statistics
Queen's University, Kingston, ON, K7L 3N6

Phone: 613-533-6000 Ext 78525
Email: [EMAIL PROTECTED]
Fax: 613-533-6794
---

[[alternative HTML version deleted]]




--
Brian D. Ripley,  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel:  +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UKFax:  +44 1865 272595__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Using functions in LAPACK in a C program

2007-03-30 Thread pengp
Many thanks to Brian for his very useful information and help. A quick look at 
mgcv package already gives me some directions to try. I remember that I tried 
to use Rlapack.dll instead of R.dll without success, perhaps because I don't 
know how to build an import library for Rlapack.dll and link against it 
(README.packages shows how to do this for R.dll using R.exp, but I could not 
find Rlapack.exp). I will try to see if I can figure out this part using 
VC++6.0.





Yes, I am still using R-2.2.1. I did try to upgrade it to R-2.4.1. However, the 
newer versions cause some troubles for my C programs. They produce error 
messages when my DLL are loaded into R. The problem relates to function calls 
such as isfinite. I haven't figured out why my C programs have this problem 
with newer versions of R but not with version 2.2.1. I remember there was a 
post on this issue in this list, but I did not see any solution. I hope to find 
a clue about it too so that I can keep the pace of R development.





Paul.








- Original Message -


From: Prof Brian Ripley <[EMAIL PROTECTED]>


Date: Friday, March 30, 2007 1:56 am


Subject: Re: [R] Using functions in LAPACK in a C program


To: Paul August <[EMAIL PROTECTED]>


Cc: r-help@stat.math.ethz.ch





> On Thu, 29 Mar 2007, Paul August wrote:


> 


> > Hi,


> >


> > I wonder where I can find an example of using a function in 


> LAPACK 


> > library in a user's own C code.


> 


> In about 20 R packages, e.g. the recommended package mgcv.


> 


> > I wrote a C program which will be 


> > compiled and linked to produce a DLL file and then loaded into 


> R. I hope 


> > to use a function from LAPACK library, for example, dgesdd, in 


> the 


> > program. Following R manual, I call the function by 


> F77_CALL(dgesdd) in 


> > the program. The program can be compiled without problems. 


> However, when 


> > it is linked to produce a DLL file, I get an error message


> >


> >  Test.obj : error LNK2001: unresolved external symbol _dgesdd_


> >  Test.dll : fatal error LNK1120: 1 unresolved externals


> >


> > I use VC++6.0 and the command of linking is something like this


> >


> >  link.exe Rdll.lib /nologo /dll /out:Test.dll 


> /libpath:C:\R\R-2.2.1\src\gnuwin32 Test.obj


> >


> > Apparently, the linker cannot resolve dgesdd from Rdll.lib. If 


> anyone 


> > knows what I missed here or any example that shows how this 


> can be done 


> > properly, please let me know. Thanks a lot.


> 


> It is in Rlapack.dll not R.dll.


> 


> The linking information is in 'Writing R Extensions' for those 


> using the 


> recommended compilation system (search for LAPACK_LIBS).


> 


> You will need to build an import library for Rlapack.dll and 


> link against 


> that.


> 


> And BTW you seem to be using R 2.2.1: please update as we can 


> only offer 


> accurate advice on recent systems.


> 


> -- 


> Brian D. 


> Ripley,  [EMAIL PROTECTED]


> Professor of Applied Statistics,  


> http://www.stats.ox.ac.uk/~ripley/University of 


> Oxford, Tel:  +44 1865 272861 (self)


> 1 South Parks 


> Road, +44 1865 272866 (PA)


> Oxford OX1 3TG, 


> UK    Fax:  +44 1865 272595


> 


> __


> R-help@stat.math.ethz.ch mailing list


> https://stat.ethz.ch/mailman/listinfo/r-help


> PLEASE do read the posting guide http://www.R-


> project.org/posting-guide.html


> and provide commented, minimal, self-contained, reproducible code.


> 

---
Dr. Paul Y. Peng
Associate Professor of Biostatistics
Department of Community Health and Epidemiology
   and Department of Mathematics and Statistics
Queen's University, Kingston, ON, K7L 3N6

Phone: 613-533-6000 Ext 78525
Email: [EMAIL PROTECTED]
Fax: 613-533-6794
---

[[alternative HTML version deleted]]

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


Re: [R] Using functions in LAPACK in a C program

2007-03-29 Thread Prof Brian Ripley
On Thu, 29 Mar 2007, Paul August wrote:

> Hi,
>
> I wonder where I can find an example of using a function in LAPACK 
> library in a user's own C code.

In about 20 R packages, e.g. the recommended package mgcv.

> I wrote a C program which will be 
> compiled and linked to produce a DLL file and then loaded into R. I hope 
> to use a function from LAPACK library, for example, dgesdd, in the 
> program. Following R manual, I call the function by F77_CALL(dgesdd) in 
> the program. The program can be compiled without problems. However, when 
> it is linked to produce a DLL file, I get an error message
>
>  Test.obj : error LNK2001: unresolved external symbol _dgesdd_
>  Test.dll : fatal error LNK1120: 1 unresolved externals
>
> I use VC++6.0 and the command of linking is something like this
>
>  link.exe Rdll.lib /nologo /dll /out:Test.dll 
> /libpath:C:\R\R-2.2.1\src\gnuwin32 Test.obj
>
> Apparently, the linker cannot resolve dgesdd from Rdll.lib. If anyone 
> knows what I missed here or any example that shows how this can be done 
> properly, please let me know. Thanks a lot.

It is in Rlapack.dll not R.dll.

The linking information is in 'Writing R Extensions' for those using the 
recommended compilation system (search for LAPACK_LIBS).

You will need to build an import library for Rlapack.dll and link against 
that.

And BTW you seem to be using R 2.2.1: please update as we can only offer 
accurate advice on recent systems.

-- 
Brian D. Ripley,  [EMAIL PROTECTED]
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel:  +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UKFax:  +44 1865 272595

__
R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.