[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