Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Have statespace.Preconditioner subclasses implement LinearOperator and remove statespace.Preconditioner #446

Open
1 of 3 tasks
JonathanWenger opened this issue Jun 30, 2021 · 1 comment
Labels
good first issue Good for newcomers linalg Issues related to linear algebra randprocs Issues related to random processes refactoring Refactoring of existing functionality

Comments

@JonathanWenger
Copy link
Contributor

JonathanWenger commented Jun 30, 2021

In a Nutshell

The statespace module has a general abstract class Preconditioner which implements a inverse method. This duplicates functionality of LinearOperator with different method naming.

In Detail

Coordinate change transformations in state-space models used as preconditioners have their own abstract class in statespace. This class only implements __call__ and inverse and does not inherit from LinearOperator, which has .inv(). Preconditioners will be used more widely in the library and if they warrant a common base class should be handled as LinearOperators.

ToDo

  • Determine what function the Preconditioner class serves and whether it has any functionality beyond LinearOperator
  • Make statespace.Preconditioner subclasses inherit from LinearOperator
  • Remove statespace.Preconditioner
@JonathanWenger JonathanWenger added refactoring Refactoring of existing functionality linalg Issues related to linear algebra statespace labels Jun 30, 2021
@pnkraemer
Copy link
Collaborator

Regarding the first point: they only implement coordinate changes. The LinearOperator interface should suffice. If preconditioner-operators (or coordinate-change operators) are to be used more widely in probnum, we can move it to linops.

@JonathanWenger JonathanWenger changed the title Move statespace.Preconditioner into linops and inherit from LinearOperator Have statespace.Preconditioner subclasses implement LinearOperator and remove statespace.Preconditioner Jul 5, 2021
@JonathanWenger JonathanWenger added the good first issue Good for newcomers label Mar 13, 2022
@pnkraemer pnkraemer added randprocs Issues related to random processes and removed statespace labels Mar 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers linalg Issues related to linear algebra randprocs Issues related to random processes refactoring Refactoring of existing functionality
Projects
None yet
Development

No branches or pull requests

2 participants