[Yuima-commits] r661 - in pkg/yuima: . R src

noreply at r-forge.r-project.org noreply at r-forge.r-project.org
Sun Jun 24 20:15:39 CEST 2018


Author: lorenzo
Date: 2018-06-24 20:15:38 +0200 (Sun, 24 Jun 2018)
New Revision: 661

Added:
   pkg/yuima/src/IntensityEval.cpp
Modified:
   pkg/yuima/DESCRIPTION
   pkg/yuima/R/AuxMethodforPPR.R
   pkg/yuima/R/lambdaPPR.R
   pkg/yuima/src/yuima_init.c
Log:
Evaluation of Intensity in Rcpp 

Modified: pkg/yuima/DESCRIPTION
===================================================================
--- pkg/yuima/DESCRIPTION	2018-06-20 18:22:32 UTC (rev 660)
+++ pkg/yuima/DESCRIPTION	2018-06-24 18:15:38 UTC (rev 661)
@@ -1,7 +1,7 @@
 Package: yuima
 Type: Package
 Title: The YUIMA Project Package for SDEs
-Version: 1.8.4
+Version: 1.8.5
 Depends: R(>= 2.10.0), methods, zoo, stats4, utils, expm, cubature, mvtnorm
 Imports: Rcpp (>= 0.12.1), boot (>= 1.3-2)
 Author: YUIMA Project Team

Modified: pkg/yuima/R/AuxMethodforPPR.R
===================================================================
--- pkg/yuima/R/AuxMethodforPPR.R	2018-06-20 18:22:32 UTC (rev 660)
+++ pkg/yuima/R/AuxMethodforPPR.R	2018-06-24 18:15:38 UTC (rev 661)
@@ -62,7 +62,7 @@
   
   #+sum((param-oldpar)^2*param^2)/2
   # line 40 necessary for the development of the cod
-  cat("\n ",logLik, param)
+  #cat("\n ",logLik, param)
   
   #assign("oldpar",param,envir = my.envd1)
   
@@ -325,6 +325,7 @@
                  my.envd1=my.envd1,my.envd2=my.envd2,my.envd3=my.envd3,
                  method = method, ...)
   }
+  
    Hessian <- tryCatch(optimHess(as.list(out$par),
                  fn=Internal.LogLikPPR,
                  my.envd1=my.envd1,my.envd2=my.envd2,my.envd3=my.envd3),
@@ -689,8 +690,8 @@
     logLiklihood2 <- -10^10
   }
   minusLoglik <- -sum(logLiklihood2+logLiklihood1)
-   cat(sprintf("\n%.5f",minusLoglik))
-   cat(sprintf("\n%.5f",param))
+   # cat(sprintf("\n%.5f",minusLoglik))
+   # cat(sprintf("\n%.5f",param))
   return(minusLoglik)
 }
 

Modified: pkg/yuima/R/lambdaPPR.R
===================================================================
--- pkg/yuima/R/lambdaPPR.R	2018-06-20 18:22:32 UTC (rev 660)
+++ pkg/yuima/R/lambdaPPR.R	2018-06-24 18:15:38 UTC (rev 661)
@@ -89,6 +89,7 @@
 InternalKernelFromPPRModel2<-function(Integrand2,Integrand2expr,my.envd1=NULL,my.envd2=NULL,
                                       Univariate=TRUE, ExistdN, ExistdX, gridTime, dimCol, NameCol,
                                       JumpTimeName){
+  
   if(Univariate){
       # JumpTimeName  <- paste0("JumpTime.",NameCol[i])
       # dimCol<- dim(Integrand2)[2]
@@ -116,7 +117,7 @@
             # condpos <- NameCol %in% my.envd1$namedX
             condpos <- my.envd1$namedX %in% NameCol[i]  
             if(any(condpos)){
-              IntegralKernelDum<- sum(eval(Integrand2expr[condpos], envir=my.envd1),na.rm = TRUE)
+              IntegralKernelDum<- sum(eval(Integrand2expr[condpos], envir=my.envd1),na.rm=TRUE)
               IntegralKernel<-IntegralKernel+IntegralKernelDum
             }
           }
@@ -131,7 +132,7 @@
             # condpos <- NameCol %in% my.envd2$namedX
             condpos <- my.envd2$namedX %in% NameCol[i]
             if(any(condpos)){
-              IntegralKernelDum<- sum(eval(Integrand2expr[condpos], envir=my.envd2),na.rm = TRUE)
+              IntegralKernelDum<- sum(eval(Integrand2expr[condpos], envir=my.envd2))
               IntegralKernel<-IntegralKernel+IntegralKernelDum
             }
           }
