Annotation of OpenXM/src/R/r-packages/note.txt, Revision 1.10
1.10 ! takayama 1: $OpenXM: OpenXM/src/R/r-packages/note.txt,v 1.9 2017/03/22 00:42:56 takayama Exp $
1.1 takayama 2:
3: See also OpenXM/src/hgm/note.txt
4:
1.10 ! takayama 5: * R package build, reference pages.
! 6: https://cran.r-project.org/bin/macosx/tools/
! 7: * Example
! 8: Edit files in src/hgm
! 9: cd R/r-packages
! 10: make rsync
! 11: R CMD INSTALL hgm
! 12: Start R and library(hgm)
! 13: hgm.ncso3()
! 14:
1.1 takayama 15: * C source codes.
16: C sources and headers should be developed and edited in the directory
17: OpenXM/src/hgm in order to provide a standalone mode without R
18: in the OpenXM project.
19: They are copied by rsync to hgm/src from OpenXM/src/hgm/
20: See the Makefile.
21:
22: * How to develope and tests.
23: (1) Develope the system in OpenXM/src/hgm as a standalone system.
24: See OpenXM/src/hgm/so3 as an example.
25: (2) Add rsync-[projectname] to OpenXM/src/R/r-packages/Makefile
26: See the example of the project so3.
27: (3) Example in the case of hgm.
28: R CMD check hgm
29: It generates pdf documents and shared libraries.
30: hgm.Rcheck/hgm-Ex.Rout contains the result of the execution of examples
31: embedded in the documents in man.
32: hgm.Rcheck/hgm-manual.pdf is the PDF manual.
33:
34: See also http://fe.math.kobe-u.ac.jp/Movies/oxvh,
35: 2012-09-05-r-package[.mov]
36: 2013-02-06-Ropenxm[.mov]
37:
38: R CMD INSTALL hgm
39: R
40: library(hgm)
1.9 takayama 41: You can check hgm.ncso3 by hand.
1.1 takayama 42: R CMD REMOVE hgm
43: It is used to remove the test library.
44:
45: R --help
1.2 takayama 46: (4) Binary build on Windows.
47: R CMD INSTALL --build hgm
48: ( Check R CMD INSTALL --help for details. )
49: or
50: R CMD build --binary hgm (perhaps, obsolete style)
1.1 takayama 51:
1.9 takayama 52: (5) make copy-web-hgm
53: hgm_x.yz.tar.gz
54: [cran submit package] search ==> http://cran.r-project.org/submit.html
55:
1.1 takayama 56: * Notes.
57: library.dynam() shows a list of shared libraries loaded.
58: dyn.load("hgm.so") can be used to load shared library by hand.
59: getwd() gets the current working directory.
60:
1.3 takayama 61:
62: * Undocumented functions which are removed temporary fro NAMESPACE. 2015.03.24
63: export(hgm.so3nc)
64: export(hgm.normalizingConstantOfFisherDistributionOnSO3)
65: export(hgm.normalizingConstantOfOrthant)
66: export(hgm.normalizingConstantOfBinghamDistribution)
67: export(hgm.z.mleDemo)
68: export(hgm.ssFB)
69:
1.1 takayama 70:
1.4 takayama 71: * Check the memory leak by valgrind and by AddressSanitizer. 2015.04.01
72: ** Valgrind
73: apt-get install valgrind
74:
75: cat >>~/.valgrindrc
76: --leak-check=full
77: --track-origins=yes
78: ctrl-D
79:
1.7 takayama 80: make clean
1.4 takayama 81: R CMD check hgm --use-valgrind
82: more hgm.Rcheck/hgm-Ex.Rout
83: Example of an error (Note that there is no error message in *.log)
84: ==14813== Conditional jump or move depends on uninitialised value(s)
85: ==14813== at 0xCA20170: mh_t (jack-n.c:1361)
86: for (i=0; i<=M_m; i++) {
87: -- snip
88: serror = myabs((partial_sum[i]-partial_sum[i-1])/partial_sum[i-1]);
89: }
90: partial_sum[-1] is accessed!
91:
92: As to details, search "valgrind" in R-exts.pdf
93:
94: * R CMD check hgm --use-gct
1.5 takayama 95:
96: * Note on building R package: @s/2015/04/05-hgm-r-package-memo.txt
97:
1.6 takayama 98: ;;
99: 2016.02.15 testdata.
100: c<-hgm.p2wishart(m=4,n1=50,n2=100,beta=c(1,2,4,8),q0=0.5,q=30,autoplot=1);
101: output is wrong.
102: 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))
103: output is correct.
104: 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)
105: crashed, but by commented out todo in mh.c, it works. See @s/2016/02
106:
1.8 takayama 107: ;;
108: http://kbroman.org/pkg_primer/pages/cran.html
109:
110: R CMD check hgm --as-cran
111:
112:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>