Re: [eigen] Numerical Stability Question |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Numerical Stability Question
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Tue, 30 Jun 2009 00:21:12 +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=YHAUPdbktpfgHJpiK3EXzh2Pqf+dIsi8uV+Wy5eEp5w=; b=BxyZM1LE45aKiyAYU+nbjxzS16cack9yITPaEWnHha2rMGaF85vzxk41iaWCl0R+PN M0wa28OBUhCNhY8snI4kDFUJ1NdWaf77wjcOQ0Tx7/6JlDASAikVGBUNjHqy1lmBvF/B uP4U83jUQoAbZyN/ncvUMhRVKOaWQluryS6y4=
- 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=mYR2OWMkgDifU3bZ005QGHcMYoG5WS483PIk5JGZn+n6DucPMQY6f/m7ufy2AC7naT 2LpzaYqR3nrfw1gnbEceUC3K3Vs2VtAmIW/k7rZK15kBhVl7lviyuM5LRjb8c7pw3VO4 u0rO084S8YuHAIHqdUv6zDSLuGxe9idN+P7VA=
Hi,
2009/6/30 Eric Chu <eytchu@xxxxxxxxx>:
> Hi Eigen Folks,
>
> First off, thanks for a (ridiculously) awesome library. I've managed to
> solve some robust least-squares problems in less than 2ms. Kudos to the
> developers.
Thanks :)
> In my test code, I've got the following loop
>
> for (int i = 0; i < NUM_RUNS; i ++) {
> lh.linhuber(A, b, x, 1);
It's hard to say anything without knowing what's inside linhuber(). At
least, what decomposition(s) is it using ?
Some of our decompositions aren't top quality in 2.0. That's
especially the case of the SVD. We're working on this for 2.1.
>
> cout << endl;
> cout << "Run: " << i+1 << endl;
> cout << x << endl;
> }
>
> Basically, it uses the same data to solve the least squares problem a couple
> of times. Running the same "type" of code in Matlab gives the same answer
> each time. However, when I run my program, I get the following output
> (assuming I run 5 times).
>
> Run: 1
> 56.71
> -20.04
> -3606
>
> Run: 2
> 56.82
> -19.98
> -3616
>
> Run: 3
> 56.69
> -20.05
> -3604
>
> Run: 4
> 56.67
> -20.05
> -3603
>
> Run: 5
> 56.68
> -20.05
> -3604
I'm not aware of anything involving random numbers in any of our
decompositions algorithms, so I'm as surprised as you are. Again it's
hard to say anything more without looking at linhuber().
Cheers,
Benoit