From da69c43ce14f70ac0efa7a925daab425863bb59f Mon Sep 17 00:00:00 2001 From: "Matthew L. Fidler" Date: Wed, 29 Nov 2023 18:21:17 -0600 Subject: [PATCH] Fix iCov --- src/rxData.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/rxData.cpp b/src/rxData.cpp index cb942d115..59c01c49a 100644 --- a/src/rxData.cpp +++ b/src/rxData.cpp @@ -2708,6 +2708,7 @@ struct rxSolve_t { bool convertInt = false; bool throttle = false; int maxItemsPerId = 0; + bool hasICov = false; }; SEXP rxSolve_(const RObject &obj, const List &rxControl, const Nullable &specParams, @@ -2835,6 +2836,9 @@ static inline void rxSolve_ev1Update(const RObject &obj, int nobs = asInt(etE["nobs"], "nobs"); if (nobs == 0){ // KEEP/DROP? + if (rxSolveDat->hasICov) { + Rf_warning(R_NilValue, "iCov ignored when there are no samples/observations in the input dataset"); + } List ev1a = etTrans(as(ev1), obj, rxSolveDat->hasCmt, false, false, true, R_NilValue, rxControl[Rxc_keepF], @@ -4675,6 +4679,8 @@ SEXP rxSolve_(const RObject &obj, const List &rxControl, rxSolve_t rxSolveDat0; rxSolve_t* rxSolveDat = &rxSolveDat0; RObject object; + rxSolveDat->hasICov = Rf_isNull(rxControl[Rxc_iCov]); + rxSolveDat->updateObject = asBool(rxControl[Rxc_updateObject], "updateObject"); rxSolveDat->isRxSolve = rxIs(obj, "rxSolve"); rxSolveDat->isEnvironment = rxIs(obj, "environment");