From 4ee0f5e29e26bfe151e271abe5e42b7e6537030a Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Sat, 2 Feb 2013 18:28:21 +0000 Subject: [PATCH] =?UTF-8?q?math:=20friend=20declarations=20aren=E2=80=99t?= =?UTF-8?q?=20proper=20declarations;=20add=20the=20required=20declarations?= =?UTF-8?q?=20for=20real=20free=20functions.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lol/math/real.h | 114 ++++++++++++++++++++++++++++++-------------- 1 file changed, 77 insertions(+), 37 deletions(-) diff --git a/src/lol/math/real.h b/src/lol/math/real.h index c71efebe..c4cb5929 100644 --- a/src/lol/math/real.h +++ b/src/lol/math/real.h @@ -76,55 +76,55 @@ public: operator bool() const; /* Comparison functions */ - template friend Real min(Real const &a, Real const &b); - template friend Real max(Real const &a, Real const &b); - template friend Real clamp(Real const &x, - Real const &a, Real const &b); + template friend Real min(Real const &a, Real const &b); + template friend Real max(Real const &a, Real const &b); + template friend Real clamp(Real const &x, + Real const &a, Real const &b); /* Trigonometric functions */ - template friend Real sin(Real const &x); - template friend Real cos(Real const &x); - template friend Real tan(Real const &x); - template friend Real asin(Real const &x); - template friend Real acos(Real const &x); - template friend Real atan(Real const &x); - template friend Real atan2(Real const &y, Real const &x); + template friend Real sin(Real const &x); + template friend Real cos(Real const &x); + template friend Real tan(Real const &x); + template friend Real asin(Real const &x); + template friend Real acos(Real const &x); + template friend Real atan(Real const &x); + template friend Real atan2(Real const &y, Real const &x); /* Hyperbolic functions */ - template friend Real sinh(Real const &x); - template friend Real cosh(Real const &x); - template friend Real tanh(Real const &x); + template friend Real sinh(Real const &x); + template friend Real cosh(Real const &x); + template friend Real tanh(Real const &x); /* Exponential and logarithmic functions */ - template friend Real exp(Real const &x); - template friend Real exp2(Real const &x); - template friend Real log(Real const &x); - template friend Real log2(Real const &x); - template friend Real log10(Real const &x); - template friend Real frexp(Real const &x, int *exp); - template friend Real ldexp(Real const &x, int exp); - template friend Real modf(Real const &x, Real *iptr); - template friend Real ulp(Real const &x); - template friend Real nextafter(Real const &x, Real const &y); + template friend Real exp(Real const &x); + template friend Real exp2(Real const &x); + template friend Real log(Real const &x); + template friend Real log2(Real const &x); + template friend Real log10(Real const &x); + template friend Real frexp(Real const &x, int *exp); + template friend Real ldexp(Real const &x, int exp); + template friend Real modf(Real const &x, Real *iptr); + template friend Real ulp(Real const &x); + template friend Real nextafter(Real const &x, Real const &y); /* Power functions */ - template friend Real re(Real const &x); - template friend Real sqrt(Real const &x); - template friend Real cbrt(Real const &x); - template friend Real pow(Real const &x, Real const &y); - template friend Real gamma(Real const &x); + template friend Real re(Real const &x); + template friend Real sqrt(Real const &x); + template friend Real cbrt(Real const &x); + template friend Real pow(Real const &x, Real const &y); + template friend Real gamma(Real const &x); /* Rounding, absolute value, remainder etc. */ - template friend Real ceil(Real const &x); - template friend Real copysign(Real const &x, Real const &y); - template friend Real floor(Real const &x); - template friend Real fabs(Real const &x); - template friend Real round(Real const &x); - template friend Real fmod(Real const &x, Real const &y); + template friend Real ceil(Real const &x); + template friend Real copysign(Real const &x, Real const &y); + template friend Real floor(Real const &x); + template friend Real fabs(Real const &x); + template friend Real round(Real const &x); + template friend Real fmod(Real const &x, Real const &y); /* Functions inherited from GLSL */ - template friend Real abs(Real const &x); - template friend Real fract(Real const &x); + template friend Real abs(Real const &x); + template friend Real fract(Real const &x); void hexprint() const; void print(int ndigits = 150) const; @@ -238,6 +238,45 @@ template<> bool real::operator >=(real const &x) const; template<> bool real::operator !() const; template<> real::operator bool() const; +template Real min(Real const &a, Real const &b); +template Real max(Real const &a, Real const &b); +template Real clamp(Real const &x, + Real const &a, Real const &b); + +template Real sin(Real const &x); +template Real cos(Real const &x); +template Real tan(Real const &x); +template Real asin(Real const &x); +template Real acos(Real const &x); +template Real atan(Real const &x); +template Real atan2(Real const &y, Real const &x); +template Real sinh(Real const &x); +template Real cosh(Real const &x); +template Real tanh(Real const &x); +template Real exp(Real const &x); +template Real exp2(Real const &x); +template Real log(Real const &x); +template Real log2(Real const &x); +template Real log10(Real const &x); +template Real frexp(Real const &x, int *exp); +template Real ldexp(Real const &x, int exp); +template Real modf(Real const &x, Real *iptr); +template Real ulp(Real const &x); +template Real nextafter(Real const &x, Real const &y); +template Real re(Real const &x); +template Real sqrt(Real const &x); +template Real cbrt(Real const &x); +template Real pow(Real const &x, Real const &y); +template Real gamma(Real const &x); +template Real ceil(Real const &x); +template Real copysign(Real const &x, Real const &y); +template Real floor(Real const &x); +template Real fabs(Real const &x); +template Real round(Real const &x); +template Real fmod(Real const &x, Real const &y); +template Real abs(Real const &x); +template Real fract(Real const &x); + template<> real min(real const &a, real const &b); template<> real max(real const &a, real const &b); template<> real clamp(real const &x, real const &a, real const &b); @@ -278,6 +317,7 @@ template<> real fract(real const &x); template<> void real::hexprint() const; template<> void real::print(int ndigits) const; +template<> void real::sprintf(char *str, int ndigits) const; } /* namespace lol */