cheshirekow  v0.1.0
mpblocks::cudaNN::kernels Namespace Reference

Classes

struct  NextPow2
 
struct  NextPow2_iter
 
struct  NextPow2_iter< Arg, i, true >
 
struct  Reader
 
struct  Reader< Format_t, NDim, NDim >
 
struct  so3_distance_fn
 
struct  so3_distance_fn< Scalar, true >
 

Enumerations

enum  Constraint { OFF = 0, MIN = 1, MAX = 2 }
 

Functions

template<typename Format_t , unsigned int NDim>
__global__ void euclidean_distance (QueryPoint< Format_t, NDim > query, Format_t *g_in, unsigned int pitchIn, Format_t *g_out, unsigned int pitchOut, unsigned int n)
 vector norm (2-norm) between two points More...
 
template<bool Pseudo, typename Scalar , unsigned int NDim>
__global__ void euclidean_distance (RectangleQuery< Scalar, NDim > query, Scalar *g_out)
 
template<typename Scalar , int NDim>
__device__ Scalar euclidean_distance (const linalg::Matrix< Scalar, NDim, 1 > &q0, const linalg::Matrix< Scalar, NDim, 1 > &q1)
 
template<typename Scalar , int NDim>
__device__ Scalar euclidean_pseudo_distance (const linalg::Matrix< Scalar, NDim, 1 > &q0, const linalg::Matrix< Scalar, NDim, 1 > &q1)
 
template<typename Format_t , unsigned int NDim>
__global__ void r2s1_distance (Format_t weight, QueryPoint< Format_t, NDim > query, Format_t *g_in, unsigned int pitchIn, Format_t *g_out, unsigned int pitchOut, unsigned int n)
 vector norm (2-norm) between two points More...
 
template<typename Format_t , unsigned int NDim>
__device__ void read (Format_t *g_data, unsigned int pitch, int idx, linalg::Matrix< Format_t, NDim, 1 > &v)
 
template<typename Format_t , unsigned int NDim>
__device__ void read (const QueryPoint< Format_t, NDim > &q, linalg::Matrix< Format_t, NDim, 1 > &v)
 
template<typename Format_t , unsigned int NDim>
__global__ void se3_distance (Format_t weight, QueryPoint< Format_t, NDim > query, Format_t *g_in, unsigned int pitchIn, Format_t *g_out, unsigned int pitchOut, unsigned int n)
 weighted distance between elements of se3, points are interpreted as 3 values of position and 4 values of quaternion More...
 
template<typename Format_t , unsigned int NDim>
__global__ void se3_pseudo_distance (Format_t weight, QueryPoint< Format_t, NDim > query, Format_t *g_in, unsigned int pitchIn, Format_t *g_out, unsigned int pitchOut, unsigned int n)
 weighted distance between elements of se3, points are interpreted as 3 values of position and 4 values of quaternion, in this distance we use the [0,1] non-lenear quaternion distance 1-q*q More...
 
template<bool Psuedo, typename Scalar , unsigned int NDim>
__global__ void so3_distance (QueryPoint< Scalar, NDim > query, Scalar *g_in, unsigned int pitchIn, Scalar *g_out, unsigned int pitchOut, unsigned int n)
 
template<bool Pseudo, typename Scalar , unsigned int NDim>
__global__ void so3_distance (RectangleQuery< Scalar, NDim > query, Scalar *g_out)
 
template<typename Scalar >
__device__ Scalar so3_distance (const linalg::Matrix< Scalar, 4, 1 > &q0, const linalg::Matrix< Scalar, 4, 1 > &q1)
 
template<typename Scalar >
__device__ Scalar so3_pseudo_distance (const linalg::Matrix< Scalar, 4, 1 > &q0, const linalg::Matrix< Scalar, 4, 1 > &q1)
 

Enumeration Type Documentation

Enumerator
OFF 
MIN 
MAX 

Definition at line 144 of file so3.cu.hpp.

Function Documentation

template<typename Format_t , unsigned int NDim>
__global__ void mpblocks::cudaNN::kernels::euclidean_distance ( QueryPoint< Format_t, NDim >  query,
Format_t *  g_in,
unsigned int  pitchIn,
Format_t *  g_out,
unsigned int  pitchOut,
unsigned int  n 
)

vector norm (2-norm) between two points

< number of blocks

< number of blocks

Parameters
queryquery point data
g_ininput data array
pitchInrow pitch of input data
g_outoutput data array
pitchOutrow pitch of output data
nnumber of points in point set

Definition at line 61 of file euclidean.cu.hpp.

template<bool Pseudo, typename Scalar , unsigned int NDim>
__global__ void mpblocks::cudaNN::kernels::euclidean_distance ( RectangleQuery< Scalar, NDim >  query,
Scalar *  g_out 
)

< child spec

< child spec

Parameters
queryquery point data

Definition at line 123 of file euclidean.cu.hpp.

