[Feature Request] Low Rank Dispatch rules (Woodbury identity, Trace rules, etc)
Opened this issue ยท 0 comments
๐ Feature Request
Dispatch rules for Product[Dense,Dense]
or Sum[Product[Dense,Dense], Diagonal]
.
Examples:
Woodbury identity
Let the Woodbury matrix identity be given by:
Cyclic trace property:
Given the cyclic trace property:
The idea is that for a generic Product[LinearOperator,LinearOperator]
where
Pitch
Introduce rules such as:
@dispatch
def inv(A: Sum[Product[Dense,Dense], Diagonal], **kwargs):
...
@dispatch(cond=product_faster_if_rearranged)
def trace(A: Product):
...
Additional context
Plum-dispatch can work a little different than one would expect for parametric types.
Some things need to be spelled out more explicitly (and possibly even changes may need to be made to cola-plum-dispatch)