             continue;
         }
 #else // not ONE_THREAD_ONLY
+#if 0
         int j = 7 - threadIdx.x; // counting backwards, so that the winner in __ffs
                                  // is identical to winner in loop code that starts
                                  // at 0
+#else
+        int j = threadIdx.x;
+#endif
         int  off_index = ( direction == Right ) ?  ( ( 8 - shifting + j ) % 8 )
                                                 :  (     ( shifting + j ) % 8 );
         assert( off_index >= 0 );

            // point, and has its coordinates in new_point
            point_found = true;
        }

        uint32_t any_point_found = __ballot( point_found );

        if( not any_point_found ) {

            continue;
        }

#if 0
        // This direction still has points.
        // We can identify the highest threadId / lowest rotation value j
        uint32_t computer = __ffs( any_point_found ) - 1;
#else
        if( point_found == false ) j = 8;
        j = min( __shfl_xor( j, 4 );
        j = min( __shfl_xor( j, 2 );
        j = min( __shfl_xor( j, 1 );
        assert( j < 8 );
#endif

        found = LOW_FLOW;

        float winnerSize = 0.0f;
#if 0
        if( threadIdx.x == computer ) {
#else
        if( threadIdx.x == j ) {
#endif
            //
            // The whole if/else block is identical for all j.
            // No reason to do it more than once. Astonishingly,