template<typename Scalar , int NDim>
__device__ Scalar mpblocks::cudaNN::kernels::euclidean_distance ( const linalg::Matrix< Scalar, NDim, 1 > &  q0,
const linalg::Matrix< Scalar, NDim, 1 > &  q1 
)

Definition at line 52 of file euclidean.cu.hpp.

template<typename Scalar , int NDim>
__device__ Scalar mpblocks::cudaNN::kernels::euclidean_pseudo_distance ( const linalg::Matrix< Scalar, NDim, 1 > &  q0,
const linalg::Matrix< Scalar, NDim, 1 > &  q1 
)

Definition at line 43 of file euclidean.cu.hpp.

template<typename Format_t , unsigned int NDim>
__global__ void mpblocks::cudaNN::kernels::r2s1_distance ( Format_t  weight,
QueryPoint< Format_t, NDim >  query,
Format_t *  g_in,
unsigned int  pitchIn,
Format_t *  g_out,
unsigned int  pitchOut,
unsigned int  n 
)

vector norm (2-norm) between two points

< number of blocks

< number of blocks

Parameters
queryquery point data
g_ininput data array
pitchInrow pitch of input data
g_outoutput data array
pitchOutrow pitch of output data
nnumber of points in point set

Definition at line 44 of file r2s1.cu.hpp.

template<typename Format_t , unsigned int NDim>
__device__ void mpblocks::cudaNN::kernels::read ( Format_t *  g_data,
unsigned int  pitch,
int  idx,
linalg::Matrix< Format_t, NDim, 1 > &  v 
)
inline

Definition at line 79 of file Reader.cu.hpp.

template<typename Format_t , unsigned int NDim>
__device__ void mpblocks::cudaNN::kernels::read ( const QueryPoint< Format_t, NDim > &  q,
linalg::Matrix< Format_t, NDim, 1 > &  v 
)
inline

Definition at line 87 of file Reader.cu.hpp.

template<typename Format_t , unsigned int NDim>
__global__ void mpblocks::cudaNN::kernels::se3_distance ( Format_t  weight,
QueryPoint< Format_t, NDim >  query,
Format_t *  g_in,
unsigned int  pitchIn,
Format_t *  g_out,
unsigned int  pitchOut,
unsigned int  n 
)

weighted distance between elements of se3, points are interpreted as 3 values of position and 4 values of quaternion

< number of blocks

< number of blocks

Parameters
weightweight of rotation distance
queryquery point data
g_ininput data array
pitchInrow pitch of input data
g_outoutput data array
pitchOutrow pitch of output data
nnumber of points in point set

Definition at line 111 of file se3.cu.hpp.

template<typename Format_t , unsigned int NDim>
__global__ void mpblocks::cudaNN::kernels::se3_pseudo_distance ( Format_t  weight,
QueryPoint< Format_t, NDim >  query,
Format_t *  g_in,
unsigned int  pitchIn,
Format_t *  g_out,
unsigned int  pitchOut,
unsigned int  n 
)

weighted distance between elements of se3, points are interpreted as 3 values of position and 4 values of quaternion, in this distance we use the [0,1] non-lenear quaternion distance 1-q*q

< number of blocks

< number of blocks

Parameters
weightweight of rotation distance
queryquery point data
g_ininput data array
pitchInrow pitch of input data
g_outoutput data array
pitchOutrow pitch of output data
nnumber of points in point set

Definition at line 42 of file se3.cu.hpp.

template<bool Psuedo, typename Scalar , unsigned int NDim>
__global__ void mpblocks::cudaNN::kernels::so3_distance ( QueryPoint< Scalar, NDim >  query,
Scalar *  g_in,
unsigned int  pitchIn,
Scalar *  g_out,
unsigned int  pitchOut,
unsigned int  n 
)

< number of blocks

< number of blocks

Parameters
queryquery point data
g_ininput data array
pitchInrow pitch of input data
g_outoutput data array
pitchOutrow pitch of output data
nnumber of points in point set

Definition at line 90 of file so3.cu.hpp.

template<bool Pseudo, typename Scalar , unsigned int NDim>
__global__ void mpblocks::cudaNN::kernels::so3_distance ( RectangleQuery< Scalar, NDim >  query,
Scalar *  g_out 
)

< constraint spec

< child spec

< constraint spec

< child spec

Parameters
queryquery point data

Definition at line 154 of file so3.cu.hpp.

template<typename Scalar >
__device__ Scalar mpblocks::cudaNN::kernels::so3_distance ( const linalg::Matrix< Scalar, 4, 1 > &  q0,
const linalg::Matrix< Scalar, 4, 1 > &  q1 
)

Definition at line 53 of file so3.cu.hpp.

template<typename Scalar >
__device__ Scalar mpblocks::cudaNN::kernels::so3_pseudo_distance ( const linalg::Matrix< Scalar, 4, 1 > &  q0,
const linalg::Matrix< Scalar, 4, 1 > &  q1 
)

Definition at line 42 of file so3.cu.hpp.