std::numeric_limits

Hi,

I'm trying to compile matplotlib-0.54.2 on FreeBSD 4.8, using gcc-2.95.3.

In _transforms.cpp, std::numeric_limits<double>::max() and ::min() aren't present, so I've tried replacing them with #include<float.h>, DBL_MIN and DBL_MAX.

However, now an error is being raised in ticker.py:get_locator(), line 638:

            try: ld = math.log10(d)
            except OverflowError:
                print >> sys.stderr, 'AutoLocator illegal dataInterval range %s; returning NullLocator'%d
                return NullLocator()

I.e., the OverflowError is occurring. I'm assuming this is cause of the change I made; I can run the same test script under Windows with no problems (but the test script is a little too involved for me to paste here).

Does anyone have ideas on a better workaround?

Trevor

Hi Trevor,
I just substituted like this

  if (ignore) {
    minx = 1e+308; //orig: std::numeric_limits<double>::max();
    maxx = 1e-308; //orig: std::numeric_limits<double>::min();
  }

and didn't have any problem.
I running debian, where 2.95 is still the "standard". Maybe this could be
changed in CVS - just for one more year or so :wink:

Cheers,
Sebastian Haase

···

On Friday 02 July 2004 01:23 pm, Trevor Perrin wrote:

Hi,

I'm trying to compile matplotlib-0.54.2 on FreeBSD 4.8, using gcc-2.95.3.

In _transforms.cpp, std::numeric_limits<double>::max() and ::min() aren't
present, so I've tried replacing them with #include<float.h>, DBL_MIN and
DBL_MAX.

However, now an error is being raised in ticker.py:get_locator(), line 638:

            try: ld = math.log10(d)
            except OverflowError:
                print >> sys.stderr, 'AutoLocator illegal dataInterval
range %s; returning NullLocator'%d return NullLocator()

I.e., the OverflowError is occurring. I'm assuming this is cause of the
change I made; I can run the same test script under Windows with no
problems (but the test script is a little too involved for me to paste
here).

Does anyone have ideas on a better workaround?

Trevor