help-gsl
[Top][All Lists]
Advanced

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

[Help-gsl] Complex QR decomposition


From: Christian Krueger
Subject: [Help-gsl] Complex QR decomposition
Date: Mon, 27 Nov 2017 15:34:43 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0

Hi,

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:
https://github.com/mangroveck/gsl-qr-complex-devel.git

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
Makefile.am

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.

Christian




reply via email to

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