- 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