 
     // layer_biases is no longer used
 
-#if 0
-
     /*************************************************************************/
     /* BPROP                                                                 */
     /*************************************************************************/

            // Broadcast the d values so that we can use them to calculate the
            // errors

            for (int x = 0;  x < N;  ++x)
                scratch[x * scratch_stride + tid] = d[x];
            
            // Make sure everything can get its d value

        //float * d = (scratch + N * scratch_stride);
        float d[N];

        for (int x = 0;  x < N && x < valid_examples;  ++x) {
            float prev_output
                = (tid >= no
                   ? 0.0
