Skip to content

Separate Algorithm and Driver - part II (SVD)#189

Open
lkdvos wants to merge 9 commits intomainfrom
ld-algmerge2
Open

Separate Algorithm and Driver - part II (SVD)#189
lkdvos wants to merge 9 commits intomainfrom
ld-algmerge2

Conversation

@lkdvos
Copy link
Member

@lkdvos lkdvos commented Mar 16, 2026

Follow-up on #178 to improve on #176.

This consists of quite a few more opinionated changes that I think are warranted but might not be completely fair.

I have renamed a bunch of the LAPACK-like functions across YALAPACK/YAROCSOLVER/YACUSOLVER in an attempt to make life slightly easier, and simply merge all of the implementations into a single big @eval loop.

In the meantime, I also changed the GLA implementations to actually copy in-place, as this is something that has come up quite a few times already and I think overall this is probably more convenient anyways.

The jacobi-svd algorithm that only worked for LAPACK with m >= n is now also implemented for m < n by making use of the same svd_via_adjoint pattern that was already present in some of the GPU solvers, which is now also shared.


I think overall this manages to delete quite a bit of code, but the eval loops are also somewhat hard to follow so I'm not sure if this is all that much "simpler" implementation-wise, but at least it does allow selecting DivideAndConquer in a driver-agnostic way.

@algdef Jacobi

"""
SVDPolar(; [driver], kwargs...)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This might become confusing with PolarViaSVD 😄 .

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do you think it would make sense to make this SVDViaPolar instead? I'd definitely also be okay with that.

lkdvos and others added 2 commits March 16, 2026 21:19
Co-authored-by: Jutho <Jutho@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants