| version 1.3, 2015/03/24 07:49:06 |
version 1.13, 2022/04/07 00:56:44 |
|
|
| $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.12 2022/04/06 01:03:42 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 |
| |
--> export PATH=~/this22/R/r-devel/R/bin:$PATH on orange3m (2022.04.06) |
| |
|
| |
|
| |
Valgrid can be used by |
| |
valgrind ./a.out |
| |
A sample: main() { int n; if (n>0) n=0; } |
| |
|