diff options
author | Thorsten Behrens <thb@openoffice.org> | 2006-05-31 11:47:21 +0000 |
---|---|---|
committer | Thorsten Behrens <thb@openoffice.org> | 2006-05-31 11:47:21 +0000 |
commit | 4464e908287241bb3d9d042ea7487050565f0a46 (patch) | |
tree | 54dd8badf7fd8b1a30dcdebb92659fba9b299c8c /vigra | |
parent | 1e3f255896bdad5d0bf910847f5b20f2cced263d (diff) |
#i65904# Initial revision
Diffstat (limited to 'vigra')
-rw-r--r-- | vigra/makefile.mk | 84 | ||||
-rw-r--r-- | vigra/prj/build.lst | 3 | ||||
-rw-r--r-- | vigra/prj/d.lst | 3 | ||||
-rw-r--r-- | vigra/vigra1.4.0.patch | 493 |
4 files changed, 583 insertions, 0 deletions
diff --git a/vigra/makefile.mk b/vigra/makefile.mk new file mode 100644 index 000000000000..ec761599ee54 --- /dev/null +++ b/vigra/makefile.mk @@ -0,0 +1,84 @@ +#************************************************************************* +# +# OpenOffice.org - a multi-platform office productivity suite +# +# $RCSfile: makefile.mk,v $ +# +# $Revision: 1.1 $ +# +# last change: $Author: thb $ $Date: 2006-05-31 12:47:19 $ +# +# The Contents of this file are made available subject to +# the terms of GNU Lesser General Public License Version 2.1. +# +# +# GNU Lesser General Public License Version 2.1 +# ============================================= +# Copyright 2005 by Sun Microsystems, Inc. +# 901 San Antonio Road, Palo Alto, CA 94303, USA +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License version 2.1, as published by the Free Software Foundation. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, +# MA 02111-1307 USA +# +#************************************************************************* + +# dmake create_clean -- just unpacks +# dmake patch -- unpacks and applies patch file +# dmake create_patch -- creates a patch file + +PRJ=. + +PRJNAME=vigra +TARGET=vigra + +# --- Settings ----------------------------------------------------- + +.INCLUDE : settings.mk + +.IF "$(SYSTEM_VIGRA)" == "YES" +all: + @echo "An already available installation of vigra should exist on your system." + @echo "Therefore the version provided here does not need to be built in addition." +.ELSE + +# --- Files -------------------------------------------------------- + +TARFILE_NAME=vigra1.4.0 +PATCH_FILE_NAME=$(TARFILE_NAME).patch + +CONFIGURE_DIR= +CONFIGURE_ACTION= + +BUILD_DIR= +BUILD_ACTION= +BUILD_FLAGS= + +# --- Targets ------------------------------------------------------ + +all: \ + $(MISC)$/$(TARGET)_remove_build.flag \ + ALLTAR + +.INCLUDE : set_ext.mk +.INCLUDE : target.mk +.INCLUDE : tg_ext.mk + +# Since you never know what will be in a patch (for example, it may already +# patch at configure level), we remove the entire package directory if a patch +# is newer. +$(MISC)$/$(TARGET)_remove_build.flag : $(PRJ)$/$(PATCH_FILE_NAME) + $(REMOVE_PACKAGE_COMMAND) + +$(TOUCH) $(MISC)$/$(TARGET)_remove_build.flag + +.ENDIF diff --git a/vigra/prj/build.lst b/vigra/prj/build.lst new file mode 100644 index 000000000000..47f7eee92782 --- /dev/null +++ b/vigra/prj/build.lst @@ -0,0 +1,3 @@ +vi vigra : solenv NULL +vi vigra usr1 - all vi_mkout NULL +vi vigra nmake - all vi_vigra NULL diff --git a/vigra/prj/d.lst b/vigra/prj/d.lst new file mode 100644 index 000000000000..395b3e4fb520 --- /dev/null +++ b/vigra/prj/d.lst @@ -0,0 +1,3 @@ +mkdir: %_DEST%\inc%_EXT%\vigra + +..\%__SRC%\misc\build\vigra1.4.0\include\vigra\*.hxx %_DEST%\inc%_EXT%\vigra\*.hxx diff --git a/vigra/vigra1.4.0.patch b/vigra/vigra1.4.0.patch new file mode 100644 index 000000000000..859b65d5e6ef --- /dev/null +++ b/vigra/vigra1.4.0.patch @@ -0,0 +1,493 @@ +--- misc/build/vigra1.4.0/include/vigra/mathutil.hxx Mon May 29 18:21:23 2006 ++++ misc/vigra1.4.0/include/vigra/mathutil.hxx Wed Dec 21 05:53:39 2005 +@@ -73,8 +73,6 @@ + + namespace vigra { + +-#ifndef __sun +- + /** \addtogroup MathFunctions Mathematical Functions + + Useful mathematical functions and functors. +@@ -109,23 +107,16 @@ double erf(T x) + return ans - 1.0; + } + +-#else +- +-using VIGRA_CSTD::erf; +- +-#endif +- + // import functions into namespace vigra which VIGRA is going to overload + + using VIGRA_CSTD::pow; + using VIGRA_CSTD::floor; + using VIGRA_CSTD::ceil; +-using std::abs; ++using VIGRA_CSTD::abs; + + #define VIGRA_DEFINE_UNSIGNED_ABS(T) \ + inline T abs(T t) { return t; } + +-VIGRA_DEFINE_UNSIGNED_ABS(bool) + VIGRA_DEFINE_UNSIGNED_ABS(unsigned char) + VIGRA_DEFINE_UNSIGNED_ABS(unsigned short) + VIGRA_DEFINE_UNSIGNED_ABS(unsigned int) +@@ -358,25 +349,34 @@ T1 sign(T1 t1, T2 t2) + : -abs(t1); + } + +-#define VIGRA_DEFINE_NORM(T) \ ++#define VIGRA_DEFINE_NORM(T,NS) \ + inline NormTraits<T>::SquaredNormType squaredNorm(T t) { return sq(t); } \ +- inline NormTraits<T>::NormType norm(T t) { return abs(t); } ++ inline NormTraits<T>::NormType norm(T t) { return NS::abs(t); } + +-VIGRA_DEFINE_NORM(bool) +-VIGRA_DEFINE_NORM(signed char) +-VIGRA_DEFINE_NORM(unsigned char) +-VIGRA_DEFINE_NORM(short) +-VIGRA_DEFINE_NORM(unsigned short) +-VIGRA_DEFINE_NORM(int) +-VIGRA_DEFINE_NORM(unsigned int) +-VIGRA_DEFINE_NORM(long) +-VIGRA_DEFINE_NORM(unsigned long) +-VIGRA_DEFINE_NORM(float) +-VIGRA_DEFINE_NORM(double) +-VIGRA_DEFINE_NORM(long double) ++VIGRA_DEFINE_NORM(signed char,std) ++VIGRA_DEFINE_NORM(unsigned char,vigra) ++VIGRA_DEFINE_NORM(short,std) ++VIGRA_DEFINE_NORM(unsigned short,vigra) ++VIGRA_DEFINE_NORM(int,std) ++VIGRA_DEFINE_NORM(unsigned int,vigra) ++#if !defined(SOLARIS) || !defined(SUN) ++ // there's no std::abs(long) for SunStudio/Solaris ++ VIGRA_DEFINE_NORM(long,std) ++ VIGRA_DEFINE_NORM(unsigned long,vigra) ++#endif + + #undef VIGRA_DEFINE_NORM + ++#define VIGRA_DEFINE_FNORM(T) \ ++ inline NormTraits<T>::SquaredNormType squaredNorm(T t) { return sq(t); } \ ++ inline NormTraits<T>::NormType norm(T t) { return fabs(t); } ++ ++VIGRA_DEFINE_FNORM(float) ++VIGRA_DEFINE_FNORM(double) ++VIGRA_DEFINE_FNORM(long double) ++ ++#undef VIGRA_DEFINE_FNORM ++ + template <class T> + inline typename NormTraits<std::complex<T> >::SquaredNormType + squaredNorm(std::complex<T> const & t) +--- misc/build/vigra1.4.0/include/vigra/array_vector.hxx 2005-12-21 05:53:30.000000000 +0100 ++++ misc/vigra1.4.0/include/vigra/array_vector.hxx 2006-05-30 10:30:17.000000000 +0200 +@@ -408,6 +408,8 @@ ArrayVector<T, Alloc>::insert(iterator p + return begin() + pos; + } + ++#if !defined(SOLARIS) || !defined(SUN) ++// SunStudio chokes on template template return type + template <class T, class Alloc> + template <class InputIterator> + typename ArrayVector<T, Alloc>::iterator +@@ -443,6 +445,7 @@ ArrayVector<T, Alloc>::insert(iterator p + size_ = new_size; + return begin() + pos; + } ++#endif + + template <class T, class Alloc> + typename ArrayVector<T, Alloc>::iterator +--- misc/build/vigra1.4.0/include/vigra/basicimage.hxx 2005-12-21 05:53:30.000000000 +0100 ++++ misc/vigra1.4.0/include/vigra/basicimage.hxx 2006-05-30 11:39:49.000000000 +0200 +@@ -552,7 +552,11 @@ class BasicImage + typedef Alloc allocator_type; + + typedef Alloc Allocator; ++#if !defined(SOLARIS) || !defined(SUN) + typedef typename Alloc::template rebind<PIXELTYPE *>::other LineAllocator; ++#else ++ typedef std::allocator<PIXELTYPE*> LineAllocator; ++#endif + + /** construct image of size 0x0 + */ +@@ -569,7 +573,11 @@ class BasicImage + width_(0), + height_(0), + allocator_(alloc), ++#if !defined(SOLARIS) || !defined(SUN) + pallocator_(alloc) ++#else ++ pallocator_() ++#endif + {} + + /** construct image of size width x height, use the specified allocator. +@@ -579,7 +587,11 @@ class BasicImage + width_(0), + height_(0), + allocator_(alloc), ++#if !defined(SOLARIS) || !defined(SUN) + pallocator_(alloc) ++#else ++ pallocator_() ++#endif + { + vigra_precondition((width >= 0) && (height >= 0), + "BasicImage::BasicImage(int width, int height): " +@@ -595,7 +607,11 @@ class BasicImage + width_(0), + height_(0), + allocator_(alloc), ++#if !defined(SOLARIS) || !defined(SUN) + pallocator_(alloc) ++#else ++ pallocator_() ++#endif + { + vigra_precondition((size.x >= 0) && (size.y >= 0), + "BasicImage::BasicImage(Diff2D size): " +@@ -614,7 +630,11 @@ class BasicImage + width_(0), + height_(0), + allocator_(alloc), ++#if !defined(SOLARIS) || !defined(SUN) + pallocator_(alloc) ++#else ++ pallocator_() ++#endif + { + vigra_precondition((width >= 0) && (height >= 0), + "BasicImage::BasicImage(int width, int height, value_type const & ): " +@@ -632,7 +652,11 @@ class BasicImage + width_(0), + height_(0), + allocator_(alloc), ++#if !defined(SOLARIS) || !defined(SUN) + pallocator_(alloc) ++#else ++ pallocator_() ++#endif + { + vigra_precondition((size.x >= 0) && (size.y >= 0), + "BasicImage::BasicImage(Diff2D const & size, value_type const & v): " +@@ -650,7 +674,11 @@ class BasicImage + width_(0), + height_(0), + allocator_(alloc), ++#if !defined(SOLARIS) || !defined(SUN) + pallocator_(alloc) ++#else ++ pallocator_() ++#endif + { + vigra_precondition((width >= 0) && (height >= 0), + "BasicImage::BasicImage(int width, int height, const_pointer ): " +@@ -667,7 +695,11 @@ class BasicImage + width_(0), + height_(0), + allocator_(alloc), ++#if !defined(SOLARIS) || !defined(SUN) + pallocator_(alloc) ++#else ++ pallocator_() ++#endif + { + vigra_precondition((size.x >= 0) && (size.y >= 0), + "BasicImage::BasicImage(Diff2D const & size, const_pointer): " +--- misc/build/vigra1.4.0/include/vigra/boundarytensor.hxx 2005-12-21 05:53:31.000000000 +0100 ++++ misc/vigra1.4.0/include/vigra/boundarytensor.hxx 2006-05-30 11:55:19.000000000 +0200 +@@ -71,8 +71,8 @@ initGaussianPolarFilters1(double std_dev + int radius = (int)(4.0*std_dev + 0.5); + std_dev *= 1.08179074376; + double f = 1.0 / VIGRA_CSTD::sqrt(2.0 * M_PI) / std_dev; // norm +- double a = 0.558868151788 / VIGRA_CSTD::pow(std_dev, 5); +- double b = -2.04251639729 / VIGRA_CSTD::pow(std_dev, 3); ++ double a = 0.558868151788 / VIGRA_CSTD::pow(std_dev, 5.0); ++ double b = -2.04251639729 / VIGRA_CSTD::pow(std_dev, 3.0); + double sigma22 = -0.5 / std_dev / std_dev; + + +@@ -175,7 +175,7 @@ initGaussianPolarFilters3(double std_dev + std_dev *= 1.15470053838; + double sigma22 = -0.5 / std_dev / std_dev; + double f = 1.0 / VIGRA_CSTD::sqrt(2.0 * M_PI) / std_dev; // norm +- double a = 0.883887052922 / VIGRA_CSTD::pow(std_dev, 5); ++ double a = 0.883887052922 / VIGRA_CSTD::pow(std_dev, 5.0); + + for(unsigned int i=0; i<k.size(); ++i) + { +@@ -183,7 +183,7 @@ initGaussianPolarFilters3(double std_dev + k[i].setBorderTreatment(BORDER_TREATMENT_REFLECT); + } + +- double b = -1.3786348292 / VIGRA_CSTD::pow(std_dev, 3); ++ double b = -1.3786348292 / VIGRA_CSTD::pow(std_dev, 3.0); + + int ix; + iterator c = k[0].center(); +--- misc/build/vigra1.4.0/include/vigra/fixedpoint.hxx 2005-12-21 05:53:34.000000000 +0100 ++++ misc/vigra1.4.0/include/vigra/fixedpoint.hxx 2006-05-30 10:51:49.000000000 +0200 +@@ -118,20 +118,18 @@ enum FixedPointNoShift { FPNoShift }; + + namespace detail { + +-template <bool MustRound> ++template <bool MustRound, int N> + struct FPAssignWithRound; + +-template <> +-struct FPAssignWithRound<false> ++template <int N> ++struct FPAssignWithRound<false, N> + { +- template <int N> + static inline int exec(int v) { return v << (-N); } + }; + +-template <> +-struct FPAssignWithRound<true> ++template <int N> ++struct FPAssignWithRound<true, N> + { +- template <int N> + static inline int exec(int const v) + { + return (v + (1 << (N - 1))) >> (N); +@@ -276,7 +274,7 @@ public: + */ + template <unsigned Int2, unsigned Frac2> + FixedPoint(const FixedPoint<Int2, Frac2> &other) +- : value(detail::FPAssignWithRound<(Frac2 > FractionalBits)>::template exec<Frac2 - FractionalBits>(other.value)) ++ : value(detail::FPAssignWithRound<(Frac2 > FractionalBits), Frac2 - FractionalBits>::exec(other.value)) + { + VIGRA_STATIC_ASSERT((FixedPoint_overflow_error__More_than_31_bits_requested<(IntBits + FractionalBits)>)); + VIGRA_STATIC_ASSERT((FixedPoint_assignment_error__Target_object_has_too_few_integer_bits<(IntBits >= Int2)>)); +@@ -321,7 +319,7 @@ public: + FixedPoint & operator=(const FixedPoint<Int2, Frac2> &other) + { + VIGRA_STATIC_ASSERT((FixedPoint_assignment_error__Target_object_has_too_few_integer_bits<(IntBits >= Int2)>)); +- value = detail::FPAssignWithRound<(Frac2 > FractionalBits)>::template exec<Frac2 - FractionalBits>(other.value); ++ value = detail::FPAssignWithRound<(Frac2 > FractionalBits),Frac2 - FractionalBits>::exec(other.value); + return *this; + } + +@@ -373,7 +371,7 @@ public: + FixedPoint & operator+=(const FixedPoint<Int2, Frac2> &other) + { + VIGRA_STATIC_ASSERT((FixedPoint_assignment_error__Target_object_has_too_few_integer_bits<(IntBits >= Int2)>)); +- value += detail::FPAssignWithRound<(Frac2 > FractionalBits)>::template exec<Frac2 - FractionalBits>(other.value); ++ value += detail::FPAssignWithRound<(Frac2 > FractionalBits),Frac2 - FractionalBits>::exec(other.value); + return *this; + } + +@@ -384,7 +382,7 @@ public: + FixedPoint & operator-=(const FixedPoint<Int2, Frac2> &other) + { + VIGRA_STATIC_ASSERT((FixedPoint_assignment_error__Target_object_has_too_few_integer_bits<(IntBits >= Int2)>)); +- value -= detail::FPAssignWithRound<(Frac2 > FractionalBits)>::template exec<Frac2 - FractionalBits>(other.value); ++ value -= detail::FPAssignWithRound<(Frac2 > FractionalBits),Frac2 - FractionalBits>::exec(other.value); + return *this; + } + +@@ -428,12 +426,12 @@ struct FixedPointCast<type> \ + } \ + }; + +-VIGRA_FIXED_POINT_CAST(Int8); +-VIGRA_FIXED_POINT_CAST(UInt8); +-VIGRA_FIXED_POINT_CAST(Int16); +-VIGRA_FIXED_POINT_CAST(UInt16); +-VIGRA_FIXED_POINT_CAST(Int32); +-VIGRA_FIXED_POINT_CAST(UInt32); ++VIGRA_FIXED_POINT_CAST(Int8) ++VIGRA_FIXED_POINT_CAST(UInt8) ++VIGRA_FIXED_POINT_CAST(Int16) ++VIGRA_FIXED_POINT_CAST(UInt16) ++VIGRA_FIXED_POINT_CAST(Int32) ++VIGRA_FIXED_POINT_CAST(UInt32) + + #undef VIGRA_FIXED_POINT_CAST + +--- misc/build/vigra1.4.0/include/vigra/gaborfilter.hxx 2005-12-21 05:53:35.000000000 +0100 ++++ misc/vigra1.4.0/include/vigra/gaborfilter.hxx 2006-05-30 11:42:06.000000000 +0200 +@@ -289,7 +289,11 @@ inline double angularGaborSigma(int dire + Namespace: vigra + */ + template <class ImageType, ++#if !defined(SOLARIS) || !defined(SUN) + class Alloc = typename ImageType::allocator_type::template rebind<ImageType>::other > ++#else ++ class Alloc = std::allocator<ImageType> > ++#endif + class GaborFilterFamily + : public ImageArray<ImageType, Alloc> + { +--- misc/build/vigra1.4.0/include/vigra/imagecontainer.hxx 2005-12-21 05:53:36.000000000 +0100 ++++ misc/vigra1.4.0/include/vigra/imagecontainer.hxx 2006-05-30 11:42:36.000000000 +0200 +@@ -70,7 +70,11 @@ namespace vigra { + Namespace: vigra + */ + template <class ImageType, ++#if !defined(SOLARIS) || !defined(SUN) + class Alloc = typename ImageType::allocator_type::template rebind<ImageType>::other > ++#else ++ class Alloc = std::allocator<ImageType> > ++#endif + class ImageArray + { + Size2D imageSize_; +--- misc/build/vigra1.4.0/include/vigra/orientedtensorfilters.hxx 2005-12-21 05:53:42.000000000 +0100 ++++ misc/vigra1.4.0/include/vigra/orientedtensorfilters.hxx 2006-05-30 11:56:11.000000000 +0200 +@@ -434,7 +434,7 @@ class Sin6RingKernel + if(x == 0 && y == 0) + return weights_(radius_, radius_); + double d = dot(vectors_(x+radius_, y+radius_), v); +- return VIGRA_CSTD::pow(1.0 - d * d, 3) * weights_(x+radius_, y+radius_); ++ return VIGRA_CSTD::pow(1.0 - d * d, 3.0) * weights_(x+radius_, y+radius_); + } + }; + +@@ -455,7 +455,7 @@ class Sin6Kernel + if(x == 0 && y == 0) + return weights_(radius_, radius_); + double d = dot(vectors_(x+radius_, y+radius_), v); +- return VIGRA_CSTD::pow(1.0 - d * d, 3) * weights_(x+radius_, y+radius_); ++ return VIGRA_CSTD::pow(1.0 - d * d, 3.0) * weights_(x+radius_, y+radius_); + } + }; + +@@ -476,7 +476,7 @@ class Cos6RingKernel + if(x == 0 && y == 0) + return weights_(radius_, radius_); + double d = dot(vectors_(x+radius_, y+radius_), v); +- return (1.0 - VIGRA_CSTD::pow(1.0 - d * d, 3)) * weights_(x+radius_, y+radius_); ++ return (1.0 - VIGRA_CSTD::pow(1.0 - d * d, 3.0)) * weights_(x+radius_, y+radius_); + } + }; + +@@ -497,7 +497,7 @@ class Cos6Kernel + if(x == 0 && y == 0) + return weights_(radius_, radius_); + double d = dot(vectors_(x+radius_, y+radius_), v); +- return (1.0 - VIGRA_CSTD::pow(1.0 - d * d, 3)) * weights_(x+radius_, y+radius_); ++ return (1.0 - VIGRA_CSTD::pow(1.0 - d * d, 3.0)) * weights_(x+radius_, y+radius_); + } + }; + +--- misc/build/vigra1.4.0/include/vigra/recursiveconvolution.hxx 2005-12-21 05:53:42.000000000 +0100 ++++ misc/vigra1.4.0/include/vigra/recursiveconvolution.hxx 2006-05-30 11:52:32.000000000 +0200 +@@ -259,7 +259,7 @@ void recursiveFilterLine(SrcIterator is, + { + // correction factors for b + double bright = b; +- double bleft = VIGRA_CSTD::pow(b, w); ++ double bleft = VIGRA_CSTD::pow(b, (double)w); + + for(x=w-1; x>=0; --x, --is, --id) + { +--- misc/build/vigra1.4.0/include/vigra/rgbvalue.hxx 2005-12-21 05:53:43.000000000 +0100 ++++ misc/vigra1.4.0/include/vigra/rgbvalue.hxx 2006-05-30 11:00:44.000000000 +0200 +@@ -170,7 +170,9 @@ class RGBValue + RGBValue(value_type first, value_type second, value_type third) + : Base(first, second, third) + { ++#if !defined(SOLARIS) || !defined(SUN) + VIGRA_STATIC_ASSERT((RGBValue_bad_color_indices<RED_IDX, GREEN_IDX, BLUE_IDX>)); ++#endif + } + + /** Construct gray value +@@ -178,7 +180,9 @@ class RGBValue + RGBValue(value_type gray) + : Base(gray, gray, gray) + { ++#if !defined(SOLARIS) || !defined(SUN) + VIGRA_STATIC_ASSERT((RGBValue_bad_color_indices<RED_IDX, GREEN_IDX, BLUE_IDX>)); ++#endif + } + + /** Construct from another sequence (must have length 3!) +@@ -187,7 +191,9 @@ class RGBValue + RGBValue(Iterator i, Iterator end) + : Base(i[0], i[1], i[2]) + { ++#if !defined(SOLARIS) || !defined(SUN) + VIGRA_STATIC_ASSERT((RGBValue_bad_color_indices<RED_IDX, GREEN_IDX, BLUE_IDX>)); ++#endif + } + + /** Default constructor (sets all components to 0) +@@ -195,7 +201,10 @@ class RGBValue + RGBValue() + : Base(0, 0, 0) + { ++#if !defined(SOLARIS) || !defined(SUN) ++ + VIGRA_STATIC_ASSERT((RGBValue_bad_color_indices<RED_IDX, GREEN_IDX, BLUE_IDX>)); ++#endif + } + + #if !defined(TEMPLATE_COPY_CONSTRUCTOR_BUG) +@@ -203,7 +212,9 @@ class RGBValue + RGBValue(RGBValue const & r) + : Base(r) + { ++#if !defined(SOLARIS) || !defined(SUN) + VIGRA_STATIC_ASSERT((RGBValue_bad_color_indices<RED_IDX, GREEN_IDX, BLUE_IDX>)); ++#endif + } + + RGBValue & operator=(RGBValue const & r) +@@ -222,7 +233,9 @@ class RGBValue + detail::RequiresExplicitCast<value_type>::cast(r[detail::SelectColorIndexRHS<IDX1, R, G, B>::res]), + detail::RequiresExplicitCast<value_type>::cast(r[detail::SelectColorIndexRHS<IDX2, R, G, B>::res])) + { ++#if !defined(SOLARIS) || !defined(SUN) + VIGRA_STATIC_ASSERT((RGBValue_bad_color_indices<RED_IDX, GREEN_IDX, BLUE_IDX>)); ++#endif + } + + /** Copy assignment. +@@ -241,7 +254,9 @@ class RGBValue + RGBValue(TinyVector<value_type, 3> const & r) + : Base(r) + { ++#if !defined(SOLARIS) || !defined(SUN) + VIGRA_STATIC_ASSERT((RGBValue_bad_color_indices<RED_IDX, GREEN_IDX, BLUE_IDX>)); ++#endif + } + + /** assign TinyVector. +--- misc/build/vigra1.4.0/include/vigra/separableconvolution.hxx 2005-12-21 05:53:44.000000000 +0100 ++++ misc/vigra1.4.0/include/vigra/separableconvolution.hxx 2006-05-30 11:54:52.000000000 +0200 +@@ -1366,7 +1366,7 @@ void Kernel1D<ARITHTYPE>::normalize(valu + faculty *= i; + for(double x = left() + offset; k < kernel_.end(); ++x, ++k) + { +- sum += *k * VIGRA_CSTD::pow(-x, int(derivativeOrder)) / faculty; ++ sum += *k * VIGRA_CSTD::pow(-x, (double)derivativeOrder) / faculty; + } + } + +--- misc/build/vigra1.4.0/include/vigra/transformimage.hxx 2005-12-21 05:53:46.000000000 +0100 ++++ misc/vigra1.4.0/include/vigra/transformimage.hxx 2006-05-30 11:57:44.000000000 +0200 +@@ -986,11 +986,11 @@ class BrightnessContrastFunctor + result_type operator()(argument_type const & v) const + { + promote_type v1 = (v - min_) / diff_; +- promote_type brighter = pow(v1, b_); ++ promote_type brighter = pow((promote_type)v1, b_); + promote_type v2 = 2.0 * brighter - one_; + promote_type contrasted = (v2 < zero_) ? +- -pow(-v2, c_) : +- pow(v2, c_); ++ -pow((promote_type)-v2, c_) : ++ pow((promote_type)v2, c_); + return result_type(0.5 * diff_ * (contrasted + one_) + min_); + } |