nloptr
NLopt
Web: https://nlopt.readthedocs.io/en/latest/ (GitHub)
This relates to pre-installation of NLopt
though should be applicable to R/nloptr
itself.
We download the latest NLopt according to https://nlopt.readthedocs.io/en/latest/, notably
wget -qO- https://github.com/stevengj/nlopt/archive/v2.7.1.tar.gz | \
tar xvfz -
cd nlopt-2.7.1/
cmake -DCMAKE_INSTALL_PREFIX=${HPC_WORK} .
make
make install
Additional options are available from its homepage.
R/nloptr
Within R, we have seen error messages from install.packages("nloptr")
,
test-C-API.cpp:108:35: error: call of overloaded 'abs(__gnu_cxx::__alloc_traits<std::allocator<double> >::value_type)' is ambiguous
expect_true(abs(res[1] - 8./27) < 1.0e-4);
so we manually proceed with
Rscript -e 'download.packages("nloptr",".")'
tar xfz nloptr_2.0.0.tar.gz
cd nloptr
confiugre
We then do several things,
- rename
configure
to beconfigure.save
. - modify
src/Makevars
to point to -L${HPC_WORK}/lib64 to enable-lnlopt
, so it becomesCXX_STD = CXX11 PKG_CPPFLAGS = -I../inst/include -I/rds/user/jhz22/hpc-work/include PKG_LIBS = $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) -L/rds/user/jhz22/hpc-work/lib64 -lnlopt
- change
src/test-C-API.cpp
such thatabs()
there turns intofabs()
.
We now can furnish the installation with
R CMD INSTALL nloptr
R/nloptr 2.0.4
It proceeds smoothly as follows,
module load ceuadmin/NLopt/2.7.1
Rscript -e 'remotes::install_github("astamm/nloptr")'