[Numpy-discussion] numpy.distutils/f2py: forcing 8-bit reals
Dag Sverre Seljebotn
dagss@student.matnat.uio...
Tue Mar 30 04:01:43 CDT 2010
David Warde-Farley wrote:
> Hi,
>
> In my setup.py, I have
> from numpy.distutils.misc_util import Configuration
>
> fflags= '-fdefault-real-8 -ffixed-form'
> config = Configuration(
> 'foo',
> parent_package=None,
> top_path=None,
> f2py_options='--f77flags=\'%s\' --f90flags=\'%s\'' % (fflags,
> fflags)
> )
>
> However I am still getting stuff returned in 'real' variables as
> dtype=float32. Am I doing something wrong?
>
Unless f2py is (too) smart, it probably just pass along --f77flags and
--f90flags to the Fortran compiler, but don't use them when creating the
wrapping C Python extension. So, Fortran uses real(8) and the type in C
is "float" -- and what NumPy ends up seeing is float32.
Unless you're dealing with arrays, you are likely blowing your stack here...
I wouldn't think there's a way around this except fixing the original
source. f2py is very much based on assumptions about type sizes which
you then violate when passing -fdefault-real-8.
Dag Sverre
More information about the NumPy-Discussion
mailing list