[SciPy-dev] help: wrapping generalized symmetric evp functions
Robert Cimrman
cimrman3@ntc.zcu...
Thu Apr 10 03:34:15 CDT 2008
Nathan Bell wrote:
> On Tue, Apr 8, 2008 at 8:14 AM, Robert Cimrman <cimrman3@ntc.zcu.cz> wrote:
>> There could be even proper solver classes (LinearSolver,
>> EigenvalueSolver, etc.) with a common interface in each solver family.
>> Below, as an example, is the code we use in sfepy. As you can see, the
>> solver classes have only the __init__ method (can be used e.g. to
>> pre-factorize a matrix in the case of a linear solver) and the __call__
>> method (application of the solver). Would it be interesting to have
>> something in that spirit in scipy?
>>
>> class Solver( Struct ):
>> def __init__( self, conf, **kwargs ):
>> Struct.__init__( self, conf = conf, **kwargs )
>> def __call__( self, **kwargs ):
>> print 'called an abstract Solver instance!'
>> raise ValueError
>>
> <snip>
>
> Robert, I like the idea of having an abstract interface to the various
> solvers/eigensolvers. I'm currently battling with this in PyAMG for
> various coarse-grid solvers and relaxation methods.
>
> We should definitely pursue this idea further. In the meantime, we
> should strive to make the arguments to the individual solvers as
> uniform as possible (e.g. 'tol', 'maxiter', preconditioners, etc).
> This will make LinearSolver() etc. easier to create.
We could make a proposal on the wiki, let's say
http://scipy.org/SolversProposal? If all are ok with this name, I will
initiallize the page with what we have in sfepy, to have something to
start with.
best,
r.
More information about the Scipy-dev
mailing list