 
             const float dnx = nx + offsetptx;
             const float dny = ny + offsetpty;
-            const float ww  = __expf(-0.125f * (dnx*dnx + dny*dny)); // speedup !
+            const float ww  = __expf( -scalbnf(dnx*dnx + dny*dny, -3)); // speedup !
+            // const float ww  = __expf(-0.125f * (dnx*dnx + dny*dny)); // speedup !
             const float wx  = 1.0f - nxn;
             const float wy  = 1.0f - nyn;
             const float wgt = ww * wx * wy * mod;

                           Descriptor*   descs,
                           Plane2D_float layer )
{
    const uint32_t width  = layer.getWidth();
    const uint32_t height = layer.getHeight();

    // int bidx = blockIdx.x & 0xf; // lower 4 bits of block ID
    const int ix   = threadIdx.y; // bidx & 0x3;       // lower 2 bits of block ID

#include "assist.h"

#undef DESCRIPTORS_FROM_UNBLURRED_IMAGE

// override global setting
// #undef USE_DYNAMIC_PARALLELISM

/*************************************************************
 * V1: device side
