Matrix Factorizations for LinearOperator
s
#569
Labels
feature request
Requests for features to be implemented
improvement
Improvements of existing functionality
linops
Issues related to linear operators
Is your feature request related to a problem? Please describe.
Currently, the implementation of
Normal
contains a lot of logic concerning the efficient computation of Cholesky factorizations ofLinearOperator
s withKronecker
andSymmetricKronecker
structure.This adds unnecessary complexity and is out of place in the implementation of a
RandomVariable
.We should add a
cholesky
method to theLinearOperator
, which then takes care of the specific factorizations in its subclasses.Give an example use case.
Describe the solution you'd like.
LinearOperator.cholesky(lower: bool = True)
is_symmetric
,is_positive_definite
,is_{lower,upper}_triangular
, see Matrix Property System forLinearOperator
s #571InverseLinearOperator
should usecholesky
iflinop.symmetric
andlinop.positive_definite
areTrue
LinearOperator.pivoted_lu
is_{lower,upper}_triangular
,is_orthogonal
, see Matrix Property System forLinearOperator
s #571InverseLinearOperator
should useLinearOperator.plu
LinearOperator.{log}det
should useLinearOperator.plu
as a fallbackLinearOperator.svd
is_orthogonal
, see Matrix Property System forLinearOperator
s #571LinearOperator.eigvals
fromsvd
iflinop.symmetric
areTrue
LinearOperator.eigh
fromsvd
iflinop.symmetric
areTrue
LinearOperator.eig
is_symmetric
,is_orthogonal
, see Matrix Property System forLinearOperator
s #571LinearOperator.{qr, lq}
is_{lower,upper}_triangular
,is_orthogonal
, see Matrix Property System forLinearOperator
s #571LinearOperator.{log}det
fallback implementationlinop.cholesky
iflinop.symmetric
isTrue
linop.pivoted_lu
Additional context
Some of the properties from #571 are needed to implement these factorizations.
The text was updated successfully, but these errors were encountered: