=================================================================== RCS file: /home/cvs/OpenXM/src/R/r-packages/note.txt,v retrieving revision 1.3 retrieving revision 1.7 diff -u -p -r1.3 -r1.7 --- OpenXM/src/R/r-packages/note.txt 2015/03/24 07:49:06 1.3 +++ OpenXM/src/R/r-packages/note.txt 2016/10/28 02:27:39 1.7 @@ -1,4 +1,4 @@ -$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.6 2016/02/15 07:42:07 takayama Exp $ See also OpenXM/src/hgm/note.txt @@ -54,3 +54,39 @@ export(hgm.z.mleDemo) 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 +