Christophe Dutang1 wrote:
Hi,
I'm currently R porting SF Mersenne Twister algorithm of Matsumoto and
Saito. To get the full power of their code, I want to use their fonction
fill_array32 which need aligned memory. That is to say I need to use the
C function memalign on windows, posix_memalign on linux and classic
malloc on Mac OS. In 'writing R extenstion', they recommand to use
R_alloc function to allocate memory in C.
Does R_alloc return a pointer to aligned memory?
if not how can I do this?
probably no, because R crashes when I succesively R_alloc and
fill_array32 (cf below) on my macbook with R 2.7.1.
You can still do this. Just take the address returned from R_alloc and
test for alignment. If it's not, then just use an aligned address beyond
the one returned.
(But then the question is, which direction beyond the one returned? How
does one test for that?)
Jeff
Thanks in advance
Kind regards
Christophe
PS :
http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/howto-compile.html provides
an example of memalign.
PPS : mac os report
Thread 0 Crashed:
0 libSystem.B.dylib 0x9341bb9e __kill + 10
1 libSystem.B.dylib 0x93492ec2 raise + 26
2 libSystem.B.dylib 0x934a247f abort + 73
3 randtoolbox.so 0x15e65f1d 0x15e5d000 + 36637
4 randtoolbox.so 0x15e614ef fill_array32 + 4038
5 randtoolbox.so 0x15e6513d SFmersennetwister + 335
6 randtoolbox.so 0x15e652c6 doSFMersenneTwister + 255
7 libR.dylib 0x00367a52 do_dotcall + 1394
8 libR.dylib 0x0038b5a2 Rf_eval + 1754
9 libR.dylib 0x0038f9a2 do_set + 592
10 libR.dylib 0x0038b366 Rf_eval + 1182
11 libR.dylib 0x0038b366 Rf_eval + 1182
12 libR.dylib 0x0038c140 do_begin + 58
13 libR.dylib 0x0038b366 Rf_eval + 1182
14 libR.dylib 0x0038b366 Rf_eval + 1182
15 libR.dylib 0x0038c140 do_begin + 58
16 libR.dylib 0x0038b366 Rf_eval + 1182
17 libR.dylib 0x0038d9a6 Rf_applyClosure + 663
18 libR.dylib 0x0038b25d Rf_eval + 917
19 org.R-project.R 0x000189c3 run_REngineRmainloop +
569 (Rinit.m:442)
20 org.R-project.R 0x0001142a -[REngine runREPL] +
260 (REngine.m:181)
21 org.R-project.R 0x00002e91 main + 795 (main.m:126)
22 org.R-project.R 0x00002b5a _start + 216
23 org.R-project.R 0x00002a81 start + 41
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide
http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
--
http://biostat.mc.vanderbilt.edu/JeffreyHorner
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.