Advertisement
Guest User

Untitled

a guest
Oct 24th, 2014
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.78 KB | None | 0 0
  1. #include < Rcpp.h >
  2. #include < RcppEigen.h >
  3. #include <Eigen/Dense>
  4. #include <iostream>
  5. #include <string>
  6. using Eigen::MatrixXd;
  7. using namespace std;
  8. using namespace Rcpp;
  9. using namespace RcppEigen;
  10. using namespace Eigen;
  11.  
  12. RcppExport SEXP MatOp(SEXP Xr, SEXP Yr, SEXP Kr)
  13. {
  14. MatrixXd X = RcppEigen::as<MatrixXd>(Xr);
  15. MatrixXd Y = RcppEigen::as<MatrixXd>(Yr);
  16. string K = Rcpp::as<string>(Kr);
  17.  
  18. int n=X.rows();
  19. int p=X.cols();
  20. int nY=Y.cols();
  21. MatrixXd I(n,n);
  22. I.setIdentity(n,n);
  23. double SSE=(Y.transpose()*(I-X*(X.transpose()*X).inverse()*X.transpose())*Y).determinant();
  24.  
  25. if(Criteria=="k1")
  26. return (wrap(n*log(SSE/n)+log(n)*p));
  27. if(Criteria=="k2")
  28. return (wrap(n*log(SSE/n)+(2*p*nY*n+nY*(nY+1))/n-2/n+n+2));
  29. }
  30.  
  31. CRT_R <- function(Xr,Yr,criteriar) {
  32. .Call('CRTRCppEigen',Xr,Yr,criteriar,PACKAGE = 'CRTRCppEigen')
  33. }
  34.  
  35. Rcmd INSTALL --build CRTRCppEigen
  36.  
  37. PAUSE
  38.  
  39. Rcmd build CRTRCppEigen
  40.  
  41. pause
  42.  
  43. Rcmd INSTALL CRTRCppEigen
  44.  
  45. PAUSE
  46.  
  47. Rcmd check CRTRCppEigen
  48.  
  49. PAUSE
  50.  
  51. C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;c:Program Files (x86)Hewlett-PackardHP ProtectTools Security ManagerBin;c:Program FilesIntelDMIX;C:Program Files (x86)IntelServicesIPT;C:Program FilesSASHomeSecure;C:Program FilesSASHomex86Secure;C:OptMiKTeX2.9miktexbinx64;C:OptMiKTeX2.9miktexbinx64;C:Rtoolsbin;C:Rtoolsgcc-4.6.3bin;C:RR-3.1.1binx64;C:RR-3.1.1bini386;
  52.  
  53. * installing *source* package 'CRTRCppEigen' ...
  54. ** libs
  55.  
  56. *** arch - i386
  57. cygwin warning:
  58. MS-DOS style path detected: C:/R/R-31~1.1/etc/i386/Makeconf
  59. Preferred POSIX equivalent is: /cygdrive/c/R/R-31~1.1/etc/i386/Makeconf
  60. CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  61. Consult the user's guide for more details about POSIX paths:
  62. http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
  63. g++ -m32 -I"C:/R/R-31~1.1/include" -DNDEBUG -I"C:/Users/LJH/Documents/R/win-library/3.1/Rcpp/include" -I"C:/Users/LJH/Documents/R/win-library/3.1/RcppEigen/include" -I"d:/RCompile/CRANpkg/extralibs64/local/include" -O2 -Wall -mtune=core2 -c CRTRCppEigen.cpp -o CRTRCppEigen.o
  64. CRTRCppEigen.cpp:3:20: fatal error: Rcpp.h : No such file or directory
  65. compilation terminated.
  66. make: *** [CRTRCppEigen.o] Error 1
  67. Warning: running command 'make -f "Makevars.win" -f "C:/R/R-31~1.1/etc/i386/Makeconf" -f "C:/R/R-31~1.1/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="CRTRCppEigen.dll" OBJECTS="CRTRCppEigen.o RcppExports.o rcppeigen_hello_world.o"' had status 2
  68. cygwin warning:
  69. MS-DOS style path detected: C:/R/R-31~1.1/etc/i386/Makeconf
  70. Preferred POSIX equivalent is: /cygdrive/c/R/R-31~1.1/etc/i386/Makeconf
  71. CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  72. Consult the user's guide for more details about POSIX paths:
  73. http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
  74. g++ -m32 -I"C:/R/R-31~1.1/include" -DNDEBUG -I"C:/Users/LJH/Documents/R/win-library/3.1/Rcpp/include" -I"C:/Users/LJH/Documents/R/win-library/3.1/RcppEigen/include" -I"d:/RCompile/CRANpkg/extralibs64/local/include" -O2 -Wall -mtune=core2 -c CRTRCppEigen.cpp -o CRTRCppEigen.o
  75. CRTRCppEigen.cpp:3:20: fatal error: Rcpp.h : No such file or directory
  76. compilation terminated.
  77. make: *** [CRTRCppEigen.o] Error 1
  78. Warning: running command 'make -f "Makevars.win" -f "C:/R/R-31~1.1/etc/i386/Makeconf" -f "C:/R/R-31~1.1/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="CRTRCppEigen.dll" OBJECTS="CRTRCppEigen.o RcppExports.o rcppeigen_hello_world.o" symbols.rds' had status 2
  79. ERROR: compilation failed for package 'CRTRCppEigen'
  80. * removing 'C:/Users/LJH/Documents/CRTRCppEigen.Rcheck/CRTRCppEigen'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement