From noreply at r-forge.r-project.org Mon Dec 5 06:05:25 2022 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Mon, 5 Dec 2022 06:05:25 +0100 (CET) Subject: [Yuima-commits] r825 - in pkg/yuima: . src Message-ID: <20221205050525.C33E618414A@r-forge.r-project.org> Author: iacus Date: 2022-12-05 06:05:25 +0100 (Mon, 05 Dec 2022) New Revision: 825 Modified: pkg/yuima/DESCRIPTION pkg/yuima/NEWS pkg/yuima/src/ae.cpp pkg/yuima/src/euler.c Log: fixed CRAN issues Modified: pkg/yuima/DESCRIPTION =================================================================== --- pkg/yuima/DESCRIPTION 2022-11-29 09:11:18 UTC (rev 824) +++ pkg/yuima/DESCRIPTION 2022-12-05 05:05:25 UTC (rev 825) @@ -1,7 +1,7 @@ Package: yuima Type: Package Title: The YUIMA Project Package for SDEs -Version: 1.15.17 +Version: 1.15.18 Depends: R(>= 2.10.0), methods, zoo, stats4, utils, expm, cubature, mvtnorm Imports: Rcpp (>= 0.12.1), boot (>= 1.3-2), glassoFast, coda, calculus @@ -13,9 +13,3 @@ URL: https://yuimaproject.com LinkingTo: Rcpp, RcppArmadillo NeedsCompilation: yes -Repository: R-Forge -Repository/R-Forge/Project: yuima -Repository/R-Forge/Revision: 819 -Repository/R-Forge/DateTimeStamp: 2022-11-08 03:02:47 -Date/Publication: 2022-11-08 03:02:47 -Packaged: 2022-11-08 03:12:08 UTC; rforge Modified: pkg/yuima/NEWS =================================================================== --- pkg/yuima/NEWS 2022-11-29 09:11:18 UTC (rev 824) +++ pkg/yuima/NEWS 2022-12-05 05:05:25 UTC (rev 825) @@ -118,5 +118,14 @@ * fixed "comparisons like 'X<=Y<=Z' do not have their mathematical meaning [-Wparentheses]" in rng.c -2022/11/08: fixed man/rng.Rd -2022/11/29: fixed IC.R and IC.Rd +2022/11/08 +* fixed man/rng.Rd + +2022/11/29 +* fixed IC.R and IC.Rd + +v. 1.15.18 2022/11/05 +* remove sprintf from ae.c +* protected object in euler.c + + Modified: pkg/yuima/src/ae.cpp =================================================================== --- pkg/yuima/src/ae.cpp 2022-11-29 09:11:18 UTC (rev 824) +++ pkg/yuima/src/ae.cpp 2022-12-05 05:05:25 UTC (rev 825) @@ -1,385 +1,390 @@ -#include -using namespace Rcpp; - - - -// [[Rcpp::export]] -bool is_zero (std::string const &x){ - return((x=="0") || (x=="(0)") || (x=="{0}") || (x=="(0+0i)") || (x=="")); -} - - - -// [[Rcpp::export]] -std::vector< std::vector > cpp_split(std::vector const &str, std::string const sep) { - - int n = str.size(); - std::vector< std::vector > out(n); - - for(int i=0; i cpp_paste(std::vector const &x, std::vector const &y, std::string const sep) { - - int n_x = x.size(); - int n_y = y.size(); - if(n_x!=n_y) Rcpp::stop("x and y must share the same length"); - - bool is_p = (sep==" * "); - bool is_s = (sep==" + "); - - std::vector out(n_x); - - for(int i=0; i const &str, std::string const sep) { - - int n = str.size(); - std::string s = str[0]; - - if(n>1){ - bool is_s = (sep==" + "); - for(int i=1; i cpp_outer(std::vector const &x, std::vector const &y) { - - int n_x = x.size(); - int n_y = y.size(); - - std::vector out(n_x*n_y); - - int k = 0; - for(int i=0; i cpp_ito_outer(std::vector const &x, std::vector const &y) { - - int n_x = x.size(); - int n_y = y.size(); - std::vector out(n_x*n_y); - - std::vector< std::vector > x_adds = cpp_split(x, " + "); - std::vector< std::vector > y_adds = cpp_split(y, " + "); - - int k = 0; - for(int i=0; i I){ - - std::string s = cpp_to_str(I[0]); - - int n = I.size(); - if(n>1) for(int i=1; i cpp_ito_product(std::vector const &idx, List const &dZ, List const &Z_K, std::vector const &K, int d, int a, int p, int q = 0) { - - a = a-1; - p = p-1; - q = q-1; - - std::vector tmp; - std::vector dZ_p; - std::vector dZ_q; - std::vector I; - - // K length - int l = K.size(); - - // dZ.p & dZ.q - tmp = as< std::vector >(dZ[ K[p]-1 ]); - dZ_p = std::vector(tmp.begin() + d*a, tmp.begin() + d*(a+1)); - if(q>=0){ - tmp = as< std::vector >(dZ[ K[q]-1 ]); - dZ_q = std::vector(tmp.begin() + d*a, tmp.begin() + d*(a+1)); - } - - // up to index p - if(p==0) { - tmp = dZ_p; - } - else { - I = std::vector(K.begin(), K.begin() + p); - tmp = cpp_ito_outer(Z_K[cpp_label(I)], dZ_p); - } - - // up to index q - if(q>=0){ - if(q==(p+1)){ - tmp = cpp_ito_outer(tmp, dZ_q); - } - else { - I = std::vector(K.begin() + p+1, K.begin() + q); - tmp = cpp_ito_outer(tmp, Z_K[cpp_label(I)]); - tmp = cpp_ito_outer(tmp, dZ_q); - } - } - - // up to index l - int i = p; - if(q>p) i = q; - if(l>i+1){ - I = std::vector(K.begin() + i+1, K.begin() + l); - tmp = cpp_ito_outer(tmp, Z_K[cpp_label(I)]); - } - - // return only specific indexes - std::vector sub; - for(unsigned int i=0; i cpp_E(std::vector str){ - - std::vector E; - std::vector< std::vector > x = cpp_split(str, " * "); - - int n = x.size(); - for(int i=0; i rhs; - std::vector lhs; - - for(int i=0; i tmp; - std::vector K = K_set[i]; - int l = K.size(); - - // lhs - tmp = cpp_E(Z_K[cpp_label(K)]); - std::vector idx; - for(unsigned int j=0; j0){ - - for(int p=1; p<=l; p++){ - - if(p==1) tmp = cpp_ito_product(idx, dZ, Z_K, K, d, 1, p); - else tmp = cpp_paste(tmp, cpp_ito_product(idx, dZ, Z_K, K, d, 1, p), " + "); - - if(p > rhs_var(n); - std::vector< std::vector > adds = cpp_split(rhs, " + "); - - // for each equation - for(int i=0; i coef(1); - std::vector var(1); - std::map > map; - - // for each addend - for(unsigned int j=0; j0) { - - for(int k=0; k >::iterator it1; - std::map::iterator it2; - - for ( it1 = map.begin(); it1 != map.end(); it1++ ) { - if(it1->first!="0"){ - - // simplify rhs - str = ""; - for ( it2 = it1->second.begin(); it2 != it1->second.end(); it2++ ) { - if(str=="") str = cpp_to_str(it2->second) + " * " + it2->first; - else str += "+" + cpp_to_str(it2->second) + " * " + it2->first; - } - if(rhs[i]=="") rhs[i] = "(" + str + ") * " + it1->first; - else rhs[i] += " + (" + str + ") * " + it1->first; - - // store unique var contained in rhs - if(it1->first!="1") rhs_var[i].push_back(it1->first); - - } - } - - } - - } - - return(List::create(Named("lhs") = lhs , Named("rhs") = rhs, Named("rhs.var") = rhs_var)); -} - +#include +using namespace Rcpp; + + + +// [[Rcpp::export]] +bool is_zero (std::string const &x){ + return((x=="0") || (x=="(0)") || (x=="{0}") || (x=="(0+0i)") || (x=="")); +} + + + +// [[Rcpp::export]] +std::vector< std::vector > cpp_split(std::vector const &str, std::string const sep) { + + int n = str.size(); + std::vector< std::vector > out(n); + + for(int i=0; i cpp_paste(std::vector const &x, std::vector const &y, std::string const sep) { + + int n_x = x.size(); + int n_y = y.size(); + if(n_x!=n_y) Rcpp::stop("x and y must share the same length"); + + bool is_p = (sep==" * "); + bool is_s = (sep==" + "); + + std::vector out(n_x); + + for(int i=0; i const &str, std::string const sep) { + + int n = str.size(); + std::string s = str[0]; + + if(n>1){ + bool is_s = (sep==" + "); + for(int i=1; i cpp_outer(std::vector const &x, std::vector const &y) { + + int n_x = x.size(); + int n_y = y.size(); + + std::vector out(n_x*n_y); + + int k = 0; + for(int i=0; i cpp_ito_outer(std::vector const &x, std::vector const &y) { + + int n_x = x.size(); + int n_y = y.size(); + std::vector out(n_x*n_y); + + std::vector< std::vector > x_adds = cpp_split(x, " + "); + std::vector< std::vector > y_adds = cpp_split(y, " + "); + + int k = 0; + for(int i=0; i I){ + +// std::string s = cpp_to_str(I[0]); + std::string s = std::to_string(I[0]); + + int n = I.size(); + if(n>1) for(int i=1; i cpp_ito_product(std::vector const &idx, List const &dZ, List const &Z_K, std::vector const &K, int d, int a, int p, int q = 0) { + + a = a-1; + p = p-1; + q = q-1; + + std::vector tmp; + std::vector dZ_p; + std::vector dZ_q; + std::vector I; + + // K length + int l = K.size(); + + // dZ.p & dZ.q + tmp = as< std::vector >(dZ[ K[p]-1 ]); + dZ_p = std::vector(tmp.begin() + d*a, tmp.begin() + d*(a+1)); + if(q>=0){ + tmp = as< std::vector >(dZ[ K[q]-1 ]); + dZ_q = std::vector(tmp.begin() + d*a, tmp.begin() + d*(a+1)); + } + + // up to index p + if(p==0) { + tmp = dZ_p; + } + else { + I = std::vector(K.begin(), K.begin() + p); + tmp = cpp_ito_outer(Z_K[cpp_label(I)], dZ_p); + } + + // up to index q + if(q>=0){ + if(q==(p+1)){ + tmp = cpp_ito_outer(tmp, dZ_q); + } + else { + I = std::vector(K.begin() + p+1, K.begin() + q); + tmp = cpp_ito_outer(tmp, Z_K[cpp_label(I)]); + tmp = cpp_ito_outer(tmp, dZ_q); + } + } + + // up to index l + int i = p; + if(q>p) i = q; + if(l>i+1){ + I = std::vector(K.begin() + i+1, K.begin() + l); + tmp = cpp_ito_outer(tmp, Z_K[cpp_label(I)]); + } + + // return only specific indexes + std::vector sub; + for(unsigned int i=0; i cpp_E(std::vector str){ + + std::vector E; + std::vector< std::vector > x = cpp_split(str, " * "); + + int n = x.size(); + for(int i=0; i rhs; + std::vector lhs; + + for(int i=0; i tmp; + std::vector K = K_set[i]; + int l = K.size(); + + // lhs + tmp = cpp_E(Z_K[cpp_label(K)]); + std::vector idx; + for(unsigned int j=0; j0){ + + for(int p=1; p<=l; p++){ + + if(p==1) tmp = cpp_ito_product(idx, dZ, Z_K, K, d, 1, p); + else tmp = cpp_paste(tmp, cpp_ito_product(idx, dZ, Z_K, K, d, 1, p), " + "); + + if(p > rhs_var(n); + std::vector< std::vector > adds = cpp_split(rhs, " + "); + + // for each equation + for(int i=0; i coef(1); + std::vector var(1); + std::map > map; + + // for each addend + for(unsigned int j=0; j0) { + + for(int k=0; k >::iterator it1; + std::map::iterator it2; + + for ( it1 = map.begin(); it1 != map.end(); it1++ ) { + if(it1->first!="0"){ + + // simplify rhs + str = ""; + //std::to_string + for ( it2 = it1->second.begin(); it2 != it1->second.end(); it2++ ) { + if(str=="") str = std::to_string(it2->second) + " * " + it2->first; + else str += "+" + std::to_string(it2->second) + " * " + it2->first; +// if(str=="") str = cpp_to_str(it2->second) + " * " + it2->first; +// else str += "+" + cpp_to_str(it2->second) + " * " + it2->first; + } + if(rhs[i]=="") rhs[i] = "(" + str + ") * " + it1->first; + else rhs[i] += " + (" + str + ") * " + it1->first; + + // store unique var contained in rhs + if(it1->first!="1") rhs_var[i].push_back(it1->first); + + } + } + + } + + } + + return(List::create(Named("lhs") = lhs , Named("rhs") = rhs, Named("rhs.var") = rhs_var)); +} + Modified: pkg/yuima/src/euler.c =================================================================== --- pkg/yuima/src/euler.c 2022-11-29 09:11:18 UTC (rev 824) +++ pkg/yuima/src/euler.c 2022-12-05 05:05:25 UTC (rev 825) @@ -64,7 +64,11 @@ for (j = 0; j < d; j++) { /* PROTECT(xpar = allocVector(REALSXP, 1));*/ REAL(xpar)[0] = rX[j + i * d]; - defineVar(installChar(STRING_ELT(modelstate, j)), duplicate(xpar), env); + /* defineVar(installChar(STRING_ELT(modelstate, j)), duplicate(xpar), env); */ + /* next two lines to fix possibile memory leaks proposed by Tomas Kalibera */ + SEXP ch = installChar(STRING_ELT(modelstate, j)); + defineVar(ch, duplicate(xpar), env); + //PROTECT(xvar = STRING_ELT(modelstate, j)); //defineVar(installChar(xvar), duplicate(xpar), env); //defineVar(installChar(STRING_ELT(modelstate, j)), xpar, env); From noreply at r-forge.r-project.org Mon Dec 5 06:29:54 2022 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Mon, 5 Dec 2022 06:29:54 +0100 (CET) Subject: [Yuima-commits] r826 - in pkg/yuima: . R Message-ID: <20221205052954.6083818444B@r-forge.r-project.org> Author: iacus Date: 2022-12-05 06:29:54 +0100 (Mon, 05 Dec 2022) New Revision: 826 Modified: pkg/yuima/NEWS pkg/yuima/R/IC.R Log: fixed IC.R if(class()) Modified: pkg/yuima/NEWS =================================================================== --- pkg/yuima/NEWS 2022-12-05 05:05:25 UTC (rev 825) +++ pkg/yuima/NEWS 2022-12-05 05:29:54 UTC (rev 826) @@ -127,5 +127,6 @@ v. 1.15.18 2022/11/05 * remove sprintf from ae.c * protected object in euler.c +* changed if(class()) with inherits() in IC.R Modified: pkg/yuima/R/IC.R =================================================================== --- pkg/yuima/R/IC.R 2022-12-05 05:05:25 UTC (rev 825) +++ pkg/yuima/R/IC.R 2022-12-05 05:29:54 UTC (rev 826) @@ -370,10 +370,11 @@ Diff.esti.bic.sub <- gsub(swbeta[[BIC.opt1]][(j+1)], Esti1.chr.bic[(j+1)], Diff.esti.bic.sub) } } - if(class(Diff.esti.bic) == "character"){ - Diff.esti.bic <- Diff.esti.bic.sub - }else{ - Diff.esti.bic[i,] <- Diff.esti.bic.sub + # if(class(Diff.esti.bic) == "character"){ + if(inherits(Diff.esti.bic, "character")){ + Diff.esti.bic <- Diff.esti.bic.sub + } else { + Diff.esti.bic[i,] <- Diff.esti.bic.sub } } @@ -390,9 +391,10 @@ Diff.esti.qbic.sub <- gsub(swbeta[[QBIC.opt1]][(j+1)], Esti1.chr.qbic[(j+1)], Diff.esti.qbic.sub) } } - if(class(Diff.esti.qbic) == "character"){ + #if(class(Diff.esti.qbic) == "character"){ + if(inherits(Diff.esti.qbic,"character")){ Diff.esti.qbic <- Diff.esti.qbic.sub - }else{ + } else { Diff.esti.qbic[i,] <- Diff.esti.qbic.sub } } @@ -410,9 +412,10 @@ Diff.esti.aic.sub <- gsub(swbeta[[AIC.opt1]][(j+1)], Esti1.chr.aic[(j+1)], Diff.esti.aic.sub) } } - if(class(Diff.esti.aic) == "character"){ + #if(class(Diff.esti.aic) == "character"){ + if(inherits(Diff.esti.aic, "character")){ Diff.esti.aic <- Diff.esti.aic.sub - }else{ + } else { Diff.esti.aic[i,] <- Diff.esti.aic.sub } } @@ -529,9 +532,10 @@ Diff.esti.sub <- gsub(swbeta[[i]][(k+1)], Esti1.chr[(k+1)], Diff.esti.sub) } } - if(class(Diff.esti) == "character"){ + #if(class(Diff.esti) == "character"){ + if(inherits(Diff.esti, "character")){ Diff.esti <- Diff.esti.sub - }else{ + } else { Diff.esti[j,] <- Diff.esti.sub } } From noreply at r-forge.r-project.org Mon Dec 5 19:42:17 2022 From: noreply at r-forge.r-project.org (noreply at r-forge.r-project.org) Date: Mon, 5 Dec 2022 19:42:17 +0100 (CET) Subject: [Yuima-commits] r827 - pkg/yuima/src Message-ID: <20221205184217.BB292180704@r-forge.r-project.org> Author: phoenix844 Date: 2022-12-05 19:42:17 +0100 (Mon, 05 Dec 2022) New Revision: 827 Modified: pkg/yuima/src/RcppExports.cpp pkg/yuima/src/ae.cpp pkg/yuima/src/yuima_init.c Log: Remove cpp_to_str Modified: pkg/yuima/src/RcppExports.cpp =================================================================== --- pkg/yuima/src/RcppExports.cpp 2022-12-05 05:29:54 UTC (rev 826) +++ pkg/yuima/src/RcppExports.cpp 2022-12-05 18:42:17 UTC (rev 827) @@ -151,17 +151,6 @@ return rcpp_result_gen; END_RCPP } -// cpp_to_str -std::string cpp_to_str(int const& i); -RcppExport SEXP _yuima_cpp_to_str(SEXP iSEXP) { -BEGIN_RCPP - Rcpp::RObject rcpp_result_gen; - Rcpp::RNGScope rcpp_rngScope_gen; - Rcpp::traits::input_parameter< int const& >::type i(iSEXP); - rcpp_result_gen = Rcpp::wrap(cpp_to_str(i)); - return rcpp_result_gen; -END_RCPP -} // cpp_label std::string cpp_label(std::vector I); RcppExport SEXP _yuima_cpp_label(SEXP ISEXP) { Modified: pkg/yuima/src/ae.cpp =================================================================== --- pkg/yuima/src/ae.cpp 2022-12-05 05:29:54 UTC (rev 826) +++ pkg/yuima/src/ae.cpp 2022-12-05 18:42:17 UTC (rev 827) @@ -141,21 +141,12 @@ } // [[Rcpp::export]] -std::string cpp_to_str(int const &i){ - char tmp[10]; -// sprintf(tmp, "%d", i); - return(std::string(tmp)); -} - -// [[Rcpp::export]] std::string cpp_label(std::vector I){ -// std::string s = cpp_to_str(I[0]); std::string s = std::to_string(I[0]); int n = I.size(); if(n>1) for(int i=1; isecond.begin(); it2 != it1->second.end(); it2++ ) { if(str=="") str = std::to_string(it2->second) + " * " + it2->first; else str += "+" + std::to_string(it2->second) + " * " + it2->first; -// if(str=="") str = cpp_to_str(it2->second) + " * " + it2->first; -// else str += "+" + cpp_to_str(it2->second) + " * " + it2->first; } if(rhs[i]=="") rhs[i] = "(" + str + ") * " + it1->first; else rhs[i] += " + (" + str + ") * " + it1->first; Modified: pkg/yuima/src/yuima_init.c =================================================================== --- pkg/yuima/src/yuima_init.c 2022-12-05 05:29:54 UTC (rev 826) +++ pkg/yuima/src/yuima_init.c 2022-12-05 18:42:17 UTC (rev 827) @@ -1,112 +1,110 @@ -#include -#include -#include // for NULL -#include - -/* 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_cpp_collapse(SEXP, SEXP); -extern SEXP _yuima_cpp_E(SEXP); -extern SEXP _yuima_cpp_ito(SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP _yuima_cpp_ito_outer(SEXP, SEXP); -extern SEXP _yuima_cpp_ito_product(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP _yuima_cpp_label(SEXP); -extern SEXP _yuima_cpp_outer(SEXP, SEXP); -extern SEXP _yuima_cpp_paste(SEXP, SEXP, SEXP); -extern SEXP _yuima_cpp_split(SEXP, SEXP); -extern SEXP _yuima_cpp_to_str(SEXP); -extern SEXP _yuima_detcpp(SEXP); -extern SEXP _yuima_evalKernelCpp(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); -extern SEXP _yuima_evalKernelCpp2(SEXP, SEXP, SEXP, 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_is_zero(SEXP); -extern SEXP _yuima_likndim(SEXP, SEXP, SEXP, SEXP); -extern SEXP _yuima_makeprop(SEXP, SEXP, SEXP, SEXP); -extern SEXP _yuima_residualCpp(SEXP, 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_cpp_collapse", (DL_FUNC) &_yuima_cpp_collapse, 2}, - {"_yuima_cpp_E", (DL_FUNC) &_yuima_cpp_E, 1}, - {"_yuima_cpp_ito", (DL_FUNC) &_yuima_cpp_ito, 5}, - {"_yuima_cpp_ito_outer", (DL_FUNC) &_yuima_cpp_ito_outer, 2}, - {"_yuima_cpp_ito_product", (DL_FUNC) &_yuima_cpp_ito_product, 8}, - {"_yuima_cpp_label", (DL_FUNC) &_yuima_cpp_label, 1}, - {"_yuima_cpp_outer", (DL_FUNC) &_yuima_cpp_outer, 2}, - {"_yuima_cpp_paste", (DL_FUNC) &_yuima_cpp_paste, 3}, - {"_yuima_cpp_split", (DL_FUNC) &_yuima_cpp_split, 2}, - {"_yuima_cpp_to_str", (DL_FUNC) &_yuima_cpp_to_str, 1}, - {"_yuima_detcpp", (DL_FUNC) &_yuima_detcpp, 1}, - {"_yuima_evalKernelCpp", (DL_FUNC) &_yuima_evalKernelCpp, 10}, - {"_yuima_evalKernelCpp2", (DL_FUNC) &_yuima_evalKernelCpp2, 13}, - {"_yuima_Irregular_PseudoLoglik_COG", (DL_FUNC) &_yuima_Irregular_PseudoLoglik_COG, 15}, - {"_yuima_is_zero", (DL_FUNC) &_yuima_is_zero, 1}, - {"_yuima_likndim", (DL_FUNC) &_yuima_likndim, 4}, - {"_yuima_makeprop", (DL_FUNC) &_yuima_makeprop, 4}, - {"_yuima_residualCpp", (DL_FUNC) &_yuima_residualCpp, 5}, - {"_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); -} +#include +#include +#include // for NULL +#include + +/* 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_cpp_collapse(SEXP, SEXP); +extern SEXP _yuima_cpp_E(SEXP); +extern SEXP _yuima_cpp_ito(SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP _yuima_cpp_ito_outer(SEXP, SEXP); +extern SEXP _yuima_cpp_ito_product(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP _yuima_cpp_label(SEXP); +extern SEXP _yuima_cpp_outer(SEXP, SEXP); +extern SEXP _yuima_cpp_paste(SEXP, SEXP, SEXP); +extern SEXP _yuima_cpp_split(SEXP, SEXP); +extern SEXP _yuima_detcpp(SEXP); +extern SEXP _yuima_evalKernelCpp(SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP, SEXP); +extern SEXP _yuima_evalKernelCpp2(SEXP, SEXP, SEXP, 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_is_zero(SEXP); +extern SEXP _yuima_likndim(SEXP, SEXP, SEXP, SEXP); +extern SEXP _yuima_makeprop(SEXP, SEXP, SEXP, SEXP); +extern SEXP _yuima_residualCpp(SEXP, 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_cpp_collapse", (DL_FUNC) &_yuima_cpp_collapse, 2}, + {"_yuima_cpp_E", (DL_FUNC) &_yuima_cpp_E, 1}, + {"_yuima_cpp_ito", (DL_FUNC) &_yuima_cpp_ito, 5}, + {"_yuima_cpp_ito_outer", (DL_FUNC) &_yuima_cpp_ito_outer, 2}, + {"_yuima_cpp_ito_product", (DL_FUNC) &_yuima_cpp_ito_product, 8}, + {"_yuima_cpp_label", (DL_FUNC) &_yuima_cpp_label, 1}, + {"_yuima_cpp_outer", (DL_FUNC) &_yuima_cpp_outer, 2}, + {"_yuima_cpp_paste", (DL_FUNC) &_yuima_cpp_paste, 3}, + {"_yuima_cpp_split", (DL_FUNC) &_yuima_cpp_split, 2}, + {"_yuima_detcpp", (DL_FUNC) &_yuima_detcpp, 1}, + {"_yuima_evalKernelCpp", (DL_FUNC) &_yuima_evalKernelCpp, 10}, + {"_yuima_evalKernelCpp2", (DL_FUNC) &_yuima_evalKernelCpp2, 13}, + {"_yuima_Irregular_PseudoLoglik_COG", (DL_FUNC) &_yuima_Irregular_PseudoLoglik_COG, 15}, + {"_yuima_is_zero", (DL_FUNC) &_yuima_is_zero, 1}, + {"_yuima_likndim", (DL_FUNC) &_yuima_likndim, 4}, + {"_yuima_makeprop", (DL_FUNC) &_yuima_makeprop, 4}, + {"_yuima_residualCpp", (DL_FUNC) &_yuima_residualCpp, 5}, + {"_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); +}