Sameer, Do you have any advice here?

On Tue, Mar 5, 2024 at 1:00 AM Stéphane Mottelet <[email protected]>
wrote:

> Hello,
>
> I have a code using regular SparseQR working fine (within a Scilab
> gateway):
>
>      typedef Eigen::SparseMatrix<double, 0x1, int> RealSparse_t;
>
>      types::Sparse *pSpA = in[0]->getAs<types::Sparse>();
>      types::Sparse::RealSparse_t* sp0 = pSpA->matrixReal;
>
>      Eigen::SparseQR <types::Sparse::RealSparse_t,
> Eigen::COLAMDOrdering<int> > qr;
>      qr.compute(*sp0);
>
>      pOutR = new types::Sparse(new
> types::Sparse::RealSparse_t(qr.matrixR()),NULL);
>      out.push_back(pOutR);
>
>      Eigen::SparseMatrix<double> Q;
>      Q = qr.matrixQ();
>      pOutQ = new types::Sparse(new types::Sparse::RealSparse_t(Q),NULL);
>      out.push_back(pOutQ);
>
> I wanted to test SuiteSparse SPQR instead, but the mechanism to recover
> the Householdr reflection list qr.matrixQ() as a regular matrix does not
> seem to be supported, as the almost same as above following code
> (Eigen::SparseQR is replaced by Eigen::SPQR and header include (not
> shown here) is also updated)
>
>      typedef Eigen::SparseMatrix<double, 0x1, int> RealSparse_t;
>
>      types::Sparse *pSpA = in[0]->getAs<types::Sparse>();
>      types::Sparse::RealSparse_t* sp0 = pSpA->matrixReal;
>
>      Eigen::SPQR <types::Sparse::RealSparse_t> qr;
>      qr.compute(*sp0);
>
>      pOutR = new types::Sparse(new
> types::Sparse::RealSparse_t(qr.matrixR()),NULL);
>      out.push_back(pOutR);
>
>      Eigen::SparseMatrix<double> Q;
>      Q = qr.matrixQ();
>      pOutQ = new types::Sparse(new types::Sparse::RealSparse_t(Q),NULL);
>      out.push_back(pOutQ);
>
> does not compile and yields the following error (SPQR updated code
> compiles and runs fine when extracting R only):
>
> error: no viable overloaded '='
>
>   Q = qr.matrixQ();
>
> How can I recover the Q matrix when using SuiteSparse SPQR ?
>
> Thanks for your help.
>
> --
> Stéphane Mottelet
> Ingénieur de recherche HDR
> EA 4297 Transformations Intégrées de la Matière Renouvelable
> Département Génie des Procédés Industriels
> Sorbonne Universités - Université de Technologie de Compiègne
> CS 60319, 60203 Compiègne cedex
> Tel : +33(0)344234688 <+33%203%2044%2023%2046%2088>
> http://www.utc.fr/~mottelet
>
>
>
>

Reply via email to