 
     using MaxPolicyT = typename DispatchAdjacentDifference::MaxPolicy;
 
-    using AgentDifferenceT = AgentDifference<AdjacentDifferencePolicyT,
-                                             InputIteratorT,
-                                             OutputIteratorT,
-                                             DifferenceOpT,
-                                             OffsetT,
-                                             InputT,
-                                             OutputT,
-                                             MayAlias,
-                                             ReadLeft>;
-
     cudaError error = cudaSuccess;
 
     do

                                MayAlias,
                                ReadLeft>;

  extern __shared__ char shmem[];
  typename Agent::TempStorage &storage =
    *reinterpret_cast<typename Agent::TempStorage *>(shmem);

  Agent agent(storage,
              input,

      THRUST_NS_QUALIFIER::cuda_cub::launcher::triple_chevron(
        num_tiles,
        AdjacentDifferencePolicyT::BLOCK_THREADS,
        0,
        stream)
        .doit(DeviceAdjacentDifferenceDifferenceKernel<MaxPolicyT,
                                                       InputIteratorT,
