|[eigen] Re: solve with and without check|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen <eigen@xxxxxxxxxxxxxxxxxxx>
- Subject: [eigen] Re: solve with and without check
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Mon, 24 Aug 2009 14:05:30 -0400
- 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=ASwFF9CQ+8+VK/lETA96K9bdEQTm+nedDs8qf6TQ0/M=; b=XElWdInpmr9bAVStBSXe1gG74h6h3g+ptJ1eReGgw1PPSQSkYhnQGgJWCizXtX6WUu 5nPzaAhpRNGphTXWKnRjLXuz1+TnWw0pQtR04FAclzGfkNsOLirN+I4exJwZ8iiLlhQQ AQshVUsRcF68j5++BE5T8NXca8VTgP5O5/1/o=
- 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=gx2wFLgH+4JOu6vuqGT41MoZCQgVTvSMfb8qPDKXDOcn75LAmdZhv09QnbcZBmDYTQ 0drCOUUR09b0W2m/lKODrE8ggQkmcWxEm9fEStxK4mphhHtxAOW0TqNrI6hYwbXHzKST bY1Okpuae3HEg/I9uF0OXd9exxwlGhqO+AM/w=
Some more thoughts:
there's also the option of removing the solve-with-check functionality
altogether. Does it have a use in practice?
I'm leaving now until Saturday
2009/8/24 Benoit Jacob <jacob.benoit.1@xxxxxxxxx>:
> In various decompositions (LU, rank-revealing QR,...) we have a
> solve() method that checks for the existence of a solution; if no
> solution exists, it returns false and leaves the result undefined.
> This is really needed as trying to get a solution nevertheless can
> result in inf/nan values making the solve() function taking much
> longer to return.
> But in most cases, the user just knows that a solution is meant to
> exist and he wants to get a solution even if it's only half-decent,
> rather than having to check the return value of solve() and deal with
> error cases. This is especially true as it's very difficult to check
> for existence without paying a very high price, basically our
> triangular solvers do not do any check (required, i guess, to make
> them fast) so the check we do is rather fragile.
> This also isn't addressed by letting the user set manually the
> precision level: the solve() method would need a separate precision
> level than the compute() method, this is very cumbersome.
> --> i propose the following change:
> in all decompositions that have a solve() checking for existence,
> let's rename solve() to solveWithCheck() (or whatever native English
> speakers prefer... perhaps trySolve() ? checkSolve() ? )
> then let's add a method solve() that doesn't do any check, making it
> the responsibility of the caller that a decent solution exists.