  
          # Sort them, to improve memory access pattern
          libcpp.algorithm.sort(indices.begin(), indices.end())
          for idx in indices:
              W = &self.W[idx * nr_class]
              for clas in range(nr_class):
                  scores[clas] += W[clas]
  
      cdef void set_gradientC(self, const weight_t* d_scores, const FeatureC*
              features, int nr_feat) nogil:
 
</s> remove             d_W = &self.d_W[idx * nr_class]
            for clas in range(nr_class):
                if d_scores[clas] < 0:
                    d_W[clas] += max(-10., d_scores[clas])
                else:
                    d_W[clas] += min(10., d_scores[clas])
 </s> add             #avg = &self.averages[idx]
            #last_upd = &self.last_upd[idx]
            W = &self.W[idx]
            #mom = &self.mom[idx]
            for i in range(nr_class):
                if d_scores[i] == 0:
                    continue
                d = d_scores[i]
                W[i] -= self.learn_rate * d
                #unchanged = self.time - last_upd[i]
                #avg[i] += unchanged * W[i]
                #mom[i] *= self.momentum ** unchanged
                #mom[i] += self.learn_rate * d
                #W[i] -= mom[i]
                #last_upd[i] = self.time </s> remove         cdef uint64_t nr_weight = self.nr_weight
 </s> add         self.time += 1 </s> remove         cdef uint64_t nr_weight = self.nr_weight
 </s> add 
            W = &self.W[idx]
  
          # Sort them, to improve memory access pattern
          libcpp.algorithm.sort(indices.begin(), indices.end())
          for idx in indices:
            W = &self.W[idx]
              for clas in range(nr_class):
                  scores[clas] += W[clas]
  
      cdef void set_gradientC(self, const weight_t* d_scores, const FeatureC*
              features, int nr_feat) nogil:
keep keep keep keep replace keep keep keep keep keep
 Play with hash kernel class 
spacy/_ml.pyx