Changelog
Source:NEWS.md
lotri 1.0.0
CRAN release: 2024-09-18
- Added a new way of specifying lotri matrices:
Before you could specify matrices as:
Now you can specify per row as:
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 byoption(lotri.nameEst=10)
to increase it to be named above10x10
. If you do not like the naming you can also disable it withoption(lotri.nameEst=TRUE)
, or if you always want it on you can use `option(lotri.nameEst=FALSE)
lotri 0.4.4
- Bug fix for non-standard evaluation where you take the numeric vector from the evaluating environment when using
lotri(n1+n2~omega)
lotri 0.4.3
CRAN release: 2023-03-20
- Bug fix for etas that were not named correctly for large order problems
lotri 0.4.2
CRAN release: 2022-06-18
- Bug fix for etas that are inconsistently numbered
- Add case for empty initialization block
lotri 0.4.0
CRAN release: 2022-04-15
Can convert lotri objects to data-frames similar to the internal data frame used in
nlmixr()
; These can then be converted back withas.lotri()
Added the ability to add estimates to a lotri object. These estimates are an attached
data.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 matrixAdd 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
Added
lotriIsBlockMat()
to check to see if a matrix is in a block diagonal matrix form.
lotri 0.3.1
CRAN release: 2021-01-05
- Change errors/warnings to use
call.=FALSE
or equivalent. - Refactor C code to reduce complexity
- Change C code to play nicely with
rchk
- Allow
lotriMat
to mix named and unnamed matrices; When mixed, an unnamed matrix will be returned.
lotri 0.2.2
CRAN release: 2020-05-29
- Bug fix for conditional matrices
- Now accessing
$lower
and$upper
gives default values even if it wasn’t specified. - Can change the default conditional matrix to some other value like “id”
- Can add properties to matrix->lotri by as.lotri(matrix, lower=3, default=“id”)
- Dropped
Matrix
import and addedlotriMat
to create banded matrices (faster thanMatrix
for now included repeated matrices withlist(matrix, rep)
). - Bug fix for default properties when both
upper
andlower
bounds are specified