octave-maintainers
[Top][All Lists]
Advanced

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

Re: [CHANGESET] gmres (Last review of PROJECTS file before release)


From: bpabbott
Subject: Re: [CHANGESET] gmres (Last review of PROJECTS file before release)
Date: Thu, 10 Feb 2011 16:47:23 +0000 (GMT)

On Feb 10, 2011, at 10:39 AM, "c." <address@hidden> wrote:


On 5 Feb 2011, at 15:08, address@hidden wrote:

> 2/4/11
>
> The PROJECTS file was put up on the Octave Wiki by Jordi so that anyone
> could cross off or add new items to the list. I will take it down tomorrow
> and commit the changes back to Mercurial.
>
> However, it would be useful if developers could actually take a look at the
> list. I'm pretty sure some of the items are no longer necessary. The very
> first item, for example, is to improve logm. But, I happen to know that
> Jaroslav, M. Caliari, R.T. Guy, and myself already did quite a bit of work
> to convert it from using eig to a Schur decomposition and Pade Approximants.
>
> The link to the wiki page is http://wiki.octave.org/wiki.pl?Projects
>
> --Rik

Hi,

Looking at the PROJECTS I see that gmres is listed there as a missing function to be implemented.
As I had in Octave-Forge a version of the algorithm I had implemented some time ago with help from Jaroslav
I changed it a bit to make its interface more matlab compatible and prepared a changeset against tip.

The changeset also adds the mgorth function that implements modified Gram-Schmidt orthogonalization,
it was initially a private function but Jaroslav pointed out that it may be useful in its own right.

Could someone pleas check if this looks OK and maybe push it?

c.
 
I took a quick glance. It looks to me like the example needs to be fixed.

+##   [x, resids] = pgmres (A, b, m, rtol, maxit, P)
+##
+##   Solve @code{A x = b} using the Preconditioned GMRES iterative method
+##   with restart ak.a. PGMRES(m).
+##
+##   @itemize @minus
+##   @item @var{m} is the restart parameter, if not given or set to [] the default value @code{numel (b)} is used.
+##   @item @var{rtol} is the relative tolerance, if not given or set to [] the default value 1e-6 is used.
+##   @item @var{maxit} the maximum number of outer iterations, if not given or set to [] the default value @code{min (10, numel (b) / restart)} is used.
+##   @item @var{P} is the preconditioner, @code{P = M1 * M2}. 
+##   @end itemize

Also, please include some additional deftypefnx's after the deftypefn.

+## @deftypefnx {Function File} @
+##   address@hidden, @var{flag}, @var{relres}, @var{iter}, @var{resvec}] =} pgmres (@var{A}, @var{b})
+## @deftypefnx {Function File} @
+##   address@hidden, @var{flag}, @var{relres}, @var{iter}, @var{resvec}] =} pgmres (@var{A}, @var{b}, @var{m})
+## @deftypefnx {Function File} @
+##   address@hidden, @var{flag}, @var{relres}, @var{iter}, @var{resvec}] =} pgmres (@var{A}, @var{b}, @var{m}, @var{rtol})
+## @deftypefnx {Function File} @
+##   address@hidden, @var{flag}, @var{relres}, @var{iter}, @var{resvec}] =} pgmres (@var{A}, @var{b}, @var{m}, @var{rtol}, @var{maxit})
+## @deftypefnx {Function File} @
+##   address@hidden, @var{flag}, @var{relres}, @var{iter}, @var{resvec}] =} pgmres (@var{A}, @var{b}, @var{m}, @var{rtol}, @var{maxit}, @var{P})
+## @deftypefnx {Function File} @
+##   address@hidden, @var{flag}, @var{relres}, @var{iter}, @var{resvec}] =} pgmres (@var{A}, @var{b}, @var{m}, @var{rtol}, @var{maxit}, @var{M1}, @var{M2})

Ben


reply via email to

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