[Top][All Lists]

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

Re: [Help-gsl] Complex QR decomposition

From: Patrick Alken
Subject: Re: [Help-gsl] Complex QR decomposition
Date: Sun, 7 Jun 2020 21:34:57 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.8.0

Christian and all,

  Again sorry for taking so long to working on your patch. Your Level-2
based complex QR has been added to GSL, and I have also just added the
recursive Level-3 complex QR algorithm today. I recommend using this
interface instead of the Level-2 version for speed.

So now GSL has fast (Level-3) versions of LU, Cholesky and QR, and each
has real and complex interfaces.


On 6/3/20 4:52 AM, Christian Krueger wrote:
> Hi Patrick,
> I don't want to insist on getting my patches introduced. But as I have,
> meanwhile, learned a bit more about git and such, I thought I would make
> my patch more easily accessible. I've merged my changes onto the current
> git commit (as of today -- bb7f532c) and attach two clean patches (one
> for the Householder fix and one for the complex QR) that could be applied.
> Cheers,
> Christian
> On 11/27/17 10:34 PM, Patrick Alken wrote:
>> Hi Christian,
>>   This should be very useful. I will take a look at your code as soon
>> as I can, though it may be a while as I am very busy with other things
>> at the moment. I will add this to the bug tracker so it isn't lost.
>> Thanks,
>> Patrick
>> On 11/27/2017 08:34 AM, Christian Krueger wrote:
>>> 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:
>>> 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.
>>> Christian

reply via email to

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