[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug-gsl] [bug #52540] Complex QR decomposition

From: Patrick Alken
Subject: [Bug-gsl] [bug #52540] Complex QR decomposition
Date: Mon, 27 Nov 2017 16:40:00 -0500 (EST)
User-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36


                 Summary: Complex QR decomposition
                 Project: GNU Scientific Library
            Submitted by: psa
            Submitted on: Mon 27 Nov 2017 09:39:58 PM UTC
                Category: None
                Severity: 3 - Normal
        Operating System: 
                  Status: None
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any



from chri =dot= krue =at= gmail =dot= com


I was looking for the QR decomposition for complex-valued matrices. As
GSL does not provide this yet, I have copied the code for the
real-valued QR and modified it to handle complex-valued matrices.

As I've seen in the archive that this feature has been requested a few
times already, I am happy to share it with everyone who wants to use it.
My github repository can be found at:

The file linalg/qrc.c is essentially a copy of the file linalg/qr.c and
provides a bunch of gsl_linalg_complex_QR_* functions. I've had to add
"_complex" to the function calls and sometimes take the conjugate of tau
when calling the householder-functions but the whole process was fairly
straight-forward and the decomposition works.

* My repository also includes my patch for the
gsl_linalg_complex_householder_hv() function to handle the N=1 case.
(I've just reported the bug on the bug-list).
* I've added various tests to the file linalg/test.c to test the new
gsl_linalg_complex_QR_* functions (in the same style as the tests for
the real-valued QR decomp).
* I've also adjusted the header file linalg/gsl_linalg.h and the file

The only exception is the function gsl_linalg_complex_QR_update() which
I haven't adjusted yet as it requires Givens rotations and they don't
take complex values yet (within GSL). All other functionality from qr.c
is now available for complex values, too.

If it helps, I'm happy for this code to be included in GSL.



Reply to this item at:


  Message sent via/by Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]