SourceForge: enblend/enblend: changeset 602:e29281594440
Refactoring of "float_cast.h" #include for win32, which
authorDr. Christoph L. Spiel <cspiel@freenet.de>
Mon Nov 09 11:10:35 2009 +0100 (7 weeks ago)
changeset 602e29281594440
parent 601 f312b1189a2d
child 603 f2f608b8ddb4
Refactoring of "float_cast.h" #include for win32, which
massively cleans up the include-file structure.
Patch by Thomas Modes.
VERSION
doc/enblend.info
doc/enfuse.info
doc/versenblend.texi
doc/versenfuse.texi
include/vigra/float_cast.h
include/vigra/numerictraits.hxx
src/Makefile.am
src/enblend.cc
src/enblend_msvc2008.vcproj
src/enfuse.cc
src/enfuse_msvc2008.vcproj
src/filespec.cc
src/float_cast.h
src/vigra_impex/bmp.cxx
src/vigra_impex/byteorder.cxx
src/vigra_impex/codecmanager.cxx
src/vigra_impex/exr.cxx
src/vigra_impex/gif.cxx
src/vigra_impex/hdr.cxx
src/vigra_impex/imageinfo.cxx
src/vigra_impex/jpeg.cxx
src/vigra_impex/png.cxx
src/vigra_impex/pnm.cxx
src/vigra_impex/rgbe.c
src/vigra_impex/sun.cxx
src/vigra_impex/tiff.cxx
src/vigra_impex/viff.cxx
src/vigra_impex/void_vector.cxx
     1.1 --- a/VERSION	Sun Nov 08 15:15:01 2009 +0100
     1.2 +++ b/VERSION	Mon Nov 09 11:10:35 2009 +0100
     1.3 @@ -1,1 +1,1 @@
     1.4 -4.0-f5875cce3ccb
     1.5 +4.0-f312b1189a2d
     2.1 --- a/doc/enblend.info	Sun Nov 08 15:15:01 2009 +0100
     2.2 +++ b/doc/enblend.info	Mon Nov 09 11:10:35 2009 +0100
     2.3 @@ -30,7 +30,7 @@
     2.4  Enblend
     2.5  *******
     2.6  
     2.7 -This manual is for Enblend (version 4.0-dd32463fe9de, 7 November 2009),
     2.8 +This manual is for Enblend (version 4.0-dd32463fe9de, 9 November 2009),
     2.9  a tool for compositing images in such a way that the seam between the
    2.10  images is invisible, or at least very difficult to see.
    2.11  
     3.1 --- a/doc/enfuse.info	Sun Nov 08 15:15:01 2009 +0100
     3.2 +++ b/doc/enfuse.info	Mon Nov 09 11:10:35 2009 +0100
     3.3 @@ -90,7 +90,7 @@
     3.4  Enfuse
     3.5  ******
     3.6  
     3.7 -This manual is for Enfuse (version 4.0-dd32463fe9de, 7 November 2009),
     3.8 +This manual is for Enfuse (version 4.0-dd32463fe9de, 9 November 2009),
     3.9  a program to merge different exposures of the same scene to produce an
    3.10  image that looks much like a tonemapped image.
    3.11  
     4.1 --- a/doc/versenblend.texi	Sun Nov 08 15:15:01 2009 +0100
     4.2 +++ b/doc/versenblend.texi	Mon Nov 09 11:10:35 2009 +0100
     4.3 @@ -1,4 +1,4 @@
     4.4 -@set UPDATED 7 November 2009
     4.5 +@set UPDATED 9 November 2009
     4.6  @set UPDATED-MONTH November 2009
     4.7  @set EDITION 4.0-dd32463fe9de
     4.8  @set VERSION 4.0-dd32463fe9de
     5.1 --- a/doc/versenfuse.texi	Sun Nov 08 15:15:01 2009 +0100
     5.2 +++ b/doc/versenfuse.texi	Mon Nov 09 11:10:35 2009 +0100
     5.3 @@ -1,4 +1,4 @@
     5.4 -@set UPDATED 7 November 2009
     5.5 +@set UPDATED 9 November 2009
     5.6  @set UPDATED-MONTH November 2009
     5.7  @set EDITION 4.0-dd32463fe9de
     5.8  @set VERSION 4.0-dd32463fe9de
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/include/vigra/float_cast.h	Mon Nov 09 11:10:35 2009 +0100
     6.3 @@ -0,0 +1,143 @@
     6.4 +/*
     6.5 +** Copyright (C) 2001 Erik de Castro Lopo <erikd AT mega-nerd DOT com>
     6.6 +**
     6.7 +** Permission to use, copy, modify, distribute, and sell this file for any
     6.8 +** purpose is hereby granted without fee, provided that the above copyright
     6.9 +** and this permission notice appear in all copies.  No representations are
    6.10 +** made about the suitability of this software for any purpose.  It is
    6.11 +** provided "as is" without express or implied warranty.
    6.12 +*/
    6.13 +
    6.14 +/* Version 1.1 */
    6.15 +
    6.16 +
    6.17 +/*============================================================================
    6.18 +** On Intel Pentium processors (especially PIII and probably P4), converting
    6.19 +** from float to int is very slow. To meet the C specs, the code produced by
    6.20 +** most C compilers targeting Pentium needs to change the FPU rounding mode
    6.21 +** before the float to int conversion is performed.
    6.22 +**
    6.23 +** Changing the FPU rounding mode causes the FPU pipeline to be flushed. It
    6.24 +** is this flushing of the pipeline which is so slow.
    6.25 +**
    6.26 +** Fortunately the ISO C99 specifications define the functions lrint, lrintf,
    6.27 +** llrint and llrintf which fix this problem as a side effect.
    6.28 +**
    6.29 +** On Unix-like systems, the configure process should have detected the
    6.30 +** presence of these functions. If they weren't found we have to replace them
    6.31 +** here with a standard C cast.
    6.32 +*/
    6.33 +
    6.34 +/*
    6.35 +** The C99 prototypes for lrint and lrintf are as follows:
    6.36 +**
    6.37 +** long int lrintf (float x) ;
    6.38 +** long int lrint  (double x) ;
    6.39 +*/
    6.40 +
    6.41 +//#include "config.h"
    6.42 +
    6.43 +/* The presence of the required functions are detected during the configure
    6.44 +** process and the values HAVE_LRINT and HAVE_LRINTF are set accordingly in
    6.45 +** the config.h file.
    6.46 +*/
    6.47 +
    6.48 +#ifndef __FLOAT_CAST_H__
    6.49 +#define __FLOAT_CAST_H__
    6.50 +
    6.51 +#if (HAVE_LRINT && HAVE_LRINTF)
    6.52 +
    6.53 +/* These defines enable functionality introduced with the 1999 ISO C
    6.54 +** standard. They must be defined before the inclusion of math.h to
    6.55 +** engage them. If optimisation is enabled, these functions will be
    6.56 +** inlined. With optimisation switched off, you have to link in the
    6.57 +** maths library using -lm.
    6.58 +*/
    6.59 +
    6.60 +#define _ISOC9X_SOURCE  1
    6.61 +#define _ISOC99_SOURCE  1
    6.62 +
    6.63 +#define __USE_ISOC9X    1
    6.64 +#define __USE_ISOC99    1
    6.65 +
    6.66 +#include        <math.h>
    6.67 +
    6.68 +#elif (defined (_MSC_VER))
    6.69 +
    6.70 +/* Win32 doesn't seem to have these functions.
    6.71 +** Therefore implement inline versions of these functions here.
    6.72 +*/
    6.73 +
    6.74 +#if defined(_M_X64)
    6.75 +
    6.76 +#include <intrin.h>
    6.77 +
    6.78 +__forceinline long long int llrint (double flt) {
    6.79 +    return (long long int) _mm_cvtsd_si64x(_mm_loadu_pd(&flt));
    6.80 +}
    6.81 +
    6.82 +__forceinline long int lrint (double flt) {
    6.83 +    return (long int) _mm_cvtsd_si64x(_mm_loadu_pd(&flt));
    6.84 +}
    6.85 +
    6.86 +#else
    6.87 +
    6.88 +__forceinline long int lrint (double flt) {
    6.89 +    long int intgr;
    6.90 +    __asm {
    6.91 +        fld flt
    6.92 +        fistp intgr
    6.93 +    }
    6.94 +    return intgr;
    6.95 +}
    6.96 +
    6.97 +__forceinline long int lrintf(float flt) {
    6.98 +    long int intgr;
    6.99 +    __asm {
   6.100 +        fld flt
   6.101 +        fistp intgr
   6.102 +    }
   6.103 +    return intgr;
   6.104 +}
   6.105 +
   6.106 +__forceinline long int lrintl(long double flt) {
   6.107 +    long int intgr;
   6.108 +    __asm {
   6.109 +        fld flt
   6.110 +        fistp intgr
   6.111 +    }
   6.112 +    return intgr;
   6.113 +}
   6.114 +
   6.115 +__forceinline long long int llrint(double flt) {
   6.116 +    long long int intgr;
   6.117 +    __asm {
   6.118 +        fld flt
   6.119 +        fistp intgr
   6.120 +    }
   6.121 +    return intgr;
   6.122 +}
   6.123 +
   6.124 +__forceinline long long int llrintf(float flt) {
   6.125 +    long long int intgr;
   6.126 +    __asm {
   6.127 +        fld flt
   6.128 +        fistp intgr
   6.129 +    }
   6.130 +    return intgr;
   6.131 +}
   6.132 +
   6.133 +__forceinline long long int llrintl(long double flt) {
   6.134 +    long long int intgr;
   6.135 +    __asm {
   6.136 +        fld flt
   6.137 +        fistp intgr
   6.138 +    }
   6.139 +    return intgr;
   6.140 +}
   6.141 +
   6.142 +#endif /* _M_X64 */
   6.143 +
   6.144 +#endif
   6.145 +
   6.146 +#endif /* __FLOAT_CAST_H__ */
     7.1 --- a/include/vigra/numerictraits.hxx	Sun Nov 08 15:15:01 2009 +0100
     7.2 +++ b/include/vigra/numerictraits.hxx	Mon Nov 09 11:10:35 2009 +0100
     7.3 @@ -46,6 +46,11 @@
     7.4  #include <complex>
     7.5  #include "vigra/metaprogramming.hxx"
     7.6  #include "vigra/sized_int.hxx"
     7.7 +#ifdef _MSC_VER 
     7.8 +    // define missing lrint, lrintf function in Visual C++
     7.9 +    // needed for changes by Andrew Mihal 20061130 
    7.10 +    #include "vigra/float_cast.h"
    7.11 +#endif
    7.12  
    7.13  /********************************************************/
    7.14  /*                                                      */
     8.1 --- a/src/Makefile.am	Sun Nov 08 15:15:01 2009 +0100
     8.2 +++ b/src/Makefile.am	Mon Nov 09 11:10:35 2009 +0100
     8.3 @@ -9,7 +9,7 @@
     8.4  
     8.5  enblend_SOURCES = anneal.h assemble.h blend.h bounds.h \
     8.6                    common.h enblend.h enblend.cc fixmath.h \
     8.7 -                  float_cast.h global.h gpu.cc gpu.h mask.h \
     8.8 +                  global.h gpu.cc gpu.h mask.h \
     8.9                    nearest.h numerictraits.h openmp.h path.h pyramid.h \
    8.10                    error_message.h error_message.cc \
    8.11                    filenameparse.h filenameparse.cc \
    8.12 @@ -23,7 +23,7 @@
    8.13                     -I${top_srcdir}/include
    8.14  
    8.15  enfuse_SOURCES = assemble.h blend.h bounds.h common.h \
    8.16 -                 enfuse.h enfuse.cc fixmath.h float_cast.h \
    8.17 +                 enfuse.h enfuse.cc fixmath.h \
    8.18                   global.h mga.h numerictraits.h openmp.h pyramid.h \
    8.19                   error_message.h error_message.cc \
    8.20                   filenameparse.h filenameparse.cc \
     9.1 --- a/src/enblend.cc	Sun Nov 08 15:15:01 2009 +0100
     9.2 +++ b/src/enblend.cc	Mon Nov 09 11:10:35 2009 +0100
     9.3 @@ -28,9 +28,6 @@
     9.4  #define isnan _isnan
     9.5  #endif // _MSC_VER
     9.6  
     9.7 -// Defines lrint for fast fromRealPromotes
     9.8 -#include "float_cast.h"
     9.9 -
    9.10  #ifdef _WIN32
    9.11  // Make sure we bring in windows.h the right way
    9.12  #define _STLP_VERBOSE_AUTO_LINK
    10.1 --- a/src/enblend_msvc2008.vcproj	Sun Nov 08 15:15:01 2009 +0100
    10.2 +++ b/src/enblend_msvc2008.vcproj	Mon Nov 09 11:10:35 2009 +0100
    10.3 @@ -464,10 +464,6 @@
    10.4  				>
    10.5  			</File>
    10.6  			<File
    10.7 -				RelativePath=".\float_cast.h"
    10.8 -				>
    10.9 -			</File>
   10.10 -			<File
   10.11  				RelativePath=".\win32helpers\getopt.h"
   10.12  				>
   10.13  			</File>
    11.1 --- a/src/enfuse.cc	Sun Nov 08 15:15:01 2009 +0100
    11.2 +++ b/src/enfuse.cc	Mon Nov 09 11:10:35 2009 +0100
    11.3 @@ -26,10 +26,7 @@
    11.4  #include <win32helpers\win32config.h>
    11.5  #endif
    11.6  #define isnan _isnan
    11.7 -#endif // _MSC_VER
    11.8 -
    11.9 -// Defines lrint for fast fromRealPromotes
   11.10 -#include "float_cast.h"
   11.11 +#endif //MSC_VER
   11.12  
   11.13  #ifdef _WIN32
   11.14  // Make sure we bring in windows.h the right way
    12.1 --- a/src/enfuse_msvc2008.vcproj	Sun Nov 08 15:15:01 2009 +0100
    12.2 +++ b/src/enfuse_msvc2008.vcproj	Mon Nov 09 11:10:35 2009 +0100
    12.3 @@ -460,10 +460,6 @@
    12.4  				>
    12.5  			</File>
    12.6  			<File
    12.7 -				RelativePath=".\float_cast.h"
    12.8 -				>
    12.9 -			</File>
   12.10 -			<File
   12.11  				RelativePath=".\win32helpers\getopt.h"
   12.12  				>
   12.13  			</File>
    13.1 --- a/src/filespec.cc	Sun Nov 08 15:15:01 2009 +0100
    13.2 +++ b/src/filespec.cc	Mon Nov 09 11:10:35 2009 +0100
    13.3 @@ -43,13 +43,6 @@
    13.4  
    13.5  #include <boost/assign/list_of.hpp>
    13.6  
    13.7 -
    13.8 -#ifdef _WIN32
    13.9 -// FIXME: Defines lrint() for fast fromRealPromotes and _must_ be
   13.10 -// included before "vigra/imageinfo.hxx".  This is ugly beyond belief!
   13.11 -#include "float_cast.h"
   13.12 -#endif
   13.13 -
   13.14  #include "vigra/imageinfo.hxx"
   13.15  
   13.16  #ifdef HAVE_CONFIG_H
    14.1 --- a/src/float_cast.h	Sun Nov 08 15:15:01 2009 +0100
    14.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.3 @@ -1,143 +0,0 @@
    14.4 -/*
    14.5 -** Copyright (C) 2001 Erik de Castro Lopo <erikd AT mega-nerd DOT com>
    14.6 -**
    14.7 -** Permission to use, copy, modify, distribute, and sell this file for any
    14.8 -** purpose is hereby granted without fee, provided that the above copyright
    14.9 -** and this permission notice appear in all copies.  No representations are
   14.10 -** made about the suitability of this software for any purpose.  It is
   14.11 -** provided "as is" without express or implied warranty.
   14.12 -*/
   14.13 -
   14.14 -/* Version 1.1 */
   14.15 -
   14.16 -
   14.17 -/*============================================================================
   14.18 -** On Intel Pentium processors (especially PIII and probably P4), converting
   14.19 -** from float to int is very slow. To meet the C specs, the code produced by
   14.20 -** most C compilers targeting Pentium needs to change the FPU rounding mode
   14.21 -** before the float to int conversion is performed.
   14.22 -**
   14.23 -** Changing the FPU rounding mode causes the FPU pipeline to be flushed. It
   14.24 -** is this flushing of the pipeline which is so slow.
   14.25 -**
   14.26 -** Fortunately the ISO C99 specifications define the functions lrint, lrintf,
   14.27 -** llrint and llrintf which fix this problem as a side effect.
   14.28 -**
   14.29 -** On Unix-like systems, the configure process should have detected the
   14.30 -** presence of these functions. If they weren't found we have to replace them
   14.31 -** here with a standard C cast.
   14.32 -*/
   14.33 -
   14.34 -/*
   14.35 -** The C99 prototypes for lrint and lrintf are as follows:
   14.36 -**
   14.37 -** long int lrintf (float x) ;
   14.38 -** long int lrint  (double x) ;
   14.39 -*/
   14.40 -
   14.41 -//#include "config.h"
   14.42 -
   14.43 -/* The presence of the required functions are detected during the configure
   14.44 -** process and the values HAVE_LRINT and HAVE_LRINTF are set accordingly in
   14.45 -** the config.h file.
   14.46 -*/
   14.47 -
   14.48 -#ifndef __FLOAT_CAST_H__
   14.49 -#define __FLOAT_CAST_H__
   14.50 -
   14.51 -#if (HAVE_LRINT && HAVE_LRINTF)
   14.52 -
   14.53 -/* These defines enable functionality introduced with the 1999 ISO C
   14.54 -** standard. They must be defined before the inclusion of math.h to
   14.55 -** engage them. If optimisation is enabled, these functions will be
   14.56 -** inlined. With optimisation switched off, you have to link in the
   14.57 -** maths library using -lm.
   14.58 -*/
   14.59 -
   14.60 -#define _ISOC9X_SOURCE  1
   14.61 -#define _ISOC99_SOURCE  1
   14.62 -
   14.63 -#define __USE_ISOC9X    1
   14.64 -#define __USE_ISOC99    1
   14.65 -
   14.66 -#include        <math.h>
   14.67 -
   14.68 -#elif (defined (_MSC_VER))
   14.69 -
   14.70 -/* Win32 doesn't seem to have these functions.
   14.71 -** Therefore implement inline versions of these functions here.
   14.72 -*/
   14.73 -
   14.74 -#if defined(_M_X64)
   14.75 -
   14.76 -#include <intrin.h>
   14.77 -
   14.78 -__forceinline long long int llrint (double flt) {
   14.79 -    return (long long int) _mm_cvtsd_si64x(_mm_loadu_pd(&flt));
   14.80 -}
   14.81 -
   14.82 -__forceinline long int lrint (double flt) {
   14.83 -    return (long int) _mm_cvtsd_si64x(_mm_loadu_pd(&flt));
   14.84 -}
   14.85 -
   14.86 -#else
   14.87 -
   14.88 -__forceinline long int lrint (double flt) {
   14.89 -    long int intgr;
   14.90 -    __asm {
   14.91 -        fld flt
   14.92 -        fistp intgr
   14.93 -    }
   14.94 -    return intgr;
   14.95 -}
   14.96 -
   14.97 -__forceinline long int lrintf(float flt) {
   14.98 -    long int intgr;
   14.99 -    __asm {
  14.100 -        fld flt
  14.101 -        fistp intgr
  14.102 -    }
  14.103 -    return intgr;
  14.104 -}
  14.105 -
  14.106 -__forceinline long int lrintl(long double flt) {
  14.107 -    long int intgr;
  14.108 -    __asm {
  14.109 -        fld flt
  14.110 -        fistp intgr
  14.111 -    }
  14.112 -    return intgr;
  14.113 -}
  14.114 -
  14.115 -__forceinline long long int llrint(double flt) {
  14.116 -    long long int intgr;
  14.117 -    __asm {
  14.118 -        fld flt
  14.119 -        fistp intgr
  14.120 -    }
  14.121 -    return intgr;
  14.122 -}
  14.123 -
  14.124 -__forceinline long long int llrintf(float flt) {
  14.125 -    long long int intgr;
  14.126 -    __asm {
  14.127 -        fld flt
  14.128 -        fistp intgr
  14.129 -    }
  14.130 -    return intgr;
  14.131 -}
  14.132 -
  14.133 -__forceinline long long int llrintl(long double flt) {
  14.134 -    long long int intgr;
  14.135 -    __asm {
  14.136 -        fld flt
  14.137 -        fistp intgr
  14.138 -    }
  14.139 -    return intgr;
  14.140 -}
  14.141 -
  14.142 -#endif /* _M_X64 */
  14.143 -
  14.144 -#endif
  14.145 -
  14.146 -#endif /* __FLOAT_CAST_H__ */
    15.1 --- a/src/vigra_impex/bmp.cxx	Sun Nov 08 15:15:01 2009 +0100
    15.2 +++ b/src/vigra_impex/bmp.cxx	Mon Nov 09 11:10:35 2009 +0100
    15.3 @@ -36,7 +36,6 @@
    15.4  
    15.5  #include <iostream>
    15.6  #include <fstream>
    15.7 -#include "../float_cast.h"
    15.8  #include "vigra/config.hxx"
    15.9  #include "vigra/sized_int.hxx"
   15.10  #include "error.hxx"
    16.1 --- a/src/vigra_impex/byteorder.cxx	Sun Nov 08 15:15:01 2009 +0100
    16.2 +++ b/src/vigra_impex/byteorder.cxx	Mon Nov 09 11:10:35 2009 +0100
    16.3 @@ -36,7 +36,6 @@
    16.4  
    16.5  #include <algorithm>
    16.6  #include <stdexcept>
    16.7 -#include "../float_cast.h"
    16.8  #include "byteorder.hxx"
    16.9  #include "vigra/sized_int.hxx"
   16.10  
    17.1 --- a/src/vigra_impex/codecmanager.cxx	Sun Nov 08 15:15:01 2009 +0100
    17.2 +++ b/src/vigra_impex/codecmanager.cxx	Mon Nov 09 11:10:35 2009 +0100
    17.3 @@ -45,7 +45,6 @@
    17.4  #include <iostream>
    17.5  #endif
    17.6  
    17.7 -#include "../float_cast.h"
    17.8  #include "vigra/config.hxx"
    17.9  #include "vigra/error.hxx"
   17.10  #include "vigra/imageinfo.hxx"
    18.1 --- a/src/vigra_impex/exr.cxx	Sun Nov 08 15:15:01 2009 +0100
    18.2 +++ b/src/vigra_impex/exr.cxx	Mon Nov 09 11:10:35 2009 +0100
    18.3 @@ -39,7 +39,6 @@
    18.4  
    18.5  #ifdef HasEXR
    18.6  
    18.7 -#include "../float_cast.h"
    18.8  #include "vigra/config.hxx"
    18.9  #include "vigra/sized_int.hxx"
   18.10  #include "void_vector.hxx"
    19.1 --- a/src/vigra_impex/gif.cxx	Sun Nov 08 15:15:01 2009 +0100
    19.2 +++ b/src/vigra_impex/gif.cxx	Mon Nov 09 11:10:35 2009 +0100
    19.3 @@ -38,7 +38,6 @@
    19.4  #include <stdexcept>
    19.5  #include <vector>
    19.6  #include <algorithm>
    19.7 -#include "../float_cast.h"
    19.8  #include "vigra/config.hxx"
    19.9  #include "vigra/sized_int.hxx"
   19.10  #include "error.hxx"
    20.1 --- a/src/vigra_impex/hdr.cxx	Sun Nov 08 15:15:01 2009 +0100
    20.2 +++ b/src/vigra_impex/hdr.cxx	Mon Nov 09 11:10:35 2009 +0100
    20.3 @@ -34,7 +34,6 @@
    20.4  /*                                                                      */
    20.5  /************************************************************************/
    20.6  
    20.7 -#include "../float_cast.h"
    20.8  #include "vigra/sized_int.hxx"
    20.9  #include "error.hxx"
   20.10  #include "hdr.hxx"
    21.1 --- a/src/vigra_impex/imageinfo.cxx	Sun Nov 08 15:15:01 2009 +0100
    21.2 +++ b/src/vigra_impex/imageinfo.cxx	Mon Nov 09 11:10:35 2009 +0100
    21.3 @@ -56,7 +56,6 @@
    21.4  #include <stdio.h>
    21.5  #include <stdlib.h>
    21.6  #include <string.h>
    21.7 -#include "../float_cast.h"
    21.8  #include "vigra/imageinfo.hxx"
    21.9  #include "codecmanager.hxx"
   21.10  
    22.1 --- a/src/vigra_impex/jpeg.cxx	Sun Nov 08 15:15:01 2009 +0100
    22.2 +++ b/src/vigra_impex/jpeg.cxx	Mon Nov 09 11:10:35 2009 +0100
    22.3 @@ -47,7 +47,6 @@
    22.4  
    22.5  #include <stdexcept>
    22.6  #include <csetjmp>
    22.7 -#include "../float_cast.h"
    22.8  #include "vigra/config.hxx"
    22.9  #include "void_vector.hxx"
   22.10  #include "error.hxx"
    23.1 --- a/src/vigra_impex/png.cxx	Sun Nov 08 15:15:01 2009 +0100
    23.2 +++ b/src/vigra_impex/png.cxx	Mon Nov 09 11:10:35 2009 +0100
    23.3 @@ -50,7 +50,6 @@
    23.4  
    23.5  #ifdef HasPNG
    23.6  
    23.7 -#include "../float_cast.h"
    23.8  #include "vigra/config.hxx"
    23.9  #include "vigra/sized_int.hxx"
   23.10  #include "void_vector.hxx"
    24.1 --- a/src/vigra_impex/pnm.cxx	Sun Nov 08 15:15:01 2009 +0100
    24.2 +++ b/src/vigra_impex/pnm.cxx	Mon Nov 09 11:10:35 2009 +0100
    24.3 @@ -37,7 +37,6 @@
    24.4  #include <cmath>
    24.5  #include <iostream>
    24.6  #include <fstream>
    24.7 -#include "../float_cast.h"
    24.8  #include "vigra/config.hxx"
    24.9  #include "vigra/sized_int.hxx"
   24.10  #include "error.hxx"
    25.1 --- a/src/vigra_impex/rgbe.c	Sun Nov 08 15:15:01 2009 +0100
    25.2 +++ b/src/vigra_impex/rgbe.c	Mon Nov 09 11:10:35 2009 +0100
    25.3 @@ -2,7 +2,6 @@
    25.4   * WHILE THE AUTHORS HAVE TRIED TO ENSURE THE PROGRAM WORKS CORRECTLY,
    25.5   * IT IS STRICTLY USE AT YOUR OWN RISK.  */
    25.6  
    25.7 -#include "../float_cast.h"
    25.8  #include "rgbe.h"
    25.9  #include <math.h>
   25.10  #include <stdlib.h>
    26.1 --- a/src/vigra_impex/sun.cxx	Sun Nov 08 15:15:01 2009 +0100
    26.2 +++ b/src/vigra_impex/sun.cxx	Mon Nov 09 11:10:35 2009 +0100
    26.3 @@ -36,7 +36,6 @@
    26.4  
    26.5  #include <fstream>
    26.6  #include <stdexcept>
    26.7 -#include "../float_cast.h"
    26.8  #include "vigra/config.hxx"
    26.9  #include "vigra/sized_int.hxx"
   26.10  #include "error.hxx"
    27.1 --- a/src/vigra_impex/tiff.cxx	Sun Nov 08 15:15:01 2009 +0100
    27.2 +++ b/src/vigra_impex/tiff.cxx	Mon Nov 09 11:10:35 2009 +0100
    27.3 @@ -67,7 +67,6 @@
    27.4  // NB (jbeda): tiffio.h is going to include this anyway.  Let's include
    27.5  // it now so that we can control how it comes in.  Namely, we want
    27.6  // to get our version that doesn't set the evil min/max macros.
    27.7 -#include "../float_cast.h"
    27.8  #include "vigra/windows.h"
    27.9  
   27.10  #include "vigra/imageinfo.hxx"
    28.1 --- a/src/vigra_impex/viff.cxx	Sun Nov 08 15:15:01 2009 +0100
    28.2 +++ b/src/vigra_impex/viff.cxx	Mon Nov 09 11:10:35 2009 +0100
    28.3 @@ -41,7 +41,6 @@
    28.4  
    28.5  #include <iostream>
    28.6  #include <fstream>
    28.7 -#include "../float_cast.h"
    28.8  #include "vigra/config.hxx"
    28.9  #include "vigra/sized_int.hxx"
   28.10  #include "error.hxx"
    29.1 --- a/src/vigra_impex/void_vector.cxx	Sun Nov 08 15:15:01 2009 +0100
    29.2 +++ b/src/vigra_impex/void_vector.cxx	Mon Nov 09 11:10:35 2009 +0100
    29.3 @@ -34,7 +34,6 @@
    29.4  /*                                                                      */
    29.5  /************************************************************************/
    29.6  
    29.7 -#include "../float_cast.h"
    29.8  #include "void_vector.hxx"
    29.9  
   29.10  namespace vigra