[SciPy-dev] genetic algorithm, number theory, filterdesign,zerofinding

pearu at scipy.org pearu at scipy.org
Thu Apr 11 15:19:06 EDT 2002


On Thu, 11 Apr 2002, Chuck Harris wrote:

> > How to you feel about Fortran? Actually C is also fine for me.
> 
> I don't mind Fortran, and for some things I think it is superior to C,
> but I find that C compilers are easier to come by on all platforms; I
> don't much enjoy cygwin. Also, at this point in time C is more
> familiar to me. For the root finding, it shouldn't be too hard to keep
> track of reference counting.

I don't think that SciPy can be freed from Fortran stuff. There is
integrate module that uses odepack, and ATLAS hardly covers all the LAPACK
at this moment. Etc. So I find Fortran contributions acceptable.
But it is true that C codes are easier to re-use in other projects.

> > My point is that we should use f2py to generate the 
> > interfaces to these C
> > (or Fortran, if you have positive feelings about it) routines.
> > It has an advantage that you don't need to struggle with the
> > details of Python C/API (reference counting, argument checks, etc.)
> > All this is supported in f2py generated interfaces. Using 
> > f2py saves time
> > and bugs. And the f2py generated extension modules are really easy to
> > maintain.
> > 

> I pretty much agree with this. Perhaps it would be nice to have a c2py
> interface also.

Yes, but it is a project for the future. And f2py pretty much covers also
c2py.

> > If you are not familiar with f2py then we can cooperate. You give me
> > a native C function and I'll give you an interface for calling this C
> > function from Python in no time.
> > 
> 
> Hmm... f2py handles this?

Yes, it does (cblas,clapack are wrapped with f2py, for example). The
signature files may look Fortran but there is actually only little
difference in wrapping Fortran or C functions. And there are some  
additional hooks available for the signature files that ease overcoming
these small differences (intent(c), fortranname, callstatement,
callprotoargument etc. statements).
Of course, I am assuming that C functions do not use complicated struct's,
except the complex one.

Pearu





More information about the SciPy-Dev mailing list