 
     /* Where we accumulate our errors, layer by layer.  The size is that of
        the largest dimension. */
-    extern __shared__ float errors[];
+    extern __shared__ float scratch[];
 
     /* The layer outputs (activation of the neurons).  This is where the
        shared memory goes to.  Note that we store only the activated outputs,

             plan.fire,
             plan.inhibit,
             plan.learning_rate,
             num_feature_vectors);

        //cerr << "launched" << endl;
    }

        for (unsigned l = 0;  l < plan.num_layers;  ++l) {
            int ni = plan.architecture[l];
            int w_stride = plan.w_strides[l];
            d_weight_updates_storage[l].init_zeroed(ni * w_stride);
            weight_updates_vec[l] = d_weight_updates_storage[l];
        }

