''See also:'' [[CUDADevelopersGuide]]

== CUDA mrisurf ==

''Author: T.Witzel''

Notes on CUDA implementation of some of the surface functions in mrisurf.c.

see dev/utils/mrisurf.c, dev/utils/mrisurf_cuda.cu and dev/include/mrisurf_cuda.h

----
=== Implemented ===
==== TODO ====
 * handle ripflag
 * handle corner-cases
 * consolidate cpu and cuda routines (the routines listed below are copies of the cpu versions, so much is redundant, making long-term maintenance a hassle)

==== mrisComputeMetricPropertiesCUDA ====
{{{
static int mrisComputeMetricPropertiesCUDA(MRI_CUDA_SURFACE *mrics,
                                           MRI_SURFACE *mris);
}}}

==== mrisIntegrateCUDA ====
{{{
static int mrisIntegrateCUDA(MRI_SURFACE *mris,
                             INTEGRATION_PARMS *parms,
                             int n_averages);
}}}

==== mrisLineMinimizeCUDA ====
{{{
static double mrisLineMinimizeCUDA(MRI_CUDA_SURFACE *mrisc,
                                   MRI_SURFACE *mris,
                                   INTEGRATION_PARMS *parms);
}}}

==== mrisComputeDistanceErrorCUDA ====
{{{
static float mrisComputeDistanceErrorCUDA(MRI_SURFACE *mris,
                                          MRI_CUDA_SURFACE *mrisc,
                                          INTEGRATION_PARMS *parms);
}}}

==== MRIScomputeSSE_CUDA ====
{{{
static double MRIScomputeSSE_CUDA(MRI_SURFACE *mris,
                                  MRI_CUDA_SURFACE *mrisc,
                                  INTEGRATION_PARMS *parms);
}}}
----
=== Planned ===