27 #ifndef MPBLOCKS_DUBINS_CURVES_CUDA2_PACKEDINDEX_HPP_ 
   28 #define MPBLOCKS_DUBINS_CURVES_CUDA2_PACKEDINDEX_HPP_ 
   34 namespace curves_cuda {
 
   36 template <
typename PunType>
 
   43 template <
typename PunType>
 
   49 template <
typename PunType>
 
   53   const StorageType size = 
sizeof(PunType) * 8;
 
   56   const StorageType field = 4;
 
   58   return (
SolutionId)(m_storage >> (size - field));
 
   61 template <
typename PunType>
 
   63 typename PackedIndex<PunType>::StorageType
 
   66   const StorageType size = 
sizeof(PunType) * 8;
 
   69   const StorageType field = 4;
 
   70   const StorageType mask = ~(0x0F << (size - field));
 
   72   return (m_storage & mask);
 
   75 template <
typename PunType>
 
   78   const StorageType mask = 0x0FFFFFFF;
 
   79   StorageType idBits = id;
 
   80   m_storage = (idBits << (
sizeof(PunType) * 8 - 4)) | (m_storage & mask);
 
   83 template <
typename PunType>
 
   89   m_storage = (idMask & m_storage) | (idxMask & idx);
 
   92 template <
typename PunType>
 
   95   return reinterpret_cast<PunType&
>(m_storage);
 
   98 template <
typename PunType>
 
  101   reinterpret_cast<PunType&
>(m_storage) = bits;
 
  104 template <
typename PunType>
 
  111 template <
typename PunType>
 
  121 #endif  // MPBLOCKS_DUBINS_CURVES_CUDA2_PACKEDINDEX_HPP_ 
PackedStorage< sizeof(PunType)>::Result StorageType
 
__device__ __host__ Storage_t getIdx() const 
 
__device__ __host__ SolutionId getId() const 
 
__device__ __host__ Format_t & getPun()
 
__device__ __host__ void setUnsigned(Storage_t bits)
 
__device__ __host__ void setIdx(Storage_t idx)
 
__device__ __host__ PackedIndex(Format_t bits)
 
__device__ __host__ void setId(SolutionId id)
 
__device__ __host__ Storage_t getUnsigned()
 
SolutionId
enumerates solution types 
 
__device__ __host__ void setPun(Format_t bits)