 __global__ void CalculateWinningCentroids( int States, float *CentroidDist, int *WinningCentroids );
 __global__ void UpdateStarvation( int States, float StarvationCoefficient, int *WinningCentroids, float *CentroidStarvation );
 __global__ void UpdateWinningCentroids( int States, int InputDimensionlity, float LearningRate, float *InputData, float *CentroidVectorData, int *WinningCentroids, float *CentroidDist );
-__global__ void CalculateOutput( int States, float *CentroidDist, float *Output );
+__global__ void CalculatePOS( int States, float *CentroidDist, float *Output );
 
 DestinKernel::DestinKernel( void )
 {

    sizeOfNodes = mRows*mCols;
    // Size of the data of nodes is rows times columns times centroids
    sizeOfNodeData = sizeOfNodes*mStates;
    // Size of the layer with all vectors is rows times columns times centroids times input vector
    sizeOfLayerData = sizeOfNodeData*mInputDimensionlity;
    // Keep track which centroid one
    mCentroidWinCounter = new int[sizeOfNodeData];
    for(int c=0;c<sizeOfNodeData;c++)
    {


void DestinKernel::DoDestin( float *Input, stringstream& xml )
{
    // Threads is the amount of thread inside each block
    dim3 threads( AmountThreads );
    // Grid is the amount of blocks inside a grid.
    dim3 grid( mCols, mRows );
