About me | pbdR Tech | HPSC | Phyloclustering | R_note |

 R_note -- The Exploration of Statistical Software R (統計軟體 R 深度歷險)
 About R_note Reference MS Windows Batch jobs Function Data/MySQL Plot String/Parse Remark Lines Classes/S3 S4 Methods Batch more Environment Good Coding Fast Loop LAM/MPI/Rmpi Recursion PHP Call R Basic C R Call Fortran/C R Call GSL C Call R API C Call R Objects Standalone Make Packages C Pointer Debug Section: C Pointer Prolog Dr. Ranjan Maitra and Dr. Volodymyr Melnykov developed a lot of C functions handling high dimensional data set, using EM Algorithm to find the classifications by Model-Based Clustering, and other related interesting studies requiring high performance computing. They also accomplish their achievements with R packages. Pointer arrays are heavily used in the researchs, but skipped cleverly by some macros in C ... Dr. Maitra is a professor in Department of Statisitcs, Iowa State University, Ames, Iowa, USA, and his student, Dr. Melnykov, is a professor in Department of Statisitcs, North Dakota State University, Fargo, North Dakota, USA. Story This is an example for demonstrate C pointer arrays by an R package, and all the functions can be wrappers for other C functions. There are three main C functions to receive data (pointer) from R, and assign data into an array, a double pointer array, and a 3D pointer array by different ways including: directly making a copy, and assigning pointer arrays to the addresses of R's objects. R and C use different arrange methods to assign "array", so it should be manipulated carefully when they are communicating with each other. These techniques are useful when we are analyzing high dimensional data set. Basic Ideas R use "first index goes first". C use "last index goes first". For 2D, make a transpose for data in R and pass to C with reversed order of dimension. For 3D, make a permuation for data in R and pass to C with reversed order of dimension. Code You can download the package Linux: "CPointer.tar.gz" Windows: "CPointer.zip" 3 main C functions are provided test_1d(), test_2d(), and test_3d() in src/. 2 tool C functions in "src/R_tools.c" for allocating pointer arrays. 3 R functions test.1d(), test.2d(), and test.3d() in "R/". .C() is used in R, but the issues are all the same for .Call() or .External().
 [ Go to top ]

 Maintained: Wei-Chen Chen E-Mail: wccsnow @ gmail.com Last Revised: Dec 12 2016, 09:44 (CST Taipei, Taiwan) Created: Oct 06 2003 Best Resolution IE6.0 1280x1024 small font