Re: [eigen] Re: LU precision tuning |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Re: LU precision tuning
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Mon, 11 May 2009 16:08:05 +0200
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=E1fEvW65/WDFUAkTTgBIxp684T98f8x07/MFtUIxUak=; b=VbntYCYGQQWI8td7muXwBGyqmyDlKRR6UclC5kwR6zeOPTjyJ5BKFGWAkbL/BRjYaM DsxfZmJPhZzu5/Ezr/CdzvuXX+3UzbjQD4aLJ1hARkpS056acboKvAXJDOs+dEfOEW0C JB58x0vnA+VTTcSBIMazpy3sQNSbqApB/BJ/I=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=ddELkeafxE6dx1p01RgDWarV09ilK9G8REmCgs6kfI6cym2attxXfMnB48yqfizodx XM/pwMeeTaRROsEjuw8qi2xNxz76lp9eoZr+KnWMPDtvOUetwhxwadiVHcRPvKOmNDl5 utxM+umcHvWouP6K6R+f1xx/UYXo6ygU9xFhA=
2009/5/11, Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
>> I'll commit that tomorrow, just a slight
>> modification of your patch to default to "epsilon*size".
>
> You have to take care here. In case the user passes his own precision,
> it needs to ensured that that will be used instead of the pre-defined
> epsilon*size. The default parameter for the ctor can not be set to the
> size of the matrix and thus I would set it to zero and in case
> precision<=zero is passed to the function we set
> precision=precision*size.
Yep, we'll have 2 separate ctors, but they'll both call a common
compute() function.
>
>> Also, there's a problem in your create...() function for rectangular
>> sizes: it's d that should be rectangular, not a; the matrix m you
>> create is always square as a product of 3 square matrices. I'll take
>> care of that.
>
> I don't get it. I create 'a' being row \times cols and 'd' being cols
> \times 1 and finally 'b' cols \times cols. Then, after multiplication
> you arrive at
>
> m = a * d.asDiagonal() * b
> (rows cols) * (cols cols) * (cols cols) = (rows cols)
>
Aha, the misunderstanding comes from an error in our current QR.
Normally, in the QR decomposition, Q is always square, it's R that
adapts to the rectangular size.
http://en.wikipedia.org/wiki/QR_decomposition#Rectangular_matrix
But here in our QR, it's Q that adapts to the rectangular size.
Another problem --> so i wouldn't currently consider it reliable for
non-square matrices.
(I mark that on my TODO...)
Cheers,
Benoit