
242 III Image Space
inline __device__
float3 st_integrate_rk2( float2 p0 , float sigma ,
unsigned w, unsigned h,
float step_size , bool adaptive )
{
float radius = 2 * sigma ;
float twoSigma2 = 2 * sigma * sigma ;
float3 c=make_float3( tex2D( texSRC , p0.x , p0.y ));
float sum = 1;
float2 v0 = st_minor_ev(tex2D( texST , p0 .x , p0 .y )) ;
float sign = -1;
float dr = radius / CUDART_PI_F;
do {
float2 v = v0 * sign;
float2 p=p0;
float u=0;
for (;;) {
float2 t = st_minor_ev(tex2D (texST , p .x , p .y ));
if ( dot(v,t)<0)t=-t;
float2 ph = p + 0.5f * step_size * t;
t = st_minor_ev(tex2D (texST , ph .x , ph .y ) );
float vt = dot(v, t);
if (vt < 0) {
t=-t;
vt = - vt ;
}
v=t ...