From 5ebf62b1a3053792725ebcb6f12f819918eae320 Mon Sep 17 00:00:00 2001 From: Steven Robertson Date: Mon, 13 Jun 2011 00:48:31 -0400 Subject: [PATCH] Reduce some double-precision constants --- cuburn/code/filtering.py | 4 ++-- cuburn/code/util.py | 28 ++++++++++++++++++++++++++++ cuburn/code/variations.py | 6 +++--- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/cuburn/code/filtering.py b/cuburn/code/filtering.py index 3c433f3..f1d1e69 100644 --- a/cuburn/code/filtering.py +++ b/cuburn/code/filtering.py @@ -116,8 +116,8 @@ void logscale(float4 *pixbuf, float4 *outbuf, float k1, float k2) { // See helpers/filt_err.py for source of these values. -#define MIN_SD 0.23299530 -#define MAX_SD 4.33333333 +#define MIN_SD 0.23299530f +#define MAX_SD 4.33333333f __global__ void density_est(float4 *pixbuf, float4 *outbuf, float *denbuf, diff --git a/cuburn/code/util.py b/cuburn/code/util.py index 9c71873..fc37a45 100644 --- a/cuburn/code/util.py +++ b/cuburn/code/util.py @@ -50,6 +50,34 @@ class BaseCode(HunkOCode): """ defs = """ +#undef M_E +#undef M_LOG2E +#undef M_LOG10E +#undef M_LN2 +#undef M_LN10 +#undef M_PI +#undef M_PI_2 +#undef M_PI_4 +#undef M_1_PI +#undef M_2_PI +#undef M_2_SQRTPI +#undef M_SQRT2 +#undef M_SQRT1_2 + +#define M_E 2.71828174591064f +#define M_LOG2E 1.44269502162933f +#define M_LOG10E 0.43429449200630f +#define M_LN2 0.69314718246460f +#define M_LN10 2.30258512496948f +#define M_PI 3.14159274101257f +#define M_PI_2 1.57079637050629f +#define M_PI_4 0.78539818525314f +#define M_1_PI 0.31830987334251f +#define M_2_PI 0.63661974668503f +#define M_2_SQRTPI 1.12837922573090f +#define M_SQRT2 1.41421353816986f +#define M_SQRT1_2 0.70710676908493f + // TODO: use launch parameter preconfig to eliminate unnecessary parts __device__ uint32_t gtid() { diff --git a/cuburn/code/variations.py b/cuburn/code/variations.py index 489e6d9..28ed5cf 100644 --- a/cuburn/code/variations.py +++ b/cuburn/code/variations.py @@ -250,7 +250,7 @@ var(30, 'perspective', """ float pvfcos = {{px.get( 'xf.perspective_dist*np.cos(xf.perspective_angle*np.pi/2)', 'pvfcos')}}; - float t = 1.0 / (pdist - ty * pvsin); + float t = 1.0f / (pdist - ty * pvsin); ox += w * pdist * tx * t; oy += w * pvfcos * ty * t; """) @@ -503,7 +503,7 @@ var(55, 'bipolar', """ float t = x2y2 + 1.0f; float x2 = tx * 2.0f; float ps = -M_PI_2 * {{px.get('xf.bipolar_shift')}} - float y = 0.5 * atan2f(2.0f * ty, x2y2 - 1.0f) + ps; + float y = 0.5f * atan2f(2.0f * ty, x2y2 - 1.0f) + ps; if (y > M_PI_2) y = -M_PI_2 + fmodf(y + M_PI_2, M_PI); @@ -873,7 +873,7 @@ var(85, 'cos', """ """) var(86, 'tan', """ - float tanden = 1.0f/(cosf(2.0*tx) + coshf(2.0f*ty)); + float tanden = 1.0f/(cosf(2.0f*tx) + coshf(2.0f*ty)); ox += w * tanden * sinf(2.0f*tx); oy += w * tanden * sinhf(2.0f*ty); """)