         thrust::host_vector<uint8> str_hvec( M );
         thrust::host_vector<uint8> ref_hvec( N );
 
-        uint8* str_hptr = thrust::raw_pointer_cast( &str_hvec[0] );
-        uint8* ref_hptr = thrust::raw_pointer_cast( &ref_hvec[0] );
+        uint8* str_hptr = nvbio::plain_view( str_hvec );
+        uint8* ref_hptr = nvbio::plain_view( ref_hvec );
 
         const char* str_ascii =
             "TAGGAGGTAACATGTATGGAGCATTTACCATAGGCCAAGCACTGTTCTAAGAACTTCGGACATGTTATCTCACTTGTATAAGTACTTAGGTGCCTACAACATAAGCAGCACCTGGTAAATTAAGTATTGAAAAAATGCAGATCG";

    {
        NVBIO_VAR_UNUSED const uint32 CHECKPOINTS = 32u;

        const uint8* str_hptr = thrust::raw_pointer_cast( &str_hvec.front() );
        const uint8* ref_hptr = thrust::raw_pointer_cast( &ref_hvec.front() );

        const int32 ref_score = ref_banded_sw<M,N,BAND_LEN>( str_hptr, ref_hptr, 0u, aligner );


        thrust::host_vector<uint8> str_hvec( M );
        thrust::host_vector<uint8> ref_hvec( N );

        uint8* str_hptr = nvbio::plain_view( str_hvec );
        uint8* ref_hptr = nvbio::plain_view( ref_hvec );

        const char* str_ascii =
            "TAGGAGGTAACATGTATGGAGCATTTACCATAGGCCAAGCACTGTTCTAAGAACTTCGGACATGTTATCTCACTTGTATAAGTACTTAGGTGCCTACAACATAAGCAGCACCTGGTAAATTAAGTATTGAAAAAATGCAGATCG";