@@ -191,9 +192,17 @@
   length(my.envd3$YUIMA.PPR at PPR@counting.var)
   if(Univariate){
     Kernel<- numeric(length=length(gridTime))
-    Kernel <- sapply(X=gridTime,FUN = InternalKernelFromPPRModel2,
-                     Integrand2=Integrand2, Integrand2expr = Integrand2expr,my.envd1=my.envd1,my.envd2=my.envd2,
-                     Univariate=Univariate, ExistdN =ExistdN, ExistdX=ExistdX )
+    NameCol <- colnames(Integrand2)
+    # Kernel <- sapply(X=gridTime,FUN = InternalKernelFromPPRModel2,
+    #                  Integrand2=Integrand2, Integrand2expr = Integrand2expr,my.envd1=my.envd1,my.envd2=my.envd2,
+    #                  Univariate=Univariate, ExistdN =ExistdN, ExistdX=ExistdX, 
+    #                  dimCol=dim(Integrand2)[2], NameCol = NameCol,
+    #                  JumpTimeName =paste0("JumpTime.",NameCol))
+
+    NameCol <- colnames(Integrand2)
+    Kernel <- evalKernelCpp(Integrand2, Integrand2expr,my.envd1, my.envd2,
+                            ExistdN, ExistdX, gridTime, dim(Integrand2)[2], NameCol,
+                            paste0("JumpTime.",NameCol))
   #KerneldCov<- numeric(length=length(gridTime))
     Evalgfun <- internalGfunFromPPRModel(gfun,my.envd3, univariate=Univariate)
     result<-Kernel+Evalgfun
@@ -208,10 +217,23 @@
      JumpTimeName  <- paste0("JumpTime.",NameCol)
     
     for(i in c(1:n.row)){
-      Kernel <- sapply(X=gridTime,FUN = InternalKernelFromPPRModel2,
-                       Integrand2=t(Integrand2[i,]), Integrand2expr = Integrand2expr[[i]],my.envd1=my.envd1,my.envd2=my.envd2,
-                       Univariate=TRUE, ExistdN =ExistdN, ExistdX=ExistdX, dimCol=dimCol, NameCol = NameCol,
-                       JumpTimeName =JumpTimeName)
+      # Kernel <- pvec(v=gridTime,FUN = InternalKernelFromPPRModel2,
+      #                  Integrand2=t(Integrand2[i,]), Integrand2expr = Integrand2expr[[i]],my.envd1=my.envd1,my.envd2=my.envd2,
+      #                  Univariate=TRUE, ExistdN =ExistdN, ExistdX=ExistdX, dimCol=dimCol, NameCol = NameCol,
+      #                  JumpTimeName =JumpTimeName)
+      # Kernel <- sapply(X=gridTime,FUN = InternalKernelFromPPRModel2,
+      #                  Integrand2=t(Integrand2[i,]), Integrand2expr = Integrand2expr[[i]],my.envd1=my.envd1,my.envd2=my.envd2,
+      #                  Univariate=TRUE, ExistdN =ExistdN, ExistdX=ExistdX, dimCol=dimCol, NameCol = NameCol,
+      #                  JumpTimeName =JumpTimeName)
+      # Kernel <- sapply(X=gridTime,FUN = evalKernelCppPvec,
+      #                   Integrand2=t(Integrand2[i,]), Integrand2expr = Integrand2expr[[i]],
+      #                   myenvd1=my.envd1,myenvd2=my.envd2,
+      #                   ExistdN =ExistdN, ExistdX=ExistdX,
+      #                   dimCol=dimCol, NameCol = NameCol,
+      #                   JumpTimeName =JumpTimeName)
+      Kernel <- evalKernelCpp(t(Integrand2[i,]), Integrand2expr[[i]],my.envd1, my.envd2,
+                     ExistdN, ExistdX, gridTime, dimCol, NameCol,
+                     JumpTimeName)
       Evalgfun <- internalGfunFromPPRModel(gfun[i],my.envd3, univariate=TRUE)
       result[i,]<-Kernel+Evalgfun
     }

Added: pkg/yuima/src/IntensityEval.cpp
===================================================================
--- pkg/yuima/src/IntensityEval.cpp	                        (rev 0)
+++ pkg/yuima/src/IntensityEval.cpp	2018-06-24 18:15:38 UTC (rev 661)
@@ -0,0 +1,95 @@
+#include <Rcpp.h>
+using namespace Rcpp;
+
+// [[Rcpp::export]]
+NumericVector evalKernelCpp(StringMatrix Integrand2, 
+                             ExpressionVector Integrand2expr, 
+                             Environment myenvd1, Environment myenvd2,
+                             LogicalVector ExistdN, LogicalVector ExistdX,
+                             NumericVector gridTime, IntegerVector dimCol,
+                             StringVector NameCol, StringVector JumpTimeName){
+  int FinT = gridTime.size();
+  NumericVector GlobalKernel(FinT);
+  for(int t=0;t<FinT;t++){
+      if(ExistdN[0]){
+        String ttime = myenvd1.get("t.time");
+        myenvd1.assign(ttime, gridTime[t]);
+      }
+      if(ExistdX[0]){
+        String ttimedX = myenvd2.get("t.time");
+        myenvd2.assign(ttimedX,gridTime[t]);
+      }
+      double IntegralKernel = 0;
+      for(int i=0;i<dimCol[0];i++){
+        if(ExistdN[0]){
+          StringVector namedJumpTimeX1 = myenvd1.get("namedJumpTimeX"); 
+          StringVector namedX1 = myenvd1.get("namedX");
+          //  printf(namedJumpTimeX1[0]);
+          for(int j=0;j<namedJumpTimeX1.size();j++){
+            if(JumpTimeName[i]==namedJumpTimeX1[j]){
+              String dummyString = as<std::string>(JumpTimeName[i]);
+              NumericVector JumpTimeDiff = myenvd1.get(dummyString);
+              String vartime =myenvd1.get("var.time");
+              myenvd1.assign(vartime,JumpTimeDiff);
+            }
+          }
+          for(int hh=0;hh<NameCol.size();hh++){
+            if(namedX1[i]==NameCol[hh]){
+              Language eval_call( "eval", Integrand2expr[hh], myenvd1);
+              SEXP X = Rf_eval( eval_call, myenvd1);
+              NumericVector XX(X);
+              NumericVector dumY = na_omit(XX);
+              IntegralKernel = IntegralKernel+sum(dumY);
+            }
+          }
+/*
+          if(any(cond)){
+          assign(my.envd1$var.time,my.envd1[[my.envd1$namedJumpTimeX[cond]]],envir=my.envd1)
+          condpos <- my.envd1$namedX %in% NameCol[i]  
+          if(any(condpos)){
+          IntegralKernelDum<- sum(eval(Integrand2expr[condpos], envir=my.envd1))
+          IntegralKernel<-IntegralKernel+IntegralKernelDum
+          }
+          }
+          */ 
+        }
+        if(ExistdX[0]){
+          StringVector namedJumpTimeX2 = myenvd2.get("namedJumpTimeX");
+          StringVector namedX2 = myenvd2.get("namedX");
+          for(int j=0;j<namedJumpTimeX2.size();j++){
+            if(JumpTimeName[i]==namedJumpTimeX2[j]){
+              String dummyString2 = as<std::string>(JumpTimeName[i]);
+              NumericVector JumpTimeDiff2 = myenvd2.get(dummyString2);
+              String vartime2 =myenvd2.get("var.time");
+              myenvd2.assign(vartime2,JumpTimeDiff2);
+            }
+          }
+          for(int hh=0;hh<NameCol.size();hh++){
+            if(namedX2[i]==NameCol[hh]){
+              Language eval_call( "eval", Integrand2expr[hh], myenvd2);
+              SEXP X2 = Rf_eval( eval_call, myenvd2);
+              NumericVector XX2(X2);
+              NumericVector dumY2 = na_omit(XX2);
+              IntegralKernel = IntegralKernel+sum(dumY2);
+            }
+          }
+          
+        }
+/*
+        if(ExistdX){  
+          cond <- my.envd2$namedJumpTimeX %in% JumpTimeName[i]
+          if(any(cond)){
+            assign(my.envd2$var.time,my.envd2[[my.envd2$namedJumpTimeX[cond]]],envir=my.envd2)
+            condpos <- my.envd2$namedX %in% NameCol[i]
+            if(any(condpos)){
+              IntegralKernelDum<- sum(eval(Integrand2expr[condpos], envir=my.envd2))
+              IntegralKernel<-IntegralKernel+IntegralKernelDum
+            }
+          }
+        }
+*/
+    }
+      GlobalKernel[t] = IntegralKernel;
+  }
+  return GlobalKernel;
+}
\ No newline at end of file

Modified: pkg/yuima/src/yuima_init.c
===================================================================
--- pkg/yuima/src/yuima_init.c	2018-06-20 18:22:32 UTC (rev 660)
+++ pkg/yuima/src/yuima_init.c	2018-06-24 18:15:38 UTC (rev 661)
@@ -1,84 +1,86 @@
-#include <R.h>
-#include <Rinternals.h>
-#include <stdlib.h> // for NULL
-#include <R_ext/Rdynload.h>
-
-/* FIXME:
- Check these declarations against the C/Fortran source code.
- */
-
-/* .C calls */
-extern void bibsynchro(void *, void *, void *, void *, void *, void *, void *, void *, void *);
-extern void ctsubsampling(void *, void *, void *, void *, void *, void *, void *);
-extern void HayashiYoshida(void *, void *, void *, void *, void *, void *, void *);
-extern void hyavar(void *, void *, void *, void *, void *, void *, void *, void *, void *);
-extern void hycrossavar(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *);
-extern void HYcrosscorr(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *);
-extern void HYcrosscorr2(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *);
-extern void HYcrosscov(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *);
-extern void HYcrosscov2(void *, void *, void *, void *, void *, void *, void *, void *, void *);
-extern void krprod(void *, void *, void *, void *);
-extern void msrc(void *, void *, void *, void *, void *, void *, void *);
-extern void pHayashiYoshida(void *, void *, void *, void *, void *, void *, void *, void *);
-extern void refreshsampling(void *, void *, void *, void *, void *, void *, void *, void *, void *);
-extern void refreshsamplingphy(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *);
-extern void rGIG(void *, void *, void *, void *, void *);
-extern void rpts(void *, void *, void *, void *, void *);
-
-/* .Call calls */
-extern SEXP Cycle_Carma(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
-extern SEXP euler(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
-extern SEXP pseudoLoglik_COGARCH1(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
-extern SEXP yuima_detcpp(SEXP);
-extern SEXP yuima_Irregular_PseudoLoglik_COG(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
-extern SEXP yuima_likndim(SEXP, SEXP, SEXP, SEXP);
-extern SEXP yuima_makeprop(SEXP, SEXP, SEXP, SEXP);
-extern SEXP yuima_Smake(SEXP, SEXP);
-extern SEXP yuima_solvecpp(SEXP);
-extern SEXP yuima_sqnorm(SEXP);
-extern SEXP yuima_sub_f(SEXP, SEXP);
-extern SEXP yuima_W1(SEXP, SEXP, SEXP, SEXP);
-extern SEXP yuima_W2(SEXP, SEXP, SEXP);
-
-static const R_CMethodDef CEntries[] = {
-    {"bibsynchro",         (DL_FUNC) &bibsynchro,          9},
-    {"ctsubsampling",      (DL_FUNC) &ctsubsampling,       7},
-    {"HayashiYoshida",     (DL_FUNC) &HayashiYoshida,      7},
-    {"hyavar",             (DL_FUNC) &hyavar,              9},
-    {"hycrossavar",        (DL_FUNC) &hycrossavar,        19},
-    {"HYcrosscorr",        (DL_FUNC) &HYcrosscorr,        12},
-    {"HYcrosscorr2",       (DL_FUNC) &HYcrosscorr2,       11},
-    {"HYcrosscov",         (DL_FUNC) &HYcrosscov,         10},
-    {"HYcrosscov2",        (DL_FUNC) &HYcrosscov2,         9},
-    {"krprod",             (DL_FUNC) &krprod,              4},
-    {"msrc",               (DL_FUNC) &msrc,                7},
-    {"pHayashiYoshida",    (DL_FUNC) &pHayashiYoshida,     8},
-    {"refreshsampling",    (DL_FUNC) &refreshsampling,     9},
-    {"refreshsamplingphy", (DL_FUNC) &refreshsamplingphy, 10},
-    {"rGIG",               (DL_FUNC) &rGIG,                5},
-    {"rpts",               (DL_FUNC) &rpts,                5},
-    {NULL, NULL, 0}
-};
-
-static const R_CallMethodDef CallEntries[] = {
-    {"Cycle_Carma",                      (DL_FUNC) &Cycle_Carma,                      12},
-    {"euler",                            (DL_FUNC) &euler,                            11},
-    {"pseudoLoglik_COGARCH1",            (DL_FUNC) &pseudoLoglik_COGARCH1,            14},
-    {"yuima_detcpp",                     (DL_FUNC) &yuima_detcpp,                      1},
-    {"yuima_Irregular_PseudoLoglik_COG", (DL_FUNC) &yuima_Irregular_PseudoLoglik_COG, 15},
-    {"yuima_likndim",                    (DL_FUNC) &yuima_likndim,                     4},
-    {"yuima_makeprop",                   (DL_FUNC) &yuima_makeprop,                    4},
-    {"yuima_Smake",                      (DL_FUNC) &yuima_Smake,                       2},
-    {"yuima_solvecpp",                   (DL_FUNC) &yuima_solvecpp,                    1},
-    {"yuima_sqnorm",                     (DL_FUNC) &yuima_sqnorm,                      1},
-    {"yuima_sub_f",                      (DL_FUNC) &yuima_sub_f,                       2},
-    {"yuima_W1",                         (DL_FUNC) &yuima_W1,                          4},
-    {"yuima_W2",                         (DL_FUNC) &yuima_W2,                          3},
-    {NULL, NULL, 0}
-};
-
-void R_init_yuima(DllInfo *dll)
-{
-    R_registerRoutines(dll, CEntries, CallEntries, NULL, NULL);
-    R_useDynamicSymbols(dll, FALSE);
-}
+#include <R.h>
+#include <Rinternals.h>
+#include <stdlib.h> // for NULL
+#include <R_ext/Rdynload.h>
+
+/* FIXME: 
+Check these declarations against the C/Fortran source code.
+*/
+
+/* .C calls */
+extern void bibsynchro(void *, void *, void *, void *, void *, void *, void *, void *, void *);
+extern void ctsubsampling(void *, void *, void *, void *, void *, void *, void *);
+extern void HayashiYoshida(void *, void *, void *, void *, void *, void *, void *);
+extern void hyavar(void *, void *, void *, void *, void *, void *, void *, void *, void *);
+extern void hycrossavar(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *);
+extern void HYcrosscorr(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *);
+extern void HYcrosscorr2(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *);
+extern void HYcrosscov(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *);
+extern void HYcrosscov2(void *, void *, void *, void *, void *, void *, void *, void *, void *);
+extern void krprod(void *, void *, void *, void *);
+extern void msrc(void *, void *, void *, void *, void *, void *, void *);
+extern void pHayashiYoshida(void *, void *, void *, void *, void *, void *, void *, void *);
+extern void refreshsampling(void *, void *, void *, void *, void *, void *, void *, void *, void *);
+extern void refreshsamplingphy(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *);
+extern void rGIG(void *, void *, void *, void *, void *);
+extern void rpts(void *, void *, void *, void *, void *);
+
+/* .Call calls */
+extern SEXP yuima_detcpp(SEXP);
+extern SEXP yuima_evalKernelCpp(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+extern SEXP yuima_Irregular_PseudoLoglik_COG(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+extern SEXP yuima_likndim(SEXP, SEXP, SEXP, SEXP);
+extern SEXP yuima_makeprop(SEXP, SEXP, SEXP, SEXP);
+extern SEXP yuima_Smake(SEXP, SEXP);
+extern SEXP yuima_solvecpp(SEXP);
+extern SEXP yuima_sqnorm(SEXP);
+extern SEXP yuima_sub_f(SEXP, SEXP);
+extern SEXP yuima_W1(SEXP, SEXP, SEXP, SEXP);
+extern SEXP yuima_W2(SEXP, SEXP, SEXP);
+extern SEXP Cycle_Carma(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+extern SEXP euler(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+extern SEXP pseudoLoglik_COGARCH1(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP);
+
+static const R_CMethodDef CEntries[] = {
+  {"bibsynchro",         (DL_FUNC) &bibsynchro,          9},
+  {"ctsubsampling",      (DL_FUNC) &ctsubsampling,       7},
+  {"HayashiYoshida",     (DL_FUNC) &HayashiYoshida,      7},
+  {"hyavar",             (DL_FUNC) &hyavar,              9},
+  {"hycrossavar",        (DL_FUNC) &hycrossavar,        19},
+  {"HYcrosscorr",        (DL_FUNC) &HYcrosscorr,        12},
+  {"HYcrosscorr2",       (DL_FUNC) &HYcrosscorr2,       11},
+  {"HYcrosscov",         (DL_FUNC) &HYcrosscov,         10},
+  {"HYcrosscov2",        (DL_FUNC) &HYcrosscov2,         9},
+  {"krprod",             (DL_FUNC) &krprod,              4},
+  {"msrc",               (DL_FUNC) &msrc,                7},
+  {"pHayashiYoshida",    (DL_FUNC) &pHayashiYoshida,     8},
+  {"refreshsampling",    (DL_FUNC) &refreshsampling,     9},
+  {"refreshsamplingphy", (DL_FUNC) &refreshsamplingphy, 10},
+  {"rGIG",               (DL_FUNC) &rGIG,                5},
+  {"rpts",               (DL_FUNC) &rpts,                5},
+  {NULL, NULL, 0}
+};
+
+static const R_CallMethodDef CallEntries[] = {
+  {"yuima_detcpp",                     (DL_FUNC) &yuima_detcpp,                      1},
+  {"yuima_evalKernelCpp",              (DL_FUNC) &yuima_evalKernelCpp,              10},
+  {"yuima_Irregular_PseudoLoglik_COG", (DL_FUNC) &yuima_Irregular_PseudoLoglik_COG, 15},
+  {"yuima_likndim",                    (DL_FUNC) &yuima_likndim,                     4},
+  {"yuima_makeprop",                   (DL_FUNC) &yuima_makeprop,                    4},
+  {"yuima_Smake",                      (DL_FUNC) &yuima_Smake,                       2},
+  {"yuima_solvecpp",                   (DL_FUNC) &yuima_solvecpp,                    1},
+  {"yuima_sqnorm",                     (DL_FUNC) &yuima_sqnorm,                      1},
+  {"yuima_sub_f",                      (DL_FUNC) &yuima_sub_f,                       2},
+  {"yuima_W1",                         (DL_FUNC) &yuima_W1,                          4},
+  {"yuima_W2",                         (DL_FUNC) &yuima_W2,                          3},
+  {"Cycle_Carma",                       (DL_FUNC) &Cycle_Carma,                       12},
+  {"euler",                             (DL_FUNC) &euler,                             11},
+  {"pseudoLoglik_COGARCH1",             (DL_FUNC) &pseudoLoglik_COGARCH1,             14},
+  {NULL, NULL, 0}
+};
+
+void R_init_yuima(DllInfo *dll)
+{
+  R_registerRoutines(dll, CEntries, CallEntries, NULL, NULL);
+  R_useDynamicSymbols(dll, FALSE);
+}
\ No newline at end of file



More information about the Yuima-commits mailing list