[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