Releases: nlmixr2/rxode2
v5.0.1
-
Change random number generation to always return doubles internally as well as no longer take a rxode2 individual structure, this is inferred by the thread number.
-
Change string representation of model variables to internal binary C code (to avoid macOS M1 sanitizer issues with strings).
-
Allow user to change the internal serialization type with options("rxode2.serialize.type"); Currently can be one of “qs2”, “qdata”, “base”, “bzip2” and “xz”. This option must be set before rxode2 is loaded, once loaded it keeps the option initially set. This is set to xz which is from base R, but could be sped up with either "qs2" (more future proof) or "qdata" (a bit faster).
-
Removed lsoda CDIR$ IVDEP directive, as requested by CRAN.
What's Changed
- Fix CRAN issues by @mattfidler in #963
- Use (void*) references for rxbinom() and other random number gen by @mattfidler in #964
- Change random number generators to not include the rxode2 individual patient structure. by @mattfidler in #967
- Add/Use bzip2 by @mattfidler in #968
- Use xz as default serialization/compression by @mattfidler in #969
Full Changelog: v5.0.0...v5.0.1
v5.0.0
rxode2 5.0.0
-
Better error for
tad(depot)whenlinCmt()doesn't include a
depot compartment. -
Remove
qsdependency; For rxode2 ui objects, use lists instead of
serialized objects. The internal C++ code still generatesqs2
sterilization objects (#950) -
Fixed translation for censoring/limit to account for a possible
CMTvariable before theCENS/LIMITcolumn (#951, #952) -
Added
dmexpit()for getting the diagonal Jacobian. -
Added special handling of
mixestandmixunif.
What's Changed
- CRAN release by @mattfidler in #941
- Add special handling of mixest and mixunif by @mattfidler in #944
- add dmexpit() by @mattfidler in #946
- Fix grammar in error messages: "in not in" → "is not in" by @Copilot in #953
- Checks for censoring based on name by @mattfidler in #952
- Use qs2 instead of qs by @mattfidler in #957
New Contributors
- @Copilot made their first contribution in #953
Full Changelog: v4.1.1...v5.0.0
v4.1.1
rxode2 4.1.1
-
Stacking for multiple-endpoint
ipredSimnow matches
multiple-endpointsim; Issue #929 -
Fix occasional
$propsthat threw an error with empty properties
(when using properties liketad0()); Issue #924 -
Allow mixture models
mix()to be loaded withrxS()as a step to
support mixtures in nlmixr2's focei; Issue #933. -
Identify the correct transformation type for
iovvariables (#936) -
Fix multiple compartment simulation edge cases where simulations
were not being performed (#939) -
When referencing
cmtin models, the variable is forced to beCMT
(related to #939)
v4.1.0
-
Change rxui
$evaluation when completing in rstudio, fixes strange calculations popping up inrstudio(#909) -
Add orphan
rxode2model unloading when usingrxUnloadAll(), and change the return type to always be a boolean. -
Add
assertRxUiIovNoCorto assert IOVs have no correlations in them. -
Handle the levels for inter-occasion variability in the ui better (#614)
-
Create a new function
mix()that will allow mixture models to be simulated in preparation of mixture support innlmixr2. This allows mixture models to be specified as:v = mix(v1, p1, v2, p2, v3)where the probability of havingv=v1is modeled byp1,v=v2is modeled byp2, andv=v3is modeled by probability1-p1-p2. -
Created new functions
mlogit()andmexpit()to convert probabilities used in mixture models to log-scaled values.mlogit()converts the probabilities to log-scaled values (using root-finding) andmexpit()converts the log values into probabilities. The equation for the conversion of log to probabilities is$p_i = \frac{exp(x_i)}{1+\sum_{j=1}^{N-1}exp(x_j)}$ -
Added new assertion
assertRxUiNoMixwhich throws an error when a mixture model is present (iemix()) -
Fix for label processing when calling
rxode2(uiModel)
What's Changed
- 909 rstudio 2025 by @mattfidler in #910
- Try unloading orphan rxode2 dlls by @mattfidler in #911
- Add assertion for new nlmixr2est by @mattfidler in #913
- iov bad cov by @mattfidler in #915
- Fix and test for #919 by @mattfidler in #920
- 918 mix by @mattfidler in #921
- 922 probit probit inv by @mattfidler in #923
Full Changelog: v4.0.3...v4.1.0
v4.0.3
rxode2 4.0.3
- For CRAN's m1 ASAN checks of nlmixr2est, loading and unloading the
same dll or by deleting the dll and recreating the exact same code,
and then loading the dll will cause the ASAN check to flag an odr
violation. Because of this, a mechanism to not unload dlls has been
added. This allows the next version ofnlmixr2estto not have
issues with Mac m1 san checks.
v4.0.2
rxode2 4.0.2
-
At the request of CRAN, be a bit more careful so that names are not
duplicated. Now include the md5 hash, a global counter and random 4
digit and number combination. In addition add the name of the
original function so it will be easier to debug in the future. -
Fall back to data.frame
rbindwhenrbind.rxSolve()fails
What's Changed
- New ODR, as indirectly request by CRAN. by @mattfidler in #904
Full Changelog: v4.0.1...v4.0.2
v4.0.1
rxode2 4.0.1
-
Add the ability to use
rbindfor solvedrxode2frames. -
Fix
LTOissue for_rxode2_calcDerived
What's Changed
- Remove more tests for CRAN by @mattfidler in #898
- fix typo by @leovuong in #900
- Another rbind instance by @mattfidler in #899
- Cran update by @mattfidler in #902
Full Changelog: v4.0.0...v4.0.1
v4.0.0
rxode2 4.0.0
-
Add more information errors about
NAs during solving. -
Fix
rxDerived()for mixed vector and non-vector input. -
Fix model variables for
alag(cmt)when they are defined before
d/dt()orlinCmt() -
Just in time use of
state.ignorein the model variables, fixes
negative length error observed in #857. -
Fix steady state bug with time-varying covariates. Now the
covariates are inferred at the time of the steady state (instead of
searching through the subject based on the projected time). -
Rework the linear solved systems to use the wnl solutions, and
threaded linear systems solve (for non-gradient solutions). This new
method closes a variety of linear compartment model bugs (#261,
#272, #441, #504, #564, #717, #728, #827, and #855) -
Added new types of bounds for event tables:
-
3 point bounds
et(list(c(low, mid, high)))when specified this way,
they will not change. Perfect for use withbabelmixr2'sPopED(#862,
#863, #854) -
Intervals simulated by normal values instead of uniform. In this
case the first seen interval will be 3 elements with NA at the end
et(list(c(mean, sd, NA), c(mean, sd))), and the other elements
can simply be 2 declaring thec(mean, sd) -
Of course the uniform windows of
et(list(c(low, high)))still work -
Currently these different types of windows cannot be mixed.
-
-
Add ability to pipe a list or named numeric as an eta with
%>% ini(~eta) -
Added a fix for event tables where expanding IDs in non-sequential
order. In particular if the first ID is not the minimum ID when expanding
the first event table, the smallest ID was not in the output table. Now
the smallest ID is in the event table. (Fixes #878, #869, #870) -
Added ability to pipe
ini()orlotri(), or any other expression
that can be converted to an ini withas.ini(). Also allowsini()
expressions to be converted to lotri withas.lotri(). Fixes #871 -
Added new type of variability expression for simulation and
estimation with focei and likelihood related methods:+var(). This
changes standard deviation parameters to variance parameters. -
Added new type of endpoint expression for focei estimation
+dv(). This only transforms the data and not the predictions. I
can only see it being useful in model linearization. -
Bug fix for parameters that are in both input (
$params) and output
($lhs) that respects the order of the$lhsdeclaration (Fixes
#876) -
Add
rxFixResto literally fix the residual estimates in a model (#889) -
Now modeled duration of 0 is treated as a bolus dose (#892)
What's Changed
- Add piping tests and piping for eta names by @mattfidler in #860
- Create 3 sampling window examples by @mattfidler in #863
- Update continuous integration by @billdenney in #864
- Copilot suggested fix for et() by @mattfidler in #869
- Add piping for lotri and ini expressions by @mattfidler in #872
- 873 var by @mattfidler in #874
- Fix rxode2 lhs order when a covariate and output match by @mattfidler in #877
- 880 dv by @mattfidler in #881
- 827 linear compartment solutions by @mattfidler in #856
- Pre-declare theta for linCmtB by @mattfidler in #883
- Better error; difficult to test by @mattfidler in #888
- add/test rxFixRes() by @mattfidler in #890
- Handle dur=0 as a bolus by @mattfidler in #893
- fix typo by @leovuong in #896
New Contributors
Full Changelog: v3.0.4...v4.0.0
v3.0.4
rxode2 3.0.4
-
Fix for iov simulation (#842)
-
Fix for
rxnbinom()called directly from R (#847) and expand it to
match more close with R'srnbinom()including allowing namedmu=
calls. In rxode2 ui, these are also now allowed.
What's Changed
- rebuild documentation by @billdenney in #830
- Create a rxUi method for digest by @mattfidler in #838
- Fix nesting by @mattfidler in #844
- Fixes for rxnbinom by @mattfidler in #849
Full Changelog: v3.0.3...v3.0.4
v3.0.3
rxode2 3.0.3
-
Add
logit/expitnamed expressions, that islogit(x, high=20)
becomeslogit(x, 0, 20)in ui models. -
Updated random ui models like
rxnorm(sd=10)to accept complex
numeric expressions likerxnorm(sd=10+1). -
Updated random ui models to accept complex non-numeric expressions
likerxnorm(sd=a+b) -
Rework the
tad()and related functions so they use the same
interface as compartments (this way they do not depend on the order
of compartments); See #815. For mu-referencing, Also allow dummy
variables to ignore state requirements (iepodo(depot)in a single
line will not error when parsing mu-referenced equations). -
Add
getRxNparsto api. This allows the development version of
babelmixr2to better check what model is loaded and unload/reload
as necessary. -
Add
rxUdfUiControl()to rxode2 user function to get control
information from something likenlmixr2 -
Bug fix for tracking time after dose when dosing to 2 compartments
occur at the exact same time (#804, #819) -
Change
transit()model so that it usestad0(),podo0()and
related functions for a bit more stable simulation and estimation -
Fix compile flags to work with BH 1.87 (#826)
What's Changed
- Add getRxNpars to api by @mattfidler in #802
- add rxUdfUiControl() by @mattfidler in #807
- White list PopOS with isystem by @mattfidler in #809
- simplify repeated ifelse by @billdenney in #800
- Add NN activation fns by @mattfidler in #811
- Create R NN activation interface by @mattfidler in #813
- Fix parsing for tad() and podo() by @mattfidler in #817
- Change the tlast handling to be based on tlast per cmt by @mattfidler in #819
- Named logit/expit by @mattfidler in #824
- Fix BH flags to work with BH 1.87.0 by @mattfidler in #826
Full Changelog: v3.0.2...v3.0.3