[Coin-discuss] MaxCut build
Marco Tacconi
marco.tacconi at studenti.unimi.it
Thu Aug 3 15:01:29 EDT 2006
Hi, in the past I had a problem with `_isnan' and `_finite' undeclared,
but in the MinGW environment.
See http://list.coin-or.org/pipermail/coin-discuss/2006-May/002043.html
The problem was a "-ansi" flag.
Bye.
Marco Tacconi
Lou Hafer wrote:
> Michele,
>
> This makes things more difficult, since I can't reproduce this error.
> But I can give you some suggestions on where to look next.
>
> In CoinFloatEqual.hpp, line 52, you'll see
>
> if (CoinIsnan(f1) || CoinIsnan(f2)) return false ;
>
> Superficially, it seems isnan isn't even mentioned, so why the complaint that
> isnan is undeclared?
>
> Coin tries to isolate system dependencies in a few .hpp files. One of
> the troublesome areas is IEEE floating point support, including the functions
> finite and isnan. The relevant include file is Coin/include/CoinFinite.hpp.
> When you look, you'll see individual sections for each system. The name
> CoinIsnan will be defined to the appropriate name for the system. The section
> for cygwin is down around line 90. The name CoinIsnan is defined to the name
> isnan. To confirm that this is the relevant definition, try changing
>
> # define CoinIsnan isnan
>
> to
>
> # define CoinIsnan some_nonsense_name
>
> and recompiling. The error should be `some_nonsense_name undeclared'. If you do
> not see this error, then the symbol __CYGWIN32__ is undefined, and the trouble
> lies in a different direction.
>
> The likely cause of the error message `isnan undeclared' is that the
> proper system include file is not being pulled in. CoinFinite expects to find a
> declaration for isnan in one of the system include files mentioned at the top of
> the file --- algorithm, cmath, or cfloat. Apparently it's someplace else in
> your system. The first thing to try is `man isnan', to see if the man page for
> isnan has any useful advice. Often it will specify the include file that
> declares the function. If the man page specifies an include file, try adding a
> #include line inside the cygwin section, as
>
> #if defined(__CYGWIN32__)
> # include <the_include_file_from_the_man_page>
> # define CoinFinite finite
> # define CoinIsnan isnan
> #endif
>
> Let me know what you find, and we'll go from there.
>
> Lou
>
> _______________________________________________
> Coin-discuss mailing list
> Coin-discuss at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-discuss
>
More information about the Coin-discuss
mailing list