# CUDSS adjoint factorization

**URL:** https://discourse.julialang.org/t/cudss-adjoint-factorization/131841
**Category:** Numerics
**Tags:** package
**Created:** [August 25, 2025, 1:04pm UTC](https://discourse.julialang.org/t/cudss-adjoint-factorization/131841 "2025-08-25T13:04:30Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![Gabrio\_Rizzuti](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gabrio_rizzuti/32/212164_2.png) [@Gabrio\_Rizzuti](https://discourse.julialang.org/u/Gabrio_Rizzuti)
#### Post date: [August 25, 2025, 1:04pm UTC](https://discourse.julialang.org/t/cudss-adjoint-factorization/131841/1 "2025-08-25T13:04:30Z")

</div>

Hello!

My question is relatively straightforward.

I’d like to use the LU factorization of the _adjoint_ of a sparse matrix of type CuSparseMatrixCSR with the package CUDSS.jl, e.g. `lu(A')`, by only having access to `lu(A)`.

I’m looking for a method such as  
`ldiv!(X::StridedVecOrMat{T}, adjlu::AdjointFactorization{T,<:UmfpackLU{T}}, B::StridedVecOrMat{T}) where {T<:UMFVTypes}`,  
which exists for “conventional” sparse matrices. In this case, everything is abstracted away so that `lu(A')=lu(A)'`.

I understand this high-level feature may not be implemented just yet, but I wonder if there is a simple workaround to achieve the same.

---

<div class="post-metadata">

### Author: ![amontoison](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/amontoison/32/218741_2.png) [@amontoison](https://discourse.julialang.org/u/amontoison)
#### Post date: [September 3, 2025, 5:39pm UTC](https://discourse.julialang.org/t/cudss-adjoint-factorization/131841/2 "2025-09-03T17:39:00Z")

</div>

Hello @Gabrio_Rizzuti!

Do you need both `lu(A')` and `lu(A)` or only one of them?  
If you only need one of them, you just need to transform you matrix in CuSparseMatrixCSC and pass the matrix as before to cuDSS (CSR format).  
It will factorize `A'`.  
Otherwise, I don’t see any linear algebra trick because the factorization is a “block-box”, we don’t have access to the factors.

I suggest to request this feature and send an email to [cuDSS-EXTERNAL-Group@nvidia.com](mailto:cuDSS-EXTERNAL-Group@nvidia.com)  
It will be easy to support it in the Julia interface once it is available.

---

<div class="post-metadata">

### Author: ![Gabrio](https://avatars.discourse-cdn.com/v4/letter/g/e47c2d/32.png) [@Gabrio](https://discourse.julialang.org/u/Gabrio)
#### Post date: [September 3, 2025, 8:54pm UTC](https://discourse.julialang.org/t/cudss-adjoint-factorization/131841/3 "2025-09-03T20:54:13Z")

</div>

Hello @amontoison, thanks for your reply. Unfortunately I need both, so we’ll have to wait for Nvidia.
