aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKen Kellner <ken@kenkellner.com>2023-07-06 10:52:14 -0400
committerKen Kellner <ken@kenkellner.com>2023-07-06 10:52:14 -0400
commit5c9f793a19bbd8d79a36c1ebd9a3f38df88dcd14 (patch)
treea5c9d5ce480d71676dbff152ae3e111161cee677
parent3dd331abb652b70ad10f7af0530701ffb2d31d81 (diff)
Fix multmixOpen and distsampOpen cpp
-rw-r--r--DESCRIPTION2
-rw-r--r--R/RcppExports.R8
-rw-r--r--R/distsampOpen.R6
-rw-r--r--R/multmixOpen.R6
-rw-r--r--src/RcppExports.cpp113
-rw-r--r--src/nll_distsampOpen.cpp85
-rw-r--r--src/nll_distsampOpen.h19
-rw-r--r--src/nll_multmixOpen.cpp80
-rw-r--r--src/nll_multmixOpen.h23
9 files changed, 159 insertions, 183 deletions
diff --git a/DESCRIPTION b/DESCRIPTION
index 1d71836..9800624 100644
--- a/DESCRIPTION
+++ b/DESCRIPTION
@@ -1,6 +1,6 @@
Package: unmarked
Version: 1.3.1.9001
-Date: 2023-07-02
+Date: 2023-07-06
Type: Package
Title: Models for Data from Unmarked Animals
Authors@R: c(
diff --git a/R/RcppExports.R b/R/RcppExports.R
index 5a85138..c6aa6d2 100644
--- a/R/RcppExports.R
+++ b/R/RcppExports.R
@@ -13,6 +13,10 @@ nll_distsamp <- function(y, lam, sig, scale, a, u, w, db, keyfun, survey) {
.Call(`_unmarked_nll_distsamp`, y, lam, sig, scale, a, u, w, db, keyfun, survey)
}
+nll_distsampOpen <- function(y, yt, Xlam, Xgam, Xom, Xsig, Xiota, beta, bi, Xlam_offset, Xgam_offset, Xom_offset, Xsig_offset, Xiota_offset, ytna, lk, mixture, first, last, first1, M, T, delta, dynamics, survey, fix, go_dims, immigration, I, I1, Ib, Ip, a, u, w, db, keyfun, lfac_k, kmyt, lfac_kmyt, fin, A) {
+ .Call(`_unmarked_nll_distsampOpen`, y, yt, Xlam, Xgam, Xom, Xsig, Xiota, beta, bi, Xlam_offset, Xgam_offset, Xom_offset, Xsig_offset, Xiota_offset, ytna, lk, mixture, first, last, first1, M, T, delta, dynamics, survey, fix, go_dims, immigration, I, I1, Ib, Ip, a, u, w, db, keyfun, lfac_k, kmyt, lfac_kmyt, fin, A)
+}
+
nll_gdistremoval <- function(beta, n_param, yDistance, yRemoval, ysum, mixture, keyfun, Xlam, A, Xphi, Xrem, Xdist, db, a, u, w, pl, K, Kmin, threads) {
.Call(`_unmarked_nll_gdistremoval`, beta, n_param, yDistance, yRemoval, ysum, mixture, keyfun, Xlam, A, Xphi, Xrem, Xdist, db, a, u, w, pl, K, Kmin, threads)
}
@@ -33,6 +37,10 @@ nll_multinomPois <- function(beta, pi_fun, Xlam, Xlam_offset, Xdet, Xdet_offset,
.Call(`_unmarked_nll_multinomPois`, beta, pi_fun, Xlam, Xlam_offset, Xdet, Xdet_offset, y, navec, nP, nAP)
}
+nll_multmixOpen <- function(y, yt, Xlam, Xgam, Xom, Xp, Xiota, beta, bi, Xlam_offset, Xgam_offset, Xom_offset, Xp_offset, Xiota_offset, ytna, yna, lk, mixture, first, last, first1, M, T, J, R, delta, dynamics, fix, go_dims, immigration, I, I1, Ib, Ip, pi_fun, lfac_k, kmyt, lfac_kmyt, fin) {
+ .Call(`_unmarked_nll_multmixOpen`, y, yt, Xlam, Xgam, Xom, Xp, Xiota, beta, bi, Xlam_offset, Xgam_offset, Xom_offset, Xp_offset, Xiota_offset, ytna, yna, lk, mixture, first, last, first1, M, T, J, R, delta, dynamics, fix, go_dims, immigration, I, I1, Ib, Ip, pi_fun, lfac_k, kmyt, lfac_kmyt, fin)
+}
+
nll_nmixTTD <- function(beta, y, delta, W, V, pinds, mixture, tdist, N, J, K, naflag, threads) {
.Call(`_unmarked_nll_nmixTTD`, beta, y, delta, W, V, pinds, mixture, tdist, N, J, K, naflag, threads)
}
diff --git a/R/distsampOpen.R b/R/distsampOpen.R
index c74cd42..92588a4 100644
--- a/R/distsampOpen.R
+++ b/R/distsampOpen.R
@@ -229,7 +229,7 @@ distsampOpen <- function(lambdaformula, gammaformula, omegaformula, pformula,
yperm <- aperm(y, c(1,3,2))
nll <- function(parms) {
- .Call("nll_distsampOpen",
+ nll_distsampOpen(
yperm, yt,
Xlam, Xgam, Xom, Xsig, Xiota,
parms, beta_ind - 1,
@@ -239,8 +239,8 @@ distsampOpen <- function(lambdaformula, gammaformula, omegaformula, pformula,
delta, dynamics, survey, fix, go.dims, immigration,
I, I1, lik_trans$Ib, lik_trans$Ip,
a, u, w, db,
- keyfun, lfac.k, kmyt, lfac.kmyt, fin, A,
- PACKAGE = "unmarked")
+ keyfun, lfac.k, kmyt, lfac.kmyt, fin, A
+ )
}
if(missing(starts)){
diff --git a/R/multmixOpen.R b/R/multmixOpen.R
index 9fb9743..3d8eede 100644
--- a/R/multmixOpen.R
+++ b/R/multmixOpen.R
@@ -171,7 +171,7 @@ multmixOpen <- function(lambdaformula, gammaformula, omegaformula, pformula,
yperm <- aperm(yperm, c(3,2,1)) # fix asan problem
nll <- function(parms) {
- .Call("nll_multmixOpen",
+ nll_multmixOpen(
yperm, yt,
D$Xlam, D$Xgam, D$Xom, D$Xp, D$Xiota,
parms, beta_ind - 1,
@@ -180,8 +180,8 @@ multmixOpen <- function(lambdaformula, gammaformula, omegaformula, pformula,
lk, mixture, first - 1, last - 1, first1 - 1, M, T, J, R,
D$delta, dynamics, fix, D$go.dims, immigration,
I, I1, lik_trans$Ib, lik_trans$Ip,
- piFun, lfac.k, kmyt, lfac.kmyt, fin,
- PACKAGE = "unmarked")
+ piFun, lfac.k, kmyt, lfac.kmyt, fin
+ )
}
if(missing(starts)){
diff --git a/src/RcppExports.cpp b/src/RcppExports.cpp
index 87ca901..c69911a 100644
--- a/src/RcppExports.cpp
+++ b/src/RcppExports.cpp
@@ -58,6 +58,58 @@ BEGIN_RCPP
return rcpp_result_gen;
END_RCPP
}
+// nll_distsampOpen
+double nll_distsampOpen(arma::ucube y, arma::imat yt, arma::mat Xlam, arma::mat Xgam, arma::mat Xom, arma::mat Xsig, arma::mat Xiota, arma::vec beta, arma::umat bi, arma::colvec Xlam_offset, arma::colvec Xgam_offset, arma::colvec Xom_offset, arma::colvec Xsig_offset, arma::colvec Xiota_offset, arma::imat ytna, int lk, std::string mixture, Rcpp::IntegerVector first, Rcpp::IntegerVector last, int first1, int M, int T, arma::imat delta, std::string dynamics, std::string survey, std::string fix, std::string go_dims, bool immigration, arma::imat I, arma::imat I1, Rcpp::List Ib, Rcpp::List Ip, arma::mat a, arma::mat u, arma::vec w, arma::vec db, std::string keyfun, arma::vec lfac_k, arma::cube kmyt, arma::cube lfac_kmyt, arma::icube fin, arma::vec A);
+RcppExport SEXP _unmarked_nll_distsampOpen(SEXP ySEXP, SEXP ytSEXP, SEXP XlamSEXP, SEXP XgamSEXP, SEXP XomSEXP, SEXP XsigSEXP, SEXP XiotaSEXP, SEXP betaSEXP, SEXP biSEXP, SEXP Xlam_offsetSEXP, SEXP Xgam_offsetSEXP, SEXP Xom_offsetSEXP, SEXP Xsig_offsetSEXP, SEXP Xiota_offsetSEXP, SEXP ytnaSEXP, SEXP lkSEXP, SEXP mixtureSEXP, SEXP firstSEXP, SEXP lastSEXP, SEXP first1SEXP, SEXP MSEXP, SEXP TSEXP, SEXP deltaSEXP, SEXP dynamicsSEXP, SEXP surveySEXP, SEXP fixSEXP, SEXP go_dimsSEXP, SEXP immigrationSEXP, SEXP ISEXP, SEXP I1SEXP, SEXP IbSEXP, SEXP IpSEXP, SEXP aSEXP, SEXP uSEXP, SEXP wSEXP, SEXP dbSEXP, SEXP keyfunSEXP, SEXP lfac_kSEXP, SEXP kmytSEXP, SEXP lfac_kmytSEXP, SEXP finSEXP, SEXP ASEXP) {
+BEGIN_RCPP
+ Rcpp::RObject rcpp_result_gen;
+ Rcpp::RNGScope rcpp_rngScope_gen;
+ Rcpp::traits::input_parameter< arma::ucube >::type y(ySEXP);
+ Rcpp::traits::input_parameter< arma::imat >::type yt(ytSEXP);
+ Rcpp::traits::input_parameter< arma::mat >::type Xlam(XlamSEXP);
+ Rcpp::traits::input_parameter< arma::mat >::type Xgam(XgamSEXP);
+ Rcpp::traits::input_parameter< arma::mat >::type Xom(XomSEXP);
+ Rcpp::traits::input_parameter< arma::mat >::type Xsig(XsigSEXP);
+ Rcpp::traits::input_parameter< arma::mat >::type Xiota(XiotaSEXP);
+ Rcpp::traits::input_parameter< arma::vec >::type beta(betaSEXP);
+ Rcpp::traits::input_parameter< arma::umat >::type bi(biSEXP);
+ Rcpp::traits::input_parameter< arma::colvec >::type Xlam_offset(Xlam_offsetSEXP);
+ Rcpp::traits::input_parameter< arma::colvec >::type Xgam_offset(Xgam_offsetSEXP);
+ Rcpp::traits::input_parameter< arma::colvec >::type Xom_offset(Xom_offsetSEXP);
+ Rcpp::traits::input_parameter< arma::colvec >::type Xsig_offset(Xsig_offsetSEXP);
+ Rcpp::traits::input_parameter< arma::colvec >::type Xiota_offset(Xiota_offsetSEXP);
+ Rcpp::traits::input_parameter< arma::imat >::type ytna(ytnaSEXP);
+ Rcpp::traits::input_parameter< int >::type lk(lkSEXP);
+ Rcpp::traits::input_parameter< std::string >::type mixture(mixtureSEXP);
+ Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type first(firstSEXP);
+ Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type last(lastSEXP);
+ Rcpp::traits::input_parameter< int >::type first1(first1SEXP);
+ Rcpp::traits::input_parameter< int >::type M(MSEXP);
+ Rcpp::traits::input_parameter< int >::type T(TSEXP);
+ Rcpp::traits::input_parameter< arma::imat >::type delta(deltaSEXP);
+ Rcpp::traits::input_parameter< std::string >::type dynamics(dynamicsSEXP);
+ Rcpp::traits::input_parameter< std::string >::type survey(surveySEXP);
+ Rcpp::traits::input_parameter< std::string >::type fix(fixSEXP);
+ Rcpp::traits::input_parameter< std::string >::type go_dims(go_dimsSEXP);
+ Rcpp::traits::input_parameter< bool >::type immigration(immigrationSEXP);
+ Rcpp::traits::input_parameter< arma::imat >::type I(ISEXP);
+ Rcpp::traits::input_parameter< arma::imat >::type I1(I1SEXP);
+ Rcpp::traits::input_parameter< Rcpp::List >::type Ib(IbSEXP);
+ Rcpp::traits::input_parameter< Rcpp::List >::type Ip(IpSEXP);
+ Rcpp::traits::input_parameter< arma::mat >::type a(aSEXP);
+ Rcpp::traits::input_parameter< arma::mat >::type u(uSEXP);
+ Rcpp::traits::input_parameter< arma::vec >::type w(wSEXP);
+ Rcpp::traits::input_parameter< arma::vec >::type db(dbSEXP);
+ Rcpp::traits::input_parameter< std::string >::type keyfun(keyfunSEXP);
+ Rcpp::traits::input_parameter< arma::vec >::type lfac_k(lfac_kSEXP);
+ Rcpp::traits::input_parameter< arma::cube >::type kmyt(kmytSEXP);
+ Rcpp::traits::input_parameter< arma::cube >::type lfac_kmyt(lfac_kmytSEXP);
+ Rcpp::traits::input_parameter< arma::icube >::type fin(finSEXP);
+ Rcpp::traits::input_parameter< arma::vec >::type A(ASEXP);
+ rcpp_result_gen = Rcpp::wrap(nll_distsampOpen(y, yt, Xlam, Xgam, Xom, Xsig, Xiota, beta, bi, Xlam_offset, Xgam_offset, Xom_offset, Xsig_offset, Xiota_offset, ytna, lk, mixture, first, last, first1, M, T, delta, dynamics, survey, fix, go_dims, immigration, I, I1, Ib, Ip, a, u, w, db, keyfun, lfac_k, kmyt, lfac_kmyt, fin, A));
+ return rcpp_result_gen;
+END_RCPP
+}
// nll_gdistremoval
double nll_gdistremoval(arma::vec beta, arma::uvec n_param, arma::vec yDistance, arma::vec yRemoval, arma::mat ysum, int mixture, std::string keyfun, arma::mat Xlam, arma::vec A, arma::mat Xphi, arma::mat Xrem, arma::mat Xdist, arma::vec db, arma::mat a, arma::mat u, arma::vec w, arma::uvec pl, int K, arma::uvec Kmin, int threads);
RcppExport SEXP _unmarked_nll_gdistremoval(SEXP betaSEXP, SEXP n_paramSEXP, SEXP yDistanceSEXP, SEXP yRemovalSEXP, SEXP ysumSEXP, SEXP mixtureSEXP, SEXP keyfunSEXP, SEXP XlamSEXP, SEXP ASEXP, SEXP XphiSEXP, SEXP XremSEXP, SEXP XdistSEXP, SEXP dbSEXP, SEXP aSEXP, SEXP uSEXP, SEXP wSEXP, SEXP plSEXP, SEXP KSEXP, SEXP KminSEXP, SEXP threadsSEXP) {
@@ -193,6 +245,55 @@ BEGIN_RCPP
return rcpp_result_gen;
END_RCPP
}
+// nll_multmixOpen
+double nll_multmixOpen(arma::ucube y, arma::imat yt, arma::mat Xlam, arma::mat Xgam, arma::mat Xom, arma::mat Xp, arma::mat Xiota, arma::vec beta, arma::umat bi, arma::colvec Xlam_offset, arma::colvec Xgam_offset, arma::colvec Xom_offset, arma::colvec Xp_offset, arma::colvec Xiota_offset, arma::imat ytna, arma::ucube yna, int lk, std::string mixture, Rcpp::IntegerVector first, Rcpp::IntegerVector last, int first1, int M, int T, int J, int R, arma::imat delta, std::string dynamics, std::string fix, std::string go_dims, bool immigration, arma::imat I, arma::imat I1, Rcpp::List Ib, Rcpp::List Ip, std::string pi_fun, arma::vec lfac_k, arma::cube kmyt, arma::cube lfac_kmyt, arma::icube fin);
+RcppExport SEXP _unmarked_nll_multmixOpen(SEXP ySEXP, SEXP ytSEXP, SEXP XlamSEXP, SEXP XgamSEXP, SEXP XomSEXP, SEXP XpSEXP, SEXP XiotaSEXP, SEXP betaSEXP, SEXP biSEXP, SEXP Xlam_offsetSEXP, SEXP Xgam_offsetSEXP, SEXP Xom_offsetSEXP, SEXP Xp_offsetSEXP, SEXP Xiota_offsetSEXP, SEXP ytnaSEXP, SEXP ynaSEXP, SEXP lkSEXP, SEXP mixtureSEXP, SEXP firstSEXP, SEXP lastSEXP, SEXP first1SEXP, SEXP MSEXP, SEXP TSEXP, SEXP JSEXP, SEXP RSEXP, SEXP deltaSEXP, SEXP dynamicsSEXP, SEXP fixSEXP, SEXP go_dimsSEXP, SEXP immigrationSEXP, SEXP ISEXP, SEXP I1SEXP, SEXP IbSEXP, SEXP IpSEXP, SEXP pi_funSEXP, SEXP lfac_kSEXP, SEXP kmytSEXP, SEXP lfac_kmytSEXP, SEXP finSEXP) {
+BEGIN_RCPP
+ Rcpp::RObject rcpp_result_gen;
+ Rcpp::RNGScope rcpp_rngScope_gen;
+ Rcpp::traits::input_parameter< arma::ucube >::type y(ySEXP);
+ Rcpp::traits::input_parameter< arma::imat >::type yt(ytSEXP);
+ Rcpp::traits::input_parameter< arma::mat >::type Xlam(XlamSEXP);
+ Rcpp::traits::input_parameter< arma::mat >::type Xgam(XgamSEXP);
+ Rcpp::traits::input_parameter< arma::mat >::type Xom(XomSEXP);
+ Rcpp::traits::input_parameter< arma::mat >::type Xp(XpSEXP);
+ Rcpp::traits::input_parameter< arma::mat >::type Xiota(XiotaSEXP);
+ Rcpp::traits::input_parameter< arma::vec >::type beta(betaSEXP);
+ Rcpp::traits::input_parameter< arma::umat >::type bi(biSEXP);
+ Rcpp::traits::input_parameter< arma::colvec >::type Xlam_offset(Xlam_offsetSEXP);
+ Rcpp::traits::input_parameter< arma::colvec >::type Xgam_offset(Xgam_offsetSEXP);
+ Rcpp::traits::input_parameter< arma::colvec >::type Xom_offset(Xom_offsetSEXP);
+ Rcpp::traits::input_parameter< arma::colvec >::type Xp_offset(Xp_offsetSEXP);
+ Rcpp::traits::input_parameter< arma::colvec >::type Xiota_offset(Xiota_offsetSEXP);
+ Rcpp::traits::input_parameter< arma::imat >::type ytna(ytnaSEXP);
+ Rcpp::traits::input_parameter< arma::ucube >::type yna(ynaSEXP);
+ Rcpp::traits::input_parameter< int >::type lk(lkSEXP);
+ Rcpp::traits::input_parameter< std::string >::type mixture(mixtureSEXP);
+ Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type first(firstSEXP);
+ Rcpp::traits::input_parameter< Rcpp::IntegerVector >::type last(lastSEXP);
+ Rcpp::traits::input_parameter< int >::type first1(first1SEXP);
+ Rcpp::traits::input_parameter< int >::type M(MSEXP);
+ Rcpp::traits::input_parameter< int >::type T(TSEXP);
+ Rcpp::traits::input_parameter< int >::type J(JSEXP);
+ Rcpp::traits::input_parameter< int >::type R(RSEXP);
+ Rcpp::traits::input_parameter< arma::imat >::type delta(deltaSEXP);
+ Rcpp::traits::input_parameter< std::string >::type dynamics(dynamicsSEXP);
+ Rcpp::traits::input_parameter< std::string >::type fix(fixSEXP);
+ Rcpp::traits::input_parameter< std::string >::type go_dims(go_dimsSEXP);
+ Rcpp::traits::input_parameter< bool >::type immigration(immigrationSEXP);
+ Rcpp::traits::input_parameter< arma::imat >::type I(ISEXP);
+ Rcpp::traits::input_parameter< arma::imat >::type I1(I1SEXP);
+ Rcpp::traits::input_parameter< Rcpp::List >::type Ib(IbSEXP);
+ Rcpp::traits::input_parameter< Rcpp::List >::type Ip(IpSEXP);
+ Rcpp::traits::input_parameter< std::string >::type pi_fun(pi_funSEXP);
+ Rcpp::traits::input_parameter< arma::vec >::type lfac_k(lfac_kSEXP);
+ Rcpp::traits::input_parameter< arma::cube >::type kmyt(kmytSEXP);
+ Rcpp::traits::input_parameter< arma::cube >::type lfac_kmyt(lfac_kmytSEXP);
+ Rcpp::traits::input_parameter< arma::icube >::type fin(finSEXP);
+ rcpp_result_gen = Rcpp::wrap(nll_multmixOpen(y, yt, Xlam, Xgam, Xom, Xp, Xiota, beta, bi, Xlam_offset, Xgam_offset, Xom_offset, Xp_offset, Xiota_offset, ytna, yna, lk, mixture, first, last, first1, M, T, J, R, delta, dynamics, fix, go_dims, immigration, I, I1, Ib, Ip, pi_fun, lfac_k, kmyt, lfac_kmyt, fin));
+ return rcpp_result_gen;
+END_RCPP
+}
// nll_nmixTTD
double nll_nmixTTD(const arma::vec beta, const arma::vec y, const arma::vec delta, const arma::mat W, const arma::mat V, const arma::umat pinds, const std::string mixture, const std::string tdist, int N, int J, int K, const arma::vec naflag, int threads);
RcppExport SEXP _unmarked_nll_nmixTTD(SEXP betaSEXP, SEXP ySEXP, SEXP deltaSEXP, SEXP WSEXP, SEXP VSEXP, SEXP pindsSEXP, SEXP mixtureSEXP, SEXP tdistSEXP, SEXP NSEXP, SEXP JSEXP, SEXP KSEXP, SEXP naflagSEXP, SEXP threadsSEXP) {
@@ -399,19 +500,19 @@ END_RCPP
RcppExport SEXP getDetVecs(void *, void *, void *, void *, void *);
RcppExport SEXP getSingleDetVec(void *, void *, void *);
-RcppExport SEXP nll_distsampOpen(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *);
-RcppExport SEXP nll_multmixOpen(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *);
RcppExport SEXP nll_occuMulti(void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *, void *);
static const R_CallMethodDef CallEntries[] = {
{"_unmarked_get_lik_trans", (DL_FUNC) &_unmarked_get_lik_trans, 2},
{"_unmarked_get_mlogit", (DL_FUNC) &_unmarked_get_mlogit, 4},
{"_unmarked_nll_distsamp", (DL_FUNC) &_unmarked_nll_distsamp, 10},
+ {"_unmarked_nll_distsampOpen", (DL_FUNC) &_unmarked_nll_distsampOpen, 42},
{"_unmarked_nll_gdistremoval", (DL_FUNC) &_unmarked_nll_gdistremoval, 20},
{"_unmarked_nll_gdistsamp", (DL_FUNC) &_unmarked_nll_gdistsamp, 23},
{"_unmarked_nll_gmultmix", (DL_FUNC) &_unmarked_nll_gmultmix, 17},
{"_unmarked_nll_gpcount", (DL_FUNC) &_unmarked_nll_gpcount, 15},
{"_unmarked_nll_multinomPois", (DL_FUNC) &_unmarked_nll_multinomPois, 10},
+ {"_unmarked_nll_multmixOpen", (DL_FUNC) &_unmarked_nll_multmixOpen, 39},
{"_unmarked_nll_nmixTTD", (DL_FUNC) &_unmarked_nll_nmixTTD, 13},
{"_unmarked_nll_occu", (DL_FUNC) &_unmarked_nll_occu, 11},
{"_unmarked_nll_occuMS", (DL_FUNC) &_unmarked_nll_occuMS, 15},
@@ -420,11 +521,9 @@ static const R_CallMethodDef CallEntries[] = {
{"_unmarked_nll_occuTTD", (DL_FUNC) &_unmarked_nll_occuTTD, 17},
{"_unmarked_nll_pcount", (DL_FUNC) &_unmarked_nll_pcount, 11},
{"_unmarked_nll_pcountOpen", (DL_FUNC) &_unmarked_nll_pcountOpen, 35},
- {"getDetVecs", (DL_FUNC) &getDetVecs, 5},
- {"getSingleDetVec", (DL_FUNC) &getSingleDetVec, 3},
- {"nll_distsampOpen", (DL_FUNC) &nll_distsampOpen, 42},
- {"nll_multmixOpen", (DL_FUNC) &nll_multmixOpen, 39},
- {"nll_occuMulti", (DL_FUNC) &nll_occuMulti, 16},
+ {"getDetVecs", (DL_FUNC) &getDetVecs, 5},
+ {"getSingleDetVec", (DL_FUNC) &getSingleDetVec, 3},
+ {"nll_occuMulti", (DL_FUNC) &nll_occuMulti, 16},
{NULL, NULL, 0}
};
diff --git a/src/nll_distsampOpen.cpp b/src/nll_distsampOpen.cpp
index 9b7482f..0f289af 100644
--- a/src/nll_distsampOpen.cpp
+++ b/src/nll_distsampOpen.cpp
@@ -1,78 +1,31 @@
-#include "nll_distsampOpen.h"
+#include <RcppArmadillo.h>
+#include <float.h>
+#include "tranprobs.h"
+#include "distprob.h"
+#include "distr.h"
using namespace Rcpp;
using namespace arma;
-SEXP nll_distsampOpen( SEXP y_, SEXP yt_, SEXP Xlam_, SEXP Xgam_, SEXP Xom_,
- SEXP Xsig_, SEXP Xiota_,
- SEXP beta_, SEXP beta_ind_,
- SEXP Xlam_offset_,
- SEXP Xgam_offset_, SEXP Xom_offset_, SEXP Xsig_offset_, SEXP Xiota_offset_,
- SEXP ytna_, SEXP lk_, SEXP mixture_, SEXP first_, SEXP last_, SEXP first1_,
- SEXP M_, SEXP T_, SEXP delta_, SEXP dynamics_, SEXP survey_,
- SEXP fix_, SEXP go_dims_, SEXP immigration_, SEXP I_, SEXP I1_, SEXP Ib_,
- SEXP Ip_,
- SEXP a_, SEXP u_, SEXP w_, SEXP db_, SEXP keyfun_,
- SEXP lfac_k_, SEXP kmyt_, SEXP lfac_kmyt_, SEXP fin_, SEXP A_ ) {
+// [[Rcpp::export]]
+double nll_distsampOpen(arma::ucube y, arma::imat yt,
+ arma::mat Xlam, arma::mat Xgam, arma::mat Xom, arma::mat Xsig, arma::mat Xiota,
+ arma::vec beta, arma::umat bi,
+ arma::colvec Xlam_offset, arma::colvec Xgam_offset, arma::colvec Xom_offset,
+ arma::colvec Xsig_offset, arma::colvec Xiota_offset,
+ arma::imat ytna, int lk, std::string mixture,
+ Rcpp::IntegerVector first, Rcpp::IntegerVector last, int first1,
+ int M, int T, arma::imat delta, std::string dynamics, std::string survey,
+ std::string fix, std::string go_dims, bool immigration,
+ arma::imat I, arma::imat I1, Rcpp::List Ib, Rcpp::List Ip,
+ arma::mat a, arma::mat u, arma::vec w, arma::vec db, std::string keyfun,
+ arma::vec lfac_k, arma::cube kmyt, arma::cube lfac_kmyt, arma::icube fin, arma::vec A ) {
//Indices
- int lk = as<int>(lk_);
Rcpp::IntegerVector N = seq_len(lk)-1;
- int M = as<int>(M_);
- int T = as<int>(T_);
- ucube y = as<ucube>(y_);
- imat yt = as<imat>(yt_);
- Rcpp::IntegerVector first(first_);
- Rcpp::IntegerVector last(last_);
- int first1 = as<int>(first1_);
- arma::imat ytna = as<arma::imat>(ytna_); // y[i,,t] are all NA
- arma::imat delta = as<arma::imat>(delta_);
-
- vec lfac_k = as<vec>(lfac_k_);
- cube lfac_kmyt = as<cube>(lfac_kmyt_);
- cube kmyt = as<cube>(kmyt_);
- icube fin = as<icube>(fin_);
- imat I = as<arma::imat>(I_);
- imat I1 = as<arma::imat>(I1_);
- List Ib(Ib_);
- List Ip(Ip_);
int nrI = I.n_rows;
int nrI1 = I1.n_rows;
- //Distance sampling info
- mat a = as<mat>(a_);
- mat u = as<mat>(u_);
- vec w = as<vec>(w_);
- vec db = as<vec>(db_);
- vec A = as<vec>(A_);
-
- //Covariate matrices
- mat Xlam = as<mat>(Xlam_);
- mat Xgam = as<mat>(Xgam_);
- mat Xom = as<mat>(Xom_);
- mat Xsig = as<mat>(Xsig_);
- mat Xiota = as<mat>(Xiota_);
-
- //Offsets
- colvec Xlam_offset = as<colvec>(Xlam_offset_);
- colvec Xgam_offset = as<colvec>(Xgam_offset_);
- colvec Xom_offset = as<colvec>(Xom_offset_);
- colvec Xsig_offset = as<colvec>(Xsig_offset_);
- colvec Xiota_offset = as<colvec>(Xiota_offset_);
-
- //Model types
- std::string keyfun = as<std::string>(keyfun_);
- std::string mixture = as<std::string>(mixture_);
- std::string dynamics = as<std::string>(dynamics_);
- std::string fix = as<std::string>(fix_);
- std::string go_dims = as<std::string>(go_dims_);
- bool immigration = as<bool>(immigration_);
- std::string survey = as<std::string>(survey_);
-
- //Parameters
- vec beta = as<vec>(beta_);
- umat bi = as<umat>(beta_ind_);
-
//Lambda
vec beta_lam = beta.subvec(bi(0,0), bi(0,1));
vec lam = exp(Xlam*beta_lam + Xlam_offset) % A;
@@ -328,5 +281,5 @@ SEXP nll_distsampOpen( SEXP y_, SEXP yt_, SEXP Xlam_, SEXP Xgam_, SEXP Xom_,
}
- return wrap(-ll);
+ return -ll;
}
diff --git a/src/nll_distsampOpen.h b/src/nll_distsampOpen.h
deleted file mode 100644
index 00850fd..0000000
--- a/src/nll_distsampOpen.h
+++ /dev/null
@@ -1,19 +0,0 @@
-#ifndef _unmarked_NLL_DISTSAMPOPEN_H
-#define _unmarked_NLL_DISTSAMPOPEN_H
-
-#include <RcppArmadillo.h>
-#include <float.h>
-#include "tranprobs.h"
-#include "distprob.h"
-#include "distr.h"
-
-RcppExport SEXP nll_distsampOpen( SEXP y_, SEXP yt_, SEXP Xlam_, SEXP Xgam_, SEXP Xom_,
- SEXP Xsig_, SEXP Xiota_, SEXP beta_, SEXP beta_ind_,
- SEXP Xlam_offset_, SEXP Xgam_offset_, SEXP Xom_offset_, SEXP Xsig_offset_,
- SEXP Xiota_offset_, SEXP ytna_, SEXP lk_, SEXP mixture_, SEXP first_,
- SEXP last_, SEXP first1_, SEXP M_, SEXP T_, SEXP delta_, SEXP dynamics_,
- SEXP survey_, SEXP fix_, SEXP go_dims_, SEXP immigration_, SEXP I_,
- SEXP I1_, SEXP Ib_, SEXP Ip_, SEXP a_, SEXP u_, SEXP w_, SEXP db_,
- SEXP keyfun_, SEXP lfac_k_, SEXP kmyt_, SEXP lfac_kmyt_, SEXP fin_, SEXP A_ ) ;
-
-#endif
diff --git a/src/nll_multmixOpen.cpp b/src/nll_multmixOpen.cpp
index 2e4c480..6fb755a 100644
--- a/src/nll_multmixOpen.cpp
+++ b/src/nll_multmixOpen.cpp
@@ -1,73 +1,31 @@
-#include "nll_multmixOpen.h"
+#include <RcppArmadillo.h>
+#include <float.h>
+#include "tranprobs.h"
+#include "distr.h"
+#include "pifun.h"
+#include "utils.h"
using namespace Rcpp;
using namespace arma;
-SEXP nll_multmixOpen( SEXP y_, SEXP yt_, SEXP Xlam_, SEXP Xgam_, SEXP Xom_,
- SEXP Xp_, SEXP Xiota_,
- SEXP beta_, SEXP beta_ind_,
- SEXP Xlam_offset_,
- SEXP Xgam_offset_, SEXP Xom_offset_, SEXP Xp_offset_, SEXP Xiota_offset_,
- SEXP ytna_, SEXP yna_, SEXP lk_, SEXP mixture_,
- SEXP first_, SEXP last_, SEXP first1_,
- SEXP M_, SEXP T_, SEXP J_, SEXP R_, SEXP delta_, SEXP dynamics_,
- SEXP fix_, SEXP go_dims_, SEXP immigration_,
- SEXP I_, SEXP I1_, SEXP Ib_, SEXP Ip_, SEXP pi_fun_,
- SEXP lfac_k_, SEXP kmyt_, SEXP lfac_kmyt_, SEXP fin_) {
+// [[Rcpp::export]]
+double nll_multmixOpen(arma::ucube y, arma::imat yt,
+ arma::mat Xlam, arma::mat Xgam, arma::mat Xom, arma::mat Xp, arma::mat Xiota,
+ arma::vec beta, arma::umat bi,
+ arma::colvec Xlam_offset, arma::colvec Xgam_offset, arma::colvec Xom_offset,
+ arma::colvec Xp_offset, arma::colvec Xiota_offset,
+ arma::imat ytna, arma::ucube yna, int lk, std::string mixture,
+ Rcpp::IntegerVector first, Rcpp::IntegerVector last, int first1,
+ int M, int T, int J, int R, arma::imat delta, std::string dynamics,
+ std::string fix, std::string go_dims, bool immigration,
+ arma::imat I, arma::imat I1, Rcpp::List Ib, Rcpp::List Ip, std::string pi_fun,
+ arma::vec lfac_k, arma::cube kmyt, arma::cube lfac_kmyt, arma::icube fin) {
//Indices
- int lk = as<int>(lk_);
Rcpp::IntegerVector N = seq_len(lk)-1;
- int M = as<int>(M_);
- int T = as<int>(T_);
- int J = as<int>(J_);
- int R = as<int>(R_);
- ucube y = as<ucube>(y_);
- imat yt = as<imat>(yt_);
- Rcpp::IntegerVector first(first_);
- Rcpp::IntegerVector last(last_);
- int first1 = as<int>(first1_);
- arma::imat ytna = as<arma::imat>(ytna_); // y[i,,t] are all NA
- ucube yna = as<ucube>(yna_);
- arma::imat delta = as<arma::imat>(delta_);
-
- vec lfac_k = as<vec>(lfac_k_);
- cube lfac_kmyt = as<cube>(lfac_kmyt_);
- cube kmyt = as<cube>(kmyt_);
- icube fin = as<icube>(fin_);
- imat I = as<arma::imat>(I_);
- imat I1 = as<arma::imat>(I1_);
- List Ib(Ib_);
- List Ip(Ip_);
int nrI = I.n_rows;
int nrI1 = I1.n_rows;
- //Covariate matrices
- mat Xlam = as<mat>(Xlam_);
- mat Xgam = as<mat>(Xgam_);
- mat Xom = as<mat>(Xom_);
- mat Xp = as<mat>(Xp_);
- mat Xiota = as<mat>(Xiota_);
-
- //Offsets
- colvec Xlam_offset = as<colvec>(Xlam_offset_);
- colvec Xgam_offset = as<colvec>(Xgam_offset_);
- colvec Xom_offset = as<colvec>(Xom_offset_);
- colvec Xp_offset = as<colvec>(Xp_offset_);
- colvec Xiota_offset = as<colvec>(Xiota_offset_);
-
- //Model types
- std::string mixture = as<std::string>(mixture_);
- std::string pi_fun = as<std::string>(pi_fun_);
- std::string dynamics = as<std::string>(dynamics_);
- std::string fix = as<std::string>(fix_);
- std::string go_dims = as<std::string>(go_dims_);
- bool immigration = as<bool>(immigration_);
-
- //Parameters
- vec beta = as<vec>(beta_);
- umat bi = as<umat>(beta_ind_);
-
//Lambda
vec beta_lam = beta.subvec(bi(0,0), bi(0,1));
vec lam = exp(Xlam*beta_lam + Xlam_offset);
@@ -322,5 +280,5 @@ SEXP nll_multmixOpen( SEXP y_, SEXP yt_, SEXP Xlam_, SEXP Xgam_, SEXP Xom_,
}
- return wrap(-ll);
+ return -ll;
}
diff --git a/src/nll_multmixOpen.h b/src/nll_multmixOpen.h
deleted file mode 100644
index 50fc2f1..0000000
--- a/src/nll_multmixOpen.h
+++ /dev/null
@@ -1,23 +0,0 @@
-#ifndef _unmarked_NLL_MULTMIXOPEN_H
-#define _unmarked_NLL_MULTMIXOPEN_H
-
-#include <RcppArmadillo.h>
-#include <float.h>
-#include "tranprobs.h"
-#include "distr.h"
-#include "pifun.h"
-#include "utils.h"
-
-RcppExport SEXP nll_multmixOpen( SEXP y_, SEXP yt_, SEXP Xlam_, SEXP Xgam_, SEXP Xom_,
- SEXP Xp_, SEXP Xiota_,
- SEXP beta_, SEXP beta_ind_,
- SEXP Xlam_offset_,
- SEXP Xgam_offset_, SEXP Xom_offset_, SEXP Xp_offset_, SEXP Xiota_offset_,
- SEXP ytna_, SEXP yna_, SEXP lk_, SEXP mixture_,
- SEXP first_, SEXP last_, SEXP first1_,
- SEXP M_, SEXP T_, SEXP J_, SEXP R_, SEXP delta_, SEXP dynamics_,
- SEXP fix_, SEXP go_dims_, SEXP immigration_,
- SEXP I_, SEXP I1_, SEXP Ib_, SEXP Ip_, SEXP pi_fun_,
- SEXP lfac_k_, SEXP kmyt_, SEXP lfac_kmyt_, SEXP fin_) ;
-
-#endif