Releases: nlmixr2/lotri
v1.0.0
- Added a new way of specifying lotri matrices:
Before you could specify matrices as:
m <- lotri({
a + b ~ c(1,
0.5, 1)
})
Now you can specify per row as:
m <- lotri({
a ~ 1
b ~ c(0.5, 1)
})
This form is now the default when converting from a matrix to a lotri
expression. In addition if the matrix is large enough (by default a
5x5 matrix), these would be named when changing them to an expression:
m <- lotri({
a ~ c(a=1)
b ~ c(a=0.5, b=1)
c ~ c(a=0.5, b=0.5, c=1)
d ~ c(a=0.5, b=0.5, c=0.5, d=1)
e ~ c(a=0.5, b=0.5, c=0.5, d=1,
e=1)
})
This way changing to an R parsed expression will be rendered in a more
human readable format.
You can change the deparsing options that are used by default with
lotri
with options(lotri.plusNames=TRUE)
which prefers the a+b+c
syntax when deparsing. Otherwise, the line format is used by default.
The dimension number before naming the values in the line-format can
be controlled with options(lotri.nameEst=2)
or some other dimension.
-
New option of
cov
added which check for matrix suitability for
covariance matrix. Whencov=TRUE
, off-diagonal elements in
covariance matrices may no longer be nonzero if the diagonal value
is zero (rxode2#481). This will also check tht the matrix is
non-positive definite on the non-diagonal terms.cov
can also be a
function to allow correction of the matrix to a positive definite
matrix automatically. -
New option of
rcm
; When enabled, andlotriIsBlockMat()
is not
true,lotri()
will permute the matrix to try to get a banded
matrix using the Reverse Cuthill McKee algorithm. -
Change internals for
lotri
so that newrxode2
is no longer
required to be binary linked tolotri
. -
Add new function
rcm()
which permutes the matrix to get a band
matrix (if possible). This uses the Reverse Reverse Cuthill McKee
(RCM) algorithm. -
Moved
nmNearPD()
to this package and renamed tolotriNearPD()
.
In addition to moving, this function will now retain the dimension
names. -
New exported function
lotriAsExpression()
which has more fine
control thanas.expression()
and will work without converting the
matrix to a lotri form. This by default uses the new line form, but
can be changed back to theoption(lotri.plusNames=TRUE)
. Also be
default it will name each element in a matrix when the dimension is
above5x5
. You can change that number by
option(lotri.nameEst=10)
to increase it to be named above
10x10
. If you do not like the naming you can also disable it with
option(lotri.nameEst=TRUE)
, or if you always want it on you can use `option(lotri.nameEst=FALSE)
What's Changed
- 17 length of dimnames 1 not equal to array extent by @mattfidler in #18
- Add website to DESCRIPTION by @olivroy in #19
- Update continuous integration by @billdenney in #21
- Off-diagonal values may no longer be nonzero if the diagonal is zero for a covariance matrix by @billdenney in #20
- Feature Request: Remove binary linkages to
rxode2
by @mattfidler in #13 - Feature request: reorder to better block matrices by @mattfidler in #22
- Move nearPD here by @mattfidler in #24
- Add rcm to lotri ability by @mattfidler in #26
- Add different way of defining matrices by @mattfidler in #27
- With new engine, dimnames() parser issue by @mattfidler in #28
- Fix known elements in dsl by @mattfidler in #29
New Contributors
Full Changelog: v0.4.3...v1.0.0
v0.4.3
What's Changed
- More informative error by @mattfidler in #11
- 15 lotriaslotriasdataframelotri by @mattfidler in #16
Full Changelog: v0.4.2...v0.4.3
v0.4.2
lotri 0.4.2
- Bug fix for etas that are inconsistently numbered
- Add case for empty initialization block
What's Changed
- 8 labels a bit off by @mattfidler in #9
New Contributors
- @mattfidler made their first contribution in #9
Full Changelog: v0.4.0...v0.4.2
v0.4.0
lotri 0.4.0
-
Can convert lotri objects to data-frames similar to the internal
data frame used innlmixr()
; These can then be converted back with
as.lotri()
-
Added the ability to add estimates to a lotri object. These
estimates are an attacheddata.frame
to the original lotri matrix.
You can extract them or drop them with the functionlotriEst()
-
Allow specifying fixed components in
lotri()
matrices. -
Add
cov
,cor
,sd
,var
, andchol
options for matrix
specification. The final matrix will always be the covariance matrix -
Add function
lotriMatInv()
which takes a symmetric block matrix
and converts it into a list of matrices. An sort of inverse
operation oflotriMat()
-
Add error for
lotri(~c(40))
-
Added ability to flag
fixed
andunfixed
components in a
matrix. Currentlylotri
only supports one type. -
For the
lotriFix
objects, ie those created with population types
of estimates and covariance estimates, allow them to be converted to
an equivalent expression withas.expression()
for the lotri object
andlotriDataFrameToLotriExpression()
for thedata.frame
-
Split tests and make them silent by @billdenney in #1
-
Update roxygen2 version by @billdenney in #5
New Contributors
- @billdenney made their first contribution in #1
Full Changelog: https://github.com/nlmixr2/lotri/commits/v0.4.0