version 1.3, 2015/03/24 07:49:06 |
version 1.12, 2022/04/06 01:03:42 |
|
|
$OpenXM: OpenXM/src/R/r-packages/note.txt,v 1.2 2013/02/09 02:58:14 takayama Exp $ |
$OpenXM: OpenXM/src/R/r-packages/note.txt,v 1.11 2020/02/06 05:58:17 takayama Exp $ |
|
|
See also OpenXM/src/hgm/note.txt |
See also OpenXM/src/hgm/note.txt |
|
|
|
* R package build, reference pages. |
|
https://cran.r-project.org/bin/macosx/tools/ |
|
* Example |
|
Edit files in src/hgm |
|
cd R/r-packages |
|
make rsync |
|
R CMD INSTALL hgm |
|
Start R and library(hgm) |
|
hgm.ncso3() |
|
|
|
??hgm |
|
?hgm.ncorthant |
|
|
|
remove.packages('hgm') |
|
|
* C source codes. |
* C source codes. |
C sources and headers should be developed and edited in the directory |
C sources and headers should be developed and edited in the directory |
OpenXM/src/hgm in order to provide a standalone mode without R |
OpenXM/src/hgm in order to provide a standalone mode without R |
Line 28 See also OpenXM/src/hgm/note.txt |
|
Line 43 See also OpenXM/src/hgm/note.txt |
|
R CMD INSTALL hgm |
R CMD INSTALL hgm |
R |
R |
library(hgm) |
library(hgm) |
You can check hgm.so3nc by hand. |
You can check hgm.ncso3 by hand. |
R CMD REMOVE hgm |
R CMD REMOVE hgm |
It is used to remove the test library. |
It is used to remove the test library. |
|
|
Line 39 See also OpenXM/src/hgm/note.txt |
|
Line 54 See also OpenXM/src/hgm/note.txt |
|
or |
or |
R CMD build --binary hgm (perhaps, obsolete style) |
R CMD build --binary hgm (perhaps, obsolete style) |
|
|
|
(5) make copy-web-hgm |
|
hgm_x.yz.tar.gz |
|
[cran submit package] search ==> http://cran.r-project.org/submit.html |
|
|
* Notes. |
* Notes. |
library.dynam() shows a list of shared libraries loaded. |
library.dynam() shows a list of shared libraries loaded. |
dyn.load("hgm.so") can be used to load shared library by hand. |
dyn.load("hgm.so") can be used to load shared library by hand. |
Line 54 export(hgm.z.mleDemo) |
|
Line 73 export(hgm.z.mleDemo) |
|
export(hgm.ssFB) |
export(hgm.ssFB) |
|
|
|
|
|
* Check the memory leak by valgrind and by AddressSanitizer. 2015.04.01 |
|
** Valgrind |
|
apt-get install valgrind |
|
|
|
cat >>~/.valgrindrc |
|
--leak-check=full |
|
--track-origins=yes |
|
ctrl-D |
|
|
|
make clean |
|
R CMD check hgm --use-valgrind |
|
more hgm.Rcheck/hgm-Ex.Rout |
|
Example of an error (Note that there is no error message in *.log) |
|
==14813== Conditional jump or move depends on uninitialised value(s) |
|
==14813== at 0xCA20170: mh_t (jack-n.c:1361) |
|
for (i=0; i<=M_m; i++) { |
|
-- snip |
|
serror = myabs((partial_sum[i]-partial_sum[i-1])/partial_sum[i-1]); |
|
} |
|
partial_sum[-1] is accessed! |
|
|
|
As to details, search "valgrind" in R-exts.pdf |
|
|
|
* R CMD check hgm --use-gct |
|
|
|
* Note on building R package: @s/2015/04/05-hgm-r-package-memo.txt |
|
|
|
;; |
|
2016.02.15 testdata. |
|
c<-hgm.p2wishart(m=4,n1=50,n2=100,beta=c(1,2,4,8),q0=0.5,q=30,autoplot=1); |
|
output is wrong. |
|
c<-hgm.p2wishart(m=4,n1=50,n2=100,beta=c(1,2,4,8),q0=0.5,q=30,err=c(1e-30,1e-10),mode=c(1,1,0)) |
|
output is correct. |
|
c<-hgm.p2wishart(m=4,n1=50,n2=100,beta=c(1,2,4,8),q0=0.5,q=30,err=c(1e-30,1e-10),autoplot=1) |
|
crashed, but by commented out todo in mh.c, it works. See @s/2016/02 |
|
|
|
;; |
|
http://kbroman.org/pkg_primer/pages/cran.html |
|
|
|
R CMD check hgm --as-cran |
|
|
|
|
|
;; |
|
2020.02.06 Installing r-devel |
|
apt-get install subversion ccache |
|
apt-get install xorg-dev |
|
apt-get install libcurl4-openssl-dev |
|
apt install libpcre2-dev (2022.04.06 this22/R orange3m) |
|
pushd ~/this19/R (for example) |
|
svn co https://svn.r-project.org/R/trunk r-devel/R |
|
cd r-devel/R and follow the INSTALL |
|
./configure --without-recommended-packages --prefix ~/this19/R |
|
make |
|
export PATH=~/this19/R/r-devel/R/bin:$PATH |
|
|
|
|
|
Valgrid can be used by |
|
valgrind ./a.out |
|
A sample: main() { int n; if (n>0) n=0; } |
|
|