JuliaSmoothOptimizers/QRMumps.jl

New initialization methods

Closed this issue · 5 comments

dpo commented

Internally, QRMumps stores its matrix in COO format. In NLPModels and NLSModels, we obtain Jacobians and Hessians in COO format. However, the only QRMumps.jl constructor that takes a matrix as argument requires it to be in CSC format.

I suggest adding two new constructors:

  1. One that takes in rows, cols and vals;
  2. One that takes in a SparseMatrixCOO.

In addition, when only vals changes (but rows and cols stay the same), is there a way to update the internal spmat structure instead of allocating a new one?

Yes, it's a good idea.
We should add these two constructors.

I implemented a routine qrm_update! to not allocate a new spmat:
https://jso.dev/QRMumps.jl/dev/api/#QRMumps.qrm_update!

dpo commented

I missed qrm_update!(). It would be great if it would also take vals or a SparseMatrixCOO.

Yes, I agree.
Temporary you can do spmat.val .= vals.

I would like to compile the recent release 3.1.0 with Yggdrasil + LBT before, but I haven't had much time to work on that recently.

dpo commented

Done in #91.

I will tag a new release after #93.